All classes:
- pip._vendor.packaging._manylinux._ELFFileHeader
- pip._vendor.packaging._manylinux._ELFFileHeader._InvalidELFFileHeader
- pip._vendor.packaging._manylinux._GLibCVersion
- pip._vendor.packaging._musllinux._MuslVersion
- pip._vendor.packaging.tags.Tag
- pip._vendor.packaging._structures.InfinityType
- pip._vendor.packaging._structures.NegativeInfinityType
- pip._vendor.packaging.version.InvalidVersion
- pip._vendor.packaging.version._BaseVersion
- pip._vendor.packaging.version.LegacyVersion
- pip._vendor.packaging.version.Version
- pip._vendor.packaging.utils.InvalidWheelFilename
- pip._vendor.packaging.utils.InvalidSdistFilename
- pip._vendor.urllib3.packages.six.X
- pip._vendor.urllib3.packages.six._LazyDescr
- pip._vendor.urllib3.packages.six.MovedModule
- pip._vendor.urllib3.packages.six._LazyModule
- pip._vendor.urllib3.packages.six.MovedAttribute
- pip._vendor.urllib3.packages.six._SixMetaPathImporter
- pip._vendor.urllib3.packages.six._MovedItems
- pip._vendor.urllib3.packages.six.Module_six_moves_urllib_parse
- pip._vendor.urllib3.packages.six.Module_six_moves_urllib_error
- pip._vendor.urllib3.packages.six.Module_six_moves_urllib_request
- pip._vendor.urllib3.packages.six.Module_six_moves_urllib_response
- pip._vendor.urllib3.packages.six.Module_six_moves_urllib_robotparser
- pip._vendor.urllib3.packages.six.Module_six_moves_urllib
- pip._vendor.urllib3.packages.six.Iterator
- pip._vendor.urllib3.packages.six.with_metaclass.metaclass
- pip._vendor.urllib3.exceptions.HTTPError
- pip._vendor.urllib3.exceptions.HTTPWarning
- pip._vendor.urllib3.exceptions.PoolError
- pip._vendor.urllib3.exceptions.RequestError
- pip._vendor.urllib3.exceptions.SSLError
- pip._vendor.urllib3.exceptions.ProxyError
- pip._vendor.urllib3.exceptions.DecodeError
- pip._vendor.urllib3.exceptions.ProtocolError
- pip._vendor.urllib3.exceptions.MaxRetryError
- pip._vendor.urllib3.exceptions.HostChangedError
- pip._vendor.urllib3.exceptions.TimeoutStateError
- pip._vendor.urllib3.exceptions.TimeoutError
- pip._vendor.urllib3.exceptions.ReadTimeoutError
- pip._vendor.urllib3.exceptions.ConnectTimeoutError
- pip._vendor.urllib3.exceptions.NewConnectionError
- pip._vendor.urllib3.exceptions.EmptyPoolError
- pip._vendor.urllib3.exceptions.ClosedPoolError
- pip._vendor.urllib3.exceptions.LocationValueError
- pip._vendor.urllib3.exceptions.LocationParseError
- pip._vendor.urllib3.exceptions.URLSchemeUnknown
- pip._vendor.urllib3.exceptions.ResponseError
- pip._vendor.urllib3.exceptions.SecurityWarning
- pip._vendor.urllib3.exceptions.SubjectAltNameWarning
- pip._vendor.urllib3.exceptions.InsecureRequestWarning
- pip._vendor.urllib3.exceptions.SystemTimeWarning
- pip._vendor.urllib3.exceptions.InsecurePlatformWarning
- pip._vendor.urllib3.exceptions.SNIMissingWarning
- pip._vendor.urllib3.exceptions.DependencyWarning
- pip._vendor.urllib3.exceptions.ResponseNotChunked
- pip._vendor.urllib3.exceptions.BodyNotHttplibCompatible
- pip._vendor.urllib3.exceptions.IncompleteRead
- pip._vendor.urllib3.exceptions.InvalidChunkLength
- pip._vendor.urllib3.exceptions.InvalidHeader
- pip._vendor.urllib3.exceptions.ProxySchemeUnknown
- pip._vendor.urllib3.exceptions.ProxySchemeUnsupported
- pip._vendor.urllib3.exceptions.HeaderParsingError
- pip._vendor.urllib3.exceptions.UnrewindableBodyError
- pip._vendor.urllib3.util.url.Url
- pip._vendor.idna.core.IDNAError
- pip._vendor.idna.core.IDNABidiError
- pip._vendor.idna.core.InvalidCodepoint
- pip._vendor.idna.core.InvalidCodepointContext
- pip._vendor.urllib3.util.ssltransport.SSLTransport
- pip._vendor.urllib3.util.ssl_.SSLContext
- pip._vendor.urllib3.util.wait.NoWayToWaitForSocketError
- pip._vendor.urllib3.util.retry._RetryMeta
- pip._vendor.urllib3.util.retry.Retry
- pip._vendor.urllib3.util.timeout.Timeout
- pip._vendor.urllib3.connection.BaseSSLError
- pip._vendor.urllib3.connection.ConnectionError
- pip._vendor.urllib3.connection.BrokenPipeError
- pip._vendor.urllib3.util.ssl_match_hostname.CertificateError
- pip._vendor.urllib3.connection.HTTPConnection
- pip._vendor.urllib3.connection.HTTPSConnection
- pip._vendor.urllib3.connection.DummyConnection
- pip._vendor.urllib3.fields.RequestField
- pip._vendor.urllib3.request.RequestMethods
- pip._vendor.urllib3.request.RequestModule
- pip._vendor.urllib3.response.DeflateDecoder
- pip._vendor.urllib3.response.GzipDecoderState
- pip._vendor.urllib3.response.GzipDecoder
- pip._vendor.urllib3.response.BrotliDecoder
- pip._vendor.urllib3.response.MultiDecoder
- pip._vendor.urllib3.response.HTTPResponse
- pip._vendor.urllib3.util.queue.LifoQueue
- pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize
- pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize._Info
- pip._vendor.urllib3.connectionpool.ConnectionPool
- pip._vendor.urllib3.connectionpool.HTTPConnectionPool
- pip._vendor.urllib3.connectionpool.HTTPSConnectionPool
- pip._vendor.urllib3.poolmanager.PoolManager
- pip._vendor.urllib3.poolmanager.ProxyManager
- pip._vendor.chardet.enums.InputState
- pip._vendor.chardet.enums.LanguageFilter
- pip._vendor.chardet.enums.ProbingState
- pip._vendor.chardet.enums.MachineState
- pip._vendor.chardet.enums.SequenceLikelihood
- pip._vendor.chardet.enums.CharacterCategory
- pip._vendor.chardet.charsetprober.CharSetProber
- pip._vendor.chardet.charsetgroupprober.CharSetGroupProber
- pip._vendor.chardet.resultdict.ResultDict
- pip._vendor.chardet.codingstatemachinedict.CodingStateMachineDict
- pip._vendor.chardet.codingstatemachine.CodingStateMachine
- pip._vendor.chardet.escprober.EscCharSetProber
- pip._vendor.chardet.latin1prober.Latin1Prober
- pip._vendor.chardet.macromanprober.MacRomanProber
- pip._vendor.chardet.chardistribution.CharDistributionAnalysis
- pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis
- pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis
- pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis
- pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis
- pip._vendor.chardet.chardistribution.Big5DistributionAnalysis
- pip._vendor.chardet.chardistribution.SJISDistributionAnalysis
- pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis
- pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber
- pip._vendor.chardet.big5prober.Big5Prober
- pip._vendor.chardet.cp949prober.CP949Prober
- pip._vendor.chardet.jpcntx.JapaneseContextAnalysis
- pip._vendor.chardet.jpcntx.SJISContextAnalysis
- pip._vendor.chardet.jpcntx.EUCJPContextAnalysis
- pip._vendor.chardet.eucjpprober.EUCJPProber
- pip._vendor.chardet.euckrprober.EUCKRProber
- pip._vendor.chardet.euctwprober.EUCTWProber
- pip._vendor.chardet.gb2312prober.GB2312Prober
- pip._vendor.chardet.johabprober.JOHABProber
- pip._vendor.chardet.sjisprober.SJISProber
- pip._vendor.chardet.utf8prober.UTF8Prober
- pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber
- pip._vendor.chardet.sbcharsetprober.SingleByteCharSetModel
- pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber
- pip._vendor.chardet.hebrewprober.HebrewProber
- pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber
- pip._vendor.chardet.utf1632prober.UTF1632Prober
- pip._vendor.chardet.universaldetector.UniversalDetector
- pip._vendor.requests.cookies.MockRequest
- pip._vendor.requests.cookies.MockResponse
- pip._vendor.requests.cookies.CookieConflictError
- pip._vendor.requests.cookies.RequestsCookieJar
- pip._vendor.requests.exceptions.RequestException
- pip._vendor.requests.exceptions.InvalidJSONError
- pip._vendor.requests.exceptions.JSONDecodeError
- pip._vendor.requests.exceptions.HTTPError
- pip._vendor.requests.exceptions.ConnectionError
- pip._vendor.requests.exceptions.ProxyError
- pip._vendor.requests.exceptions.SSLError
- pip._vendor.requests.exceptions.Timeout
- pip._vendor.requests.exceptions.ConnectTimeout
- pip._vendor.requests.exceptions.ReadTimeout
- pip._vendor.requests.exceptions.URLRequired
- pip._vendor.requests.exceptions.TooManyRedirects
- pip._vendor.requests.exceptions.MissingSchema
- pip._vendor.requests.exceptions.InvalidSchema
- pip._vendor.requests.exceptions.InvalidURL
- pip._vendor.requests.exceptions.InvalidHeader
- pip._vendor.requests.exceptions.InvalidProxyURL
- pip._vendor.requests.exceptions.ChunkedEncodingError
- pip._vendor.requests.exceptions.ContentDecodingError
- pip._vendor.requests.exceptions.StreamConsumedError
- pip._vendor.requests.exceptions.RetryError
- pip._vendor.requests.exceptions.UnrewindableBodyError
- pip._vendor.requests.exceptions.RequestsWarning
- pip._vendor.requests.exceptions.FileModeWarning
- pip._vendor.requests.exceptions.RequestsDependencyWarning
- pip._vendor.requests.structures.CaseInsensitiveDict
- pip._vendor.requests.structures.LookupDict
- pip._vendor.requests.auth.AuthBase
- pip._vendor.requests.auth.HTTPBasicAuth
- pip._vendor.requests.auth.HTTPProxyAuth
- pip._vendor.requests.auth.HTTPDigestAuth
- pip._vendor.requests.models.RequestEncodingMixin
- pip._vendor.requests.models.RequestHooksMixin
- pip._vendor.requests.models.Request
- pip._vendor.requests.models.PreparedRequest
- pip._vendor.requests.models.Response
- pip._vendor.urllib3.contrib.pyopenssl.UnsupportedExtension
- pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket
- pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext
- pip._vendor.urllib3.contrib.socks.SOCKSConnection
- pip._vendor.urllib3.contrib.socks.SOCKSHTTPSConnection
- pip._vendor.urllib3.contrib.socks.SOCKSHTTPConnectionPool
- pip._vendor.urllib3.contrib.socks.SOCKSHTTPSConnectionPool
- pip._vendor.urllib3.contrib.socks.SOCKSProxyManager
- pip._vendor.requests.adapters.BaseAdapter
- pip._vendor.requests.adapters.HTTPAdapter
- pip._vendor.requests.sessions.SessionRedirectMixin
- pip._vendor.requests.sessions.Session
- pip._vendor.rich._null_file.NullFile
- pip._vendor.typing_extensions._Sentinel
- pip._vendor.typing_extensions._AnyMeta
- pip._vendor.typing_extensions.Any
- pip._vendor.typing_extensions._ExtensionsSpecialForm
- pip._vendor.typing_extensions._FinalForm
- pip._vendor.typing_extensions._LiteralGenericAlias
- pip._vendor.typing_extensions._LiteralForm
- pip._vendor.typing_extensions._ProtocolMeta
- pip._vendor.typing_extensions.Protocol
- pip._vendor.typing_extensions.SupportsInt
- pip._vendor.typing_extensions.SupportsFloat
- pip._vendor.typing_extensions.SupportsComplex
- pip._vendor.typing_extensions.SupportsBytes
- pip._vendor.typing_extensions.SupportsIndex
- pip._vendor.typing_extensions.SupportsAbs
- pip._vendor.typing_extensions.SupportsRound
- pip._vendor.typing_extensions._TypedDictMeta
- pip._vendor.typing_extensions._AnnotatedAlias
- pip._vendor.typing_extensions.Annotated
- pip._vendor.typing_extensions._DefaultMixin
- pip._vendor.typing_extensions._TypeVarLikeMeta
- pip._vendor.typing_extensions.TypeVar
- pip._vendor.typing_extensions._Immutable
- pip._vendor.typing_extensions.ParamSpecArgs
- pip._vendor.typing_extensions.ParamSpecKwargs
- pip._vendor.typing_extensions.ParamSpec
- pip._vendor.typing_extensions._ConcatenateGenericAlias
- pip._vendor.typing_extensions._ConcatenateForm
- pip._vendor.typing_extensions._TypeGuardForm
- pip._vendor.typing_extensions._SpecialForm
- pip._vendor.typing_extensions._RequiredForm
- pip._vendor.typing_extensions._UnpackSpecialForm
- pip._vendor.typing_extensions._UnpackAlias
- pip._vendor.typing_extensions._UnpackForm
- pip._vendor.typing_extensions.TypeVarTuple
- pip._vendor.typing_extensions._NamedTupleMeta
- pip._vendor.typing_extensions.Buffer
- pip._vendor.typing_extensions.NewType
- pip._vendor.typing_extensions.NewType.__mro_entries__.Dummy
- pip._vendor.typing_extensions.TypeAliasType
- pip._vendor.rich.errors.ConsoleError
- pip._vendor.rich.errors.StyleError
- pip._vendor.rich.errors.StyleSyntaxError
- pip._vendor.rich.errors.MissingStyle
- pip._vendor.rich.errors.StyleStackError
- pip._vendor.rich.errors.NotRenderableError
- pip._vendor.rich.errors.MarkupError
- pip._vendor.rich.errors.LiveError
- pip._vendor.rich.errors.NoAltScreen
- pip._vendor.rich.color_triplet.ColorTriplet
- pip._vendor.rich.box.Box
- pip._vendor.rich.repr.ReprError
- pip._vendor.rich.repr.Foo
- pip._vendor.rich.segment.ControlType
- pip._vendor.rich.segment.Segment
- pip._vendor.rich.segment.Segments
- pip._vendor.rich.segment.SegmentLines
- pip._vendor.pygments.filter.Filter
- pip._vendor.pygments.filter.FunctionFilter
- pip._vendor.pygments.token._TokenType
- pip._vendor.pygments.util.ClassNotFound
- pip._vendor.pygments.util.OptionError
- pip._vendor.pygments.util.Future
- pip._vendor.pygments.util.UnclosingTextIOWrapper
- pip._vendor.platformdirs.api.PlatformDirsABC
- pip._vendor.platformdirs.windows.Windows
- pip._vendor.platformdirs.macos.MacOS
- pip._vendor.platformdirs.unix.Unix
- pip._vendor.platformdirs.android.Android
- pip._vendor.pkg_resources.PEP440Warning
- pip._vendor.pkg_resources.ResolutionError
- pip._vendor.pkg_resources.VersionConflict
- pip._vendor.pkg_resources.ContextualVersionConflict
- pip._vendor.pkg_resources.DistributionNotFound
- pip._vendor.pkg_resources.UnknownExtra
- pip._vendor.pkg_resources.IMetadataProvider
- pip._vendor.pkg_resources.IResourceProvider
- pip._vendor.pkg_resources.WorkingSet
- pip._vendor.pkg_resources._ReqExtras
- pip._vendor.pkg_resources.Environment
- pip._vendor.pkg_resources.ExtractionError
- pip._vendor.pkg_resources.ResourceManager
- pip._vendor.pkg_resources.NullProvider
- pip._vendor.pkg_resources.EggProvider
- pip._vendor.pkg_resources.DefaultProvider
- pip._vendor.pkg_resources.EmptyProvider
- pip._vendor.pkg_resources.ZipManifests
- pip._vendor.pkg_resources.MemoizedZipManifests
- pip._vendor.pkg_resources.ZipProvider
- pip._vendor.pkg_resources.FileMetadata
- pip._vendor.pkg_resources.PathMetadata
- pip._vendor.pkg_resources.EggMetadata
- pip._vendor.pkg_resources.NoDists
- pip._vendor.pkg_resources.EntryPoint
- pip._vendor.pkg_resources.Distribution
- pip._vendor.pkg_resources.EggInfoDistribution
- pip._vendor.pkg_resources.DistInfoDistribution
- pip._vendor.pkg_resources.RequirementParseError
- pip._vendor.pkg_resources.Requirement
- pip._vendor.pkg_resources.PkgResourcesDeprecationWarning
- pip._vendor.pygments.filters.CodeTagFilter
- pip._vendor.pygments.filters.SymbolFilter
- pip._vendor.pygments.filters.KeywordCaseFilter
- pip._vendor.pygments.filters.NameHighlightFilter
- pip._vendor.pygments.filters.ErrorToken
- pip._vendor.pygments.filters.RaiseOnErrorTokenFilter
- pip._vendor.pygments.filters.VisibleWhitespaceFilter
- pip._vendor.pygments.filters.GobbleFilter
- pip._vendor.pygments.filters.TokenMergeFilter
- pip._vendor.pygments.lexer.LexerMeta
- pip._vendor.pygments.lexer.Lexer
- pip._vendor.pygments.lexer.DelegatingLexer
- pip._vendor.pygments.lexer.include
- pip._vendor.pygments.lexer._inherit
- pip._vendor.pygments.lexer.combined
- pip._vendor.pygments.lexer._PseudoMatch
- pip._vendor.pygments.lexer._This
- pip._vendor.pygments.lexer.default
- pip._vendor.pygments.lexer.words
- pip._vendor.pygments.lexer.RegexLexerMeta
- pip._vendor.pygments.lexer.RegexLexer
- pip._vendor.pygments.lexer.LexerContext
- pip._vendor.pygments.lexer.ExtendedRegexLexer
- pip._vendor.pygments.lexer.ProfilingRegexLexerMeta
- pip._vendor.pygments.lexer.ProfilingRegexLexer
- pip._vendor.pygments.formatter.Formatter
- pip._vendor.pygments.lexers._automodule
- pip._vendor.pygments.style.StyleMeta
- pip._vendor.pygments.style.Style
- pip._vendor.rich.control.Control
- pip._vendor.rich.emoji.NoEmoji
- pip._vendor.rich.emoji.Emoji
- pip._vendor.rich.measure.Measurement
- pip._vendor.rich.text.Span
- pip._vendor.rich.text.Text
- pip._vendor.rich.markup.Tag
- pip._vendor.rich.abc.RichRenderable
- pip._vendor.rich.abc.Foo
- pip._vendor.rich.highlighter.Highlighter
- pip._vendor.rich.highlighter.NullHighlighter
- pip._vendor.rich.highlighter.RegexHighlighter
- pip._vendor.rich.highlighter.ReprHighlighter
- pip._vendor.rich.highlighter.JSONHighlighter
- pip._vendor.rich.highlighter.ISO8601Highlighter
- pip._vendor.rich.pretty.install.RichFormatter
- pip._vendor.rich.pretty.Pretty
- pip._vendor.rich.pretty.Node
- pip._vendor.rich.pretty._Line
- pip._vendor.rich.pretty.BrokenRepr
- pip._vendor.rich.pretty.StockKeepingUnit
- pip._vendor.rich.pretty.Thing
- pip._vendor.rich.padding.Padding
- pip._vendor.rich.panel.Panel
- pip._vendor.rich.theme.Theme
- pip._vendor.rich.theme.ThemeStackError
- pip._vendor.rich.theme.ThemeStack
- pip._vendor.rich.traceback.Frame
- pip._vendor.rich.traceback._SyntaxError
- pip._vendor.rich.traceback.Stack
- pip._vendor.rich.traceback.Trace
- pip._vendor.rich.traceback.PathHighlighter
- pip._vendor.rich.traceback.Traceback
- pip._vendor.rich._inspect.Inspect
- pip._vendor.rich.ansi._AnsiToken
- pip._vendor.rich.ansi.AnsiDecoder
- pip._vendor.rich.containers.Renderables
- pip._vendor.rich.containers.Lines
- pip._vendor.rich.syntax.SyntaxTheme
- pip._vendor.rich.syntax.PygmentsSyntaxTheme
- pip._vendor.rich.syntax.ANSISyntaxTheme
- pip._vendor.rich.syntax._SyntaxHighlightRange
- pip._vendor.rich.syntax.Syntax
- pip._vendor.rich.terminal_theme.TerminalTheme
- pip._vendor.rich.jupyter.JupyterRenderable
- pip._vendor.rich.jupyter.JupyterMixin
- pip._vendor.rich.constrain.Constrain
- pip._vendor.rich.align.Align
- pip._vendor.rich.align.VerticalCenter
- pip._vendor.rich.columns.Columns
- pip._vendor.rich._ratio.Edge
- pip._vendor.rich._ratio.E
- pip._vendor.rich.table.Column
- pip._vendor.rich.table.Row
- pip._vendor.rich.table._Cell
- pip._vendor.rich.table.Table
- pip._vendor.rich.palette.Palette
- pip._vendor.rich.palette.ColorBox
- pip._vendor.rich.color.ColorSystem
- pip._vendor.rich.color.ColorType
- pip._vendor.rich.color.ColorParseError
- pip._vendor.rich.color.Color
- pip._vendor.rich.style._Bit
- pip._vendor.rich.style.Style
- pip._vendor.rich.style.StyleStack
- pip._vendor.rich._log_render.LogRender
- pip._vendor.rich.pager.Pager
- pip._vendor.rich.pager.SystemPager
- pip._vendor.rich.__main__.ColorBox
- pip._vendor.rich.region.Region
- pip._vendor.rich.screen.Screen
- pip._vendor.rich.styled.Styled
- pip._vendor.rich._windows.WindowsConsoleFeatures
- pip._vendor.rich._win32_console.LegacyWindowsError
- pip._vendor.rich._win32_console.WindowsCoordinates
- pip._vendor.rich._win32_console.CONSOLE_SCREEN_BUFFER_INFO
- pip._vendor.rich._win32_console.CONSOLE_CURSOR_INFO
- pip._vendor.rich._win32_console.LegacyWindowsTerm
- pip._vendor.rich.file_proxy.FileProxy
- pip._vendor.rich.live_render.LiveRender
- pip._vendor.rich.live._RefreshThread
- pip._vendor.rich.live.Live
- pip._vendor.rich.rule.Rule
- pip._vendor.rich.spinner.Spinner
- pip._vendor.rich.status.Status
- pip._vendor.rich.console.NoChange
- pip._vendor.rich.console.ConsoleDimensions
- pip._vendor.rich.console.ConsoleOptions
- pip._vendor.rich.console.RichCast
- pip._vendor.rich.console.ConsoleRenderable
- pip._vendor.rich.console.CaptureError
- pip._vendor.rich.console.NewLine
- pip._vendor.rich.console.ScreenUpdate
- pip._vendor.rich.console.Capture
- pip._vendor.rich.console.ThemeContext
- pip._vendor.rich.console.PagerContext
- pip._vendor.rich.console.ScreenContext
- pip._vendor.rich.console.Group
- pip._vendor.rich.console.ConsoleThreadLocals
- pip._vendor.rich.console.RenderHook
- pip._vendor.rich.console.Console
- pip._vendor.rich.json.JSON
- pip._vendor.pyparsing.version_info
- pip._vendor.pyparsing.util.__config_flags
- pip._vendor.pyparsing.util._UnboundedCache
- pip._vendor.pyparsing.util._FifoCache
- pip._vendor.pyparsing.util.LRUMemo
- pip._vendor.pyparsing.util.UnboundedMemo
- pip._vendor.pyparsing.unicode._lazyclassproperty
- pip._vendor.pyparsing.unicode.unicode_set
- pip._vendor.pyparsing.unicode.pyparsing_unicode
- pip._vendor.pyparsing.unicode.pyparsing_unicode.BasicMultilingualPlane
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Latin1
- pip._vendor.pyparsing.unicode.pyparsing_unicode.LatinA
- pip._vendor.pyparsing.unicode.pyparsing_unicode.LatinB
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Greek
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Cyrillic
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Chinese
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Japanese
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Japanese.Kanji
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Japanese.Hiragana
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Japanese.Katakana
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Hangul
- pip._vendor.pyparsing.unicode.pyparsing_unicode.CJK
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Thai
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Arabic
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Hebrew
- pip._vendor.pyparsing.unicode.pyparsing_unicode.Devanagari
- pip._vendor.pyparsing.exceptions.ExceptionWordUnicode
- pip._vendor.pyparsing.exceptions.ParseBaseException
- pip._vendor.pyparsing.actions.OnlyOnce
- pip._vendor.pyparsing.results._ParseResultsWithOffset
- pip._vendor.pyparsing.results.ParseResults
- pip._vendor.pyparsing.results.ParseResults.List
- pip._vendor.pyparsing.core.cached_property
- pip._vendor.pyparsing.core.__compat__
- pip._vendor.pyparsing.core.__diag__
- pip._vendor.pyparsing.core.Diagnostics
- pip._vendor.pyparsing.core.ParserElement
- pip._vendor.pyparsing.core.ParserElement.DebugActions
- pip._vendor.pyparsing.core.ParserElement._CacheType
- pip._vendor.pyparsing.testing.pyparsing_test
- pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context
- pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts
- pip._vendor.pyparsing.diagram.EachItem
- pip._vendor.pyparsing.diagram.AnnotatedItem
- pip._vendor.pyparsing.diagram.EditablePartial
- pip._vendor.pyparsing.diagram.ElementState
- pip._vendor.pyparsing.diagram.ConverterState
- pip._vendor.pyparsing.core._PendingSkip
- pip._vendor.pyparsing.core.Token
- pip._vendor.pyparsing.core.NoMatch
- pip._vendor.pyparsing.core.Literal
- pip._vendor.pyparsing.core.Empty
- pip._vendor.pyparsing.core._SingleCharLiteral
- pip._vendor.pyparsing.core.Keyword
- pip._vendor.pyparsing.core.CaselessLiteral
- pip._vendor.pyparsing.core.CaselessKeyword
- pip._vendor.pyparsing.core.CloseMatch
- pip._vendor.pyparsing.core.Word
- pip._vendor.pyparsing.core.Char
- pip._vendor.pyparsing.core.Regex
- pip._vendor.pyparsing.core.QuotedString
- pip._vendor.pyparsing.core.CharsNotIn
- pip._vendor.pyparsing.core.White
- pip._vendor.pyparsing.core.PositionToken
- pip._vendor.pyparsing.core.GoToColumn
- pip._vendor.pyparsing.core.LineStart
- pip._vendor.pyparsing.core.LineEnd
- pip._vendor.pyparsing.core.StringStart
- pip._vendor.pyparsing.core.StringEnd
- pip._vendor.pyparsing.core.WordStart
- pip._vendor.pyparsing.core.WordEnd
- pip._vendor.pyparsing.core.ParseExpression
- pip._vendor.pyparsing.core.And
- pip._vendor.pyparsing.core.And._ErrorStop
- pip._vendor.pyparsing.core.Or
- pip._vendor.pyparsing.core.MatchFirst
- pip._vendor.pyparsing.core.Each
- pip._vendor.pyparsing.core.ParseElementEnhance
- pip._vendor.pyparsing.core.IndentedBlock
- pip._vendor.pyparsing.core.IndentedBlock._Indent
- pip._vendor.pyparsing.core.IndentedBlock._IndentGreater
- pip._vendor.pyparsing.core.AtStringStart
- pip._vendor.pyparsing.core.AtLineStart
- pip._vendor.pyparsing.core.FollowedBy
- pip._vendor.pyparsing.core.PrecededBy
- pip._vendor.pyparsing.core.Located
- pip._vendor.pyparsing.core.NotAny
- pip._vendor.pyparsing.core._MultipleMatch
- pip._vendor.pyparsing.core.OneOrMore
- pip._vendor.pyparsing.core.ZeroOrMore
- pip._vendor.pyparsing.core.DelimitedList
- pip._vendor.pyparsing.core._NullToken
- pip._vendor.pyparsing.core.Opt
- pip._vendor.pyparsing.core.SkipTo
- pip._vendor.pyparsing.core.Forward
- pip._vendor.pyparsing.core.TokenConverter
- pip._vendor.pyparsing.core.Combine
- pip._vendor.pyparsing.core.Group
- pip._vendor.pyparsing.core.Dict
- pip._vendor.pyparsing.core.Suppress
- pip._vendor.pyparsing.exceptions.ParseException
- pip._vendor.pyparsing.exceptions.ParseFatalException
- pip._vendor.pyparsing.exceptions.ParseSyntaxException
- pip._vendor.pyparsing.exceptions.RecursiveGrammarException
- pip._vendor.pyparsing.helpers.OpAssoc
- pip._vendor.pyparsing.helpers.infix_notation._FB
- pip._vendor.pyparsing.common.pyparsing_common
- pip._vendor.packaging.specifiers.InvalidSpecifier
- pip._vendor.packaging.specifiers.BaseSpecifier
- pip._vendor.packaging.specifiers._IndividualSpecifier
- pip._vendor.packaging.specifiers.LegacySpecifier
- pip._vendor.packaging.specifiers.Specifier
- pip._vendor.packaging.specifiers.SpecifierSet
- pip._vendor.packaging.markers.InvalidMarker
- pip._vendor.packaging.markers.UndefinedComparison
- pip._vendor.packaging.markers.UndefinedEnvironmentName
- pip._vendor.packaging.markers.Node
- pip._vendor.packaging.markers.Variable
- pip._vendor.packaging.markers.Value
- pip._vendor.packaging.markers.Op
- pip._vendor.packaging.markers.Undefined
- pip._vendor.packaging.markers.Marker
- pip._vendor.packaging.requirements.InvalidRequirement
- pip._vendor.packaging.requirements.Requirement
- pip._vendor.pyproject_hooks._impl.BackendUnavailable
- pip._vendor.pyproject_hooks._impl.BackendInvalid
- pip._vendor.pyproject_hooks._impl.HookMissing
- pip._vendor.pyproject_hooks._impl.UnsupportedOperation
- pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller
- pip._vendor.tenacity.nap.sleep_using_event
- pip._vendor.tenacity.stop.stop_base
- pip._vendor.tenacity.stop.stop_any
- pip._vendor.tenacity.stop.stop_all
- pip._vendor.tenacity.stop._stop_never
- pip._vendor.tenacity.stop.stop_when_event_set
- pip._vendor.tenacity.stop.stop_after_attempt
- pip._vendor.tenacity.stop.stop_after_delay
- pip._vendor.tenacity.wait.wait_base
- pip._vendor.tenacity.wait.wait_fixed
- pip._vendor.tenacity.wait.wait_none
- pip._vendor.tenacity.wait.wait_random
- pip._vendor.tenacity.wait.wait_combine
- pip._vendor.tenacity.wait.wait_chain
- pip._vendor.tenacity.wait.wait_incrementing
- pip._vendor.tenacity.wait.wait_exponential
- pip._vendor.tenacity.wait.wait_random_exponential
- pip._vendor.tenacity.wait.wait_exponential_jitter
- pip._vendor.tenacity.TryAgain
- pip._vendor.tenacity.DoAttempt
- pip._vendor.tenacity.DoSleep
- pip._vendor.tenacity.BaseAction
- pip._vendor.tenacity.RetryAction
- pip._vendor.tenacity.RetryError
- pip._vendor.tenacity.AttemptManager
- pip._vendor.tenacity.BaseRetrying
- pip._vendor.tenacity.Retrying
- pip._vendor.tenacity.Future
- pip._vendor.tenacity.RetryCallState
- pip._vendor.tenacity._asyncio.AsyncRetrying
- pip._vendor.tenacity.tornadoweb.TornadoRetrying
- pip._vendor.tenacity.retry.retry_base
- pip._vendor.tenacity.retry._retry_never
- pip._vendor.tenacity.retry._retry_always
- pip._vendor.tenacity.retry.retry_if_exception
- pip._vendor.tenacity.retry.retry_if_exception_type
- pip._vendor.tenacity.retry.retry_if_not_exception_type
- pip._vendor.tenacity.retry.retry_unless_exception_type
- pip._vendor.tenacity.retry.retry_if_exception_cause_type
- pip._vendor.tenacity.retry.retry_if_result
- pip._vendor.tenacity.retry.retry_if_not_result
- pip._vendor.tenacity.retry.retry_if_exception_message
- pip._vendor.tenacity.retry.retry_if_not_exception_message
- pip._vendor.tenacity.retry.retry_any
- pip._vendor.tenacity.retry.retry_all
- pip._vendor.rich.logging.RichHandler
- pip._internal.utils._log.VerboseLogger
- pip._internal.utils.deprecation.PipDeprecationWarning
- pip._internal.utils.logging.BrokenStdoutLoggingError
- pip._internal.utils.logging.IndentingFormatter
- pip._internal.utils.logging.IndentedRenderable
- pip._internal.utils.logging.RichPipStreamHandler
- pip._internal.utils.logging.BetterRotatingFileHandler
- pip._internal.utils.logging.MaxLevelFilter
- pip._internal.utils.logging.ExcludeLoggerFilter
- pip._internal.cli.spinners.SpinnerInterface
- pip._internal.cli.spinners.InteractiveSpinner
- pip._internal.cli.spinners.NonInteractiveSpinner
- pip._internal.cli.spinners.RateLimiter
- pip._internal.models.scheme.Scheme
- pip._internal.utils.temp_dir.TempDirectoryTypeRegistry
- pip._internal.utils.temp_dir._Default
- pip._internal.utils.temp_dir.TempDirectory
- pip._internal.utils.temp_dir.AdjacentTempDirectory
- pip._internal.utils.hashes.Hashes
- pip._internal.utils.hashes.MissingHashes
- pip._internal.utils.models.KeyBasedCompareMixin
- pip._internal.models.link.LinkHash
- pip._internal.models.link.MetadataFile
- pip._internal.models.link.Link
- pip._internal.vcs.versioncontrol.RemoteNotFoundError
- pip._internal.vcs.versioncontrol.RemoteNotValidError
- pip._internal.vcs.versioncontrol.RevOptions
- pip._internal.vcs.versioncontrol.VcsSupport
- pip._internal.vcs.versioncontrol.VersionControl
- pip._internal.vcs.bazaar.Bazaar
- pip._internal.vcs.git.Git
- pip._internal.vcs.mercurial.Mercurial
- pip._internal.vcs.subversion.Subversion
- pip._internal.models.link._CleanResult
- pip._internal.models.index.PackageIndex
- pip._internal.models.search_scope.SearchScope
- pip._vendor.cachecontrol.cache.BaseCache
- pip._vendor.cachecontrol.cache.DictCache
- pip._vendor.cachecontrol.cache.SeparateBodyBaseCache
- pip._vendor.msgpack.exceptions.UnpackException
- pip._vendor.msgpack.exceptions.BufferFull
- pip._vendor.msgpack.exceptions.OutOfData
- pip._vendor.msgpack.exceptions.FormatError
- pip._vendor.msgpack.exceptions.StackError
- pip._vendor.msgpack.exceptions.ExtraData
- pip._vendor.msgpack.ext.ExtType
- pip._vendor.msgpack.ext.Timestamp
- pip._vendor.msgpack.fallback.StringIO
- pip._vendor.msgpack.fallback.Unpacker
- pip._vendor.msgpack.fallback.Packer
- pip._vendor.cachecontrol.serialize.Serializer
- pip._vendor.cachecontrol.controller.CacheController
- pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper
- pip._vendor.cachecontrol.heuristics.BaseHeuristic
- pip._vendor.cachecontrol.heuristics.OneDayCache
- pip._vendor.cachecontrol.heuristics.ExpiresAfter
- pip._vendor.cachecontrol.heuristics.LastModified
- pip._vendor.cachecontrol.adapter.CacheControlAdapter
- pip._internal.network.auth.Credentials
- pip._internal.network.auth.KeyRingBaseProvider
- pip._internal.network.auth.KeyRingNullProvider
- pip._internal.network.auth.KeyRingPythonProvider
- pip._internal.network.auth.KeyRingCliProvider
- pip._internal.network.auth.MultiDomainBasicAuth
- pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin
- pip._vendor.cachecontrol.caches.file_cache.FileCache
- pip._vendor.cachecontrol.caches.file_cache.SeparateBodyFileCache
- pip._vendor.cachecontrol.caches.redis_cache.RedisCache
- pip._internal.network.cache.SafeFileCache
- pip._vendor.distro.distro.VersionDict
- pip._vendor.distro.distro.InfoDict
- pip._vendor.distro.distro.cached_property
- pip._vendor.distro.distro.LinuxDistribution
- pip._internal.network.session.LocalFSAdapter
- pip._internal.network.session._SSLContextAdapterMixin
- pip._internal.network.session.HTTPAdapter
- pip._internal.network.session.CacheControlAdapter
- pip._internal.network.session.InsecureHTTPAdapter
- pip._internal.network.session.InsecureCacheControlAdapter
- pip._internal.network.session.PipSession
- pip._internal.models.candidate.InstallationCandidate
- pip._internal.index.sources.LinkSource
- pip._internal.index.sources._FlatDirectoryToUrls
- pip._internal.index.sources._FlatDirectorySource
- pip._internal.index.sources._LocalFileSource
- pip._internal.index.sources._RemoteFileSource
- pip._internal.index.sources._IndexDirectorySource
- pip._internal.index.collector._NotAPIContent
- pip._internal.index.collector._NotHTTP
- pip._internal.index.collector.CacheablePageContent
- pip._internal.index.collector.ParseLinks
- pip._internal.index.collector.IndexContent
- pip._internal.index.collector.HTMLLinkParser
- pip._internal.index.collector.CollectedSources
- pip._internal.index.collector.LinkCollector
- pip._internal.models.format_control.FormatControl
- pip._internal.models.selection_prefs.SelectionPreferences
- pip._internal.models.target_python.TargetPython
- pip._internal.models.wheel.Wheel
- pip._internal.models.direct_url.DirectUrlValidationError
- pip._internal.models.direct_url.VcsInfo
- pip._internal.models.direct_url.ArchiveInfo
- pip._internal.models.direct_url.DirInfo
- pip._internal.models.direct_url.DirectUrl
- pip._internal.metadata.base.BaseEntryPoint
- pip._internal.metadata.base.RequiresEntry
- pip._internal.metadata.base.BaseDistribution
- pip._internal.metadata.base.BaseEnvironment
- pip._internal.metadata.base.Wheel
- pip._internal.metadata.base.FilesystemWheel
- pip._internal.metadata.base.MemoryWheel
- pip._vendor.distlib.compat.CertificateError
- pip._vendor.distlib.compat.Container
- pip._vendor.distlib.compat.ZipExtFile
- pip._vendor.distlib.compat.ZipFile
- pip._vendor.distlib.compat.ChainMap
- pip._vendor.distlib.compat.OrderedDict
- pip._vendor.distlib.compat.ConvertingDict
- pip._vendor.distlib.compat.ConvertingList
- pip._vendor.distlib.compat.ConvertingTuple
- pip._vendor.distlib.compat.BaseConfigurator
- pip._vendor.distlib.util.cached_property
- pip._vendor.distlib.util.FileOperator
- pip._vendor.distlib.util.ExportEntry
- pip._vendor.distlib.util.Cache
- pip._vendor.distlib.util.EventMixin
- pip._vendor.distlib.util.Sequencer
- pip._vendor.distlib.util.Progress
- pip._vendor.distlib.util.HTTPSConnection
- pip._vendor.distlib.util.HTTPSHandler
- pip._vendor.distlib.util.HTTPSOnlyHandler
- pip._vendor.distlib.util.Transport
- pip._vendor.distlib.util.SafeTransport
- pip._vendor.distlib.util.ServerProxy
- pip._vendor.distlib.util.CSVBase
- pip._vendor.distlib.util.CSVReader
- pip._vendor.distlib.util.CSVWriter
- pip._vendor.distlib.util.Configurator
- pip._vendor.distlib.util.SubprocessMixin
- pip._vendor.distlib.util.PyPIRCFile
- pip._vendor.distlib.resources.ResourceCache
- pip._vendor.distlib.resources.ResourceBase
- pip._vendor.distlib.resources.Resource
- pip._vendor.distlib.resources.ResourceContainer
- pip._vendor.distlib.resources.ResourceFinder
- pip._vendor.distlib.resources.ZipResourceFinder
- pip._vendor.distlib.scripts.ScriptMaker
- pip._vendor.distlib.DistlibException
- pip._vendor.distlib.NullHandler
- pip._internal.operations.install.wheel.File
- pip._internal.operations.install.wheel.ZipBackedFile
- pip._internal.operations.install.wheel.ScriptFile
- pip._internal.operations.install.wheel.MissingCallableSuffix
- pip._internal.operations.install.wheel.PipScriptMaker
- pip._vendor.tomli._parser.TOMLDecodeError
- pip._vendor.tomli._parser.Flags
- pip._vendor.tomli._parser.NestedDict
- pip._vendor.tomli._parser.Output
- pip._internal.req.req_uninstall.StashedUninstallPathSet
- pip._internal.req.req_uninstall.UninstallPathSet
- pip._internal.req.req_uninstall.UninstallPthEntries
- pip._internal.req.req_install.InstallRequirement
- pip._internal.req.req_set.RequirementSet
- pip._internal.req.InstallationResult
- pip._internal.index.package_finder.LinkType
- pip._internal.index.package_finder.LinkEvaluator
- pip._internal.index.package_finder.CandidatePreferences
- pip._internal.index.package_finder.BestCandidateResult
- pip._internal.index.package_finder.CandidateEvaluator
- pip._internal.index.package_finder.PackageFinder
- pip._internal.build_env._Prefix
- pip._internal.build_env.BuildEnvironment
- pip._internal.build_env.NoOpBuildEnvironment
- pip._internal.cli.command_context.CommandContextMixIn
- pip._internal.cli.base_command.Command
- pip._internal.utils.misc.StreamWrapper
- pip._internal.utils.misc.HiddenText
- pip._internal.utils.misc.ConfiguredBuildBackendHookCaller
- pip._internal.metadata.Backend
- pip._internal.metadata.importlib._compat.BadMetadata
- pip._internal.metadata.importlib._compat.BasePath
- pip._internal.metadata.importlib._dists.WheelDistribution
- pip._internal.metadata.importlib._dists.Distribution
- pip._internal.metadata.importlib._envs._DistributionFinder
- pip._internal.metadata.pkg_resources.EntryPoint
- pip._internal.metadata.pkg_resources.InMemoryMetadata
- pip._internal.metadata.pkg_resources.Distribution
- pip._internal.metadata.pkg_resources.Environment
- pip._internal.metadata.importlib._envs.Environment
- pip._internal.exceptions.PipError
- pip._internal.exceptions.DiagnosticPipError
- pip._internal.exceptions.ConfigurationError
- pip._internal.exceptions.InstallationError
- pip._internal.exceptions.UninstallationError
- pip._internal.exceptions.MissingPyProjectBuildRequires
- pip._internal.exceptions.InvalidPyProjectBuildRequires
- pip._internal.exceptions.NoneMetadataError
- pip._internal.exceptions.UserInstallationInvalid
- pip._internal.exceptions.InvalidSchemeCombination
- pip._internal.exceptions.DistributionNotFound
- pip._internal.exceptions.RequirementsFileParseError
- pip._internal.exceptions.BestVersionAlreadyInstalled
- pip._internal.exceptions.BadCommand
- pip._internal.exceptions.CommandError
- pip._internal.exceptions.PreviousBuildDirError
- pip._internal.exceptions.NetworkConnectionError
- pip._internal.exceptions.InvalidWheelFilename
- pip._internal.exceptions.UnsupportedWheel
- pip._internal.exceptions.InvalidWheel
- pip._internal.exceptions.MetadataInconsistent
- pip._internal.exceptions.InstallationSubprocessError
- pip._internal.exceptions.MetadataGenerationFailed
- pip._internal.exceptions.HashErrors
- pip._internal.exceptions.HashError
- pip._internal.exceptions.VcsHashUnsupported
- pip._internal.exceptions.DirectoryUrlHashUnsupported
- pip._internal.exceptions.HashMissing
- pip._internal.exceptions.HashUnpinned
- pip._internal.exceptions.HashMismatch
- pip._internal.exceptions.UnsupportedPythonVersion
- pip._internal.exceptions.ConfigurationFileCouldNotBeLoaded
- pip._internal.exceptions.ExternallyManagedEnvironment
- pip._internal.configuration.Configuration
- pip._internal.cli.parser.PrettyHelpFormatter
- pip._internal.cli.parser.UpdatingDefaultsHelpFormatter
- pip._internal.cli.parser.CustomOptionParser
- pip._internal.cli.parser.ConfigOptionParser
- pip._internal.cli.cmdoptions.PipOption
- pip._internal.req.req_file.ParsedRequirement
- pip._internal.req.req_file.ParsedLine
- pip._internal.req.req_file.RequirementsFileParser
- pip._internal.req.req_file.OptionParsingError
- pip.__pip-runner__.PipImportRedirectingFinder
- pip._internal.self_outdated_check.SelfCheckState
- pip._internal.self_outdated_check.UpgradePrompt
- pip._internal.cache.Cache
- pip._internal.cache.SimpleWheelCache
- pip._internal.cache.EphemWheelCache
- pip._internal.cache.CacheEntry
- pip._internal.cache.WheelCache
- pip._vendor.rich.progress_bar.ProgressBar
- pip._vendor.rich.progress._TrackThread
- pip._vendor.rich.progress._Reader
- pip._vendor.rich.progress._ReadContext
- pip._vendor.rich.progress.ProgressColumn
- pip._vendor.rich.progress.RenderableColumn
- pip._vendor.rich.progress.SpinnerColumn
- pip._vendor.rich.progress.TextColumn
- pip._vendor.rich.progress.BarColumn
- pip._vendor.rich.progress.TimeElapsedColumn
- pip._vendor.rich.progress.TaskProgressColumn
- pip._vendor.rich.progress.TimeRemainingColumn
- pip._vendor.rich.progress.FileSizeColumn
- pip._vendor.rich.progress.TotalFileSizeColumn
- pip._vendor.rich.progress.MofNCompleteColumn
- pip._vendor.rich.progress.DownloadColumn
- pip._vendor.rich.progress.TransferSpeedColumn
- pip._vendor.rich.progress.ProgressSample
- pip._vendor.rich.progress.Task
- pip._vendor.rich.progress.Progress
- pip._internal.operations.build.build_tracker.TrackerId
- pip._internal.operations.build.build_tracker.BuildTracker
- pip._internal.distributions.base.AbstractDistribution
- pip._internal.distributions.sdist.SourceDistribution
- pip._internal.distributions.wheel.WheelDistribution
- pip._internal.distributions.installed.InstalledDistribution
- pip._internal.network.download.Downloader
- pip._internal.network.download.BatchDownloader
- pip._internal.network.lazy_wheel.HTTPRangeRequestUnsupported
- pip._internal.network.lazy_wheel.LazyZipOverHTTP
- pip._internal.operations.prepare.File
- pip._internal.operations.prepare.RequirementPreparer
- pip._internal.req.constructors.RequirementParts
- pip._internal.resolution.base.BaseResolver
- pip._vendor.truststore._windows.CERT_CONTEXT
- pip._vendor.truststore._windows.CERT_ENHKEY_USAGE
- pip._vendor.truststore._windows.CERT_USAGE_MATCH
- pip._vendor.truststore._windows.CERT_CHAIN_PARA
- pip._vendor.truststore._windows.CERT_TRUST_STATUS
- pip._vendor.truststore._windows.CERT_CHAIN_ELEMENT
- pip._vendor.truststore._windows.CERT_SIMPLE_CHAIN
- pip._vendor.truststore._windows.CERT_CHAIN_CONTEXT
- pip._vendor.truststore._windows.SSL_EXTRA_CERT_CHAIN_POLICY_PARA
- pip._vendor.truststore._windows.CERT_CHAIN_POLICY_PARA
- pip._vendor.truststore._windows.CERT_CHAIN_POLICY_STATUS
- pip._vendor.truststore._windows.CERT_CHAIN_ENGINE_CONFIG
- pip._vendor.truststore._macos.CFConst
- pip._vendor.truststore._api.SSLContext
- pip._vendor.truststore._api.SSLContext.__init__.TruststoreSSLObject
- pip._internal.cli.req_command.SessionCommandMixin
- pip._internal.cli.req_command.IndexGroupCommand
- pip._internal.cli.req_command.RequirementCommand
- pip._vendor.resolvelib.providers.AbstractProvider
- pip._vendor.resolvelib.providers.AbstractResolver
- pip._vendor.resolvelib.reporters.BaseReporter
- pip._vendor.resolvelib.structs.DirectedGraph
- pip._vendor.resolvelib.structs.IteratorMapping
- pip._vendor.resolvelib.structs._FactoryIterableView
- pip._vendor.resolvelib.structs._SequenceIterableView
- pip._vendor.resolvelib.resolvers.ResolverException
- pip._vendor.resolvelib.resolvers.RequirementsConflicted
- pip._vendor.resolvelib.resolvers.InconsistentCandidate
- pip._vendor.resolvelib.resolvers.Criterion
- pip._vendor.resolvelib.resolvers.ResolutionError
- pip._vendor.resolvelib.resolvers.ResolutionImpossible
- pip._vendor.resolvelib.resolvers.ResolutionTooDeep
- pip._vendor.resolvelib.resolvers.Resolution
- pip._vendor.resolvelib.resolvers.Resolver
- pip._internal.resolution.resolvelib.base.Constraint
- pip._internal.resolution.resolvelib.base.Requirement
- pip._internal.resolution.resolvelib.base.Candidate
- pip._internal.resolution.resolvelib.found_candidates.FoundCandidates
- pip._internal.resolution.resolvelib.requirements.ExplicitRequirement
- pip._internal.resolution.resolvelib.requirements.SpecifierRequirement
- pip._internal.resolution.resolvelib.requirements.SpecifierWithoutExtrasRequirement
- pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement
- pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement
- pip._internal.resolution.resolvelib.factory.ConflictCause
- pip._internal.resolution.resolvelib.factory.CollectedRootRequirements
- pip._internal.resolution.resolvelib.factory.Factory
- pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate
- pip._internal.resolution.resolvelib.candidates.LinkCandidate
- pip._internal.resolution.resolvelib.candidates.EditableCandidate
- pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate
- pip._internal.resolution.resolvelib.candidates.ExtrasCandidate
- pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate
- pip._internal.resolution.resolvelib.provider.PipProvider
- pip._internal.resolution.resolvelib.reporter.PipReporter
- pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter
- pip._internal.resolution.resolvelib.resolver.Resolver
- pip._internal.resolution.legacy.resolver.Resolver
- pip._internal.network.xmlrpc.PipXmlrpcTransport
- pip._internal.models.installation_report.InstallationReport
- pip._internal.operations.check.PackageDetails
- pip._internal.commands.install.InstallCommand
- pip._internal.commands.debug.DebugCommand
- pip._internal.commands.check.CheckCommand
- pip._internal.commands.list._DistWithLatestInfo
- pip._internal.commands.list.ListCommand
- pip._internal.operations.freeze._EditableInfo
- pip._internal.operations.freeze.FrozenRequirement
- pip._internal.commands.freeze.FreezeCommand
- pip._internal.commands.show.ShowCommand
- pip._internal.commands.show._PackageInfo
- pip._internal.commands.search.TransformedHit
- pip._internal.commands.search.SearchCommand
- pip._internal.commands.uninstall.UninstallCommand
- pip._internal.commands.cache.CacheCommand
- pip._internal.commands.configuration.ConfigurationCommand
- pip._internal.commands.download.DownloadCommand
- pip._internal.commands.index.IndexCommand
- pip._internal.commands.inspect.InspectCommand
- pip._internal.commands.help.HelpCommand
- pip._internal.commands.hash.HashCommand
- pip._internal.commands.wheel.WheelCommand
- pip._internal.commands.completion.CompletionCommand
- pip._vendor.six.X
- pip._vendor.six._LazyDescr
- pip._vendor.six.MovedModule
- pip._vendor.six._LazyModule
- pip._vendor.six.MovedAttribute
- pip._vendor.six._SixMetaPathImporter
- pip._vendor.six._MovedItems
- pip._vendor.six.Module_six_moves_urllib_parse
- pip._vendor.six.Module_six_moves_urllib_error
- pip._vendor.six.Module_six_moves_urllib_request
- pip._vendor.six.Module_six_moves_urllib_response
- pip._vendor.six.Module_six_moves_urllib_robotparser
- pip._vendor.six.Module_six_moves_urllib
- pip._vendor.six.Iterator
- pip._vendor.six.with_metaclass.metaclass
- pip._vendor.webencodings.x_user_defined.Codec
- pip._vendor.webencodings.x_user_defined.IncrementalEncoder
- pip._vendor.webencodings.x_user_defined.IncrementalDecoder
- pip._vendor.webencodings.x_user_defined.StreamWriter
- pip._vendor.webencodings.x_user_defined.StreamReader
- pip._vendor.webencodings.Encoding
- pip._vendor.webencodings.IncrementalDecoder
- pip._vendor.webencodings.IncrementalEncoder
- pip._vendor.urllib3._collections.RLock
- pip._vendor.urllib3._collections.RecentlyUsedContainer
- pip._vendor.urllib3._collections.HTTPHeaderDict
- pip._vendor.urllib3.contrib._securetransport.bindings.CFConst
- pip._vendor.urllib3.contrib._securetransport.bindings.SecurityConst
- pip._vendor.urllib3.contrib.securetransport.WrappedSocket
- pip._vendor.urllib3.contrib.securetransport.SecureTransportContext
- pip._vendor.urllib3.contrib.ntlmpool.NTLMConnectionPool
- pip._vendor.urllib3.contrib.appengine.AppEnginePlatformWarning
- pip._vendor.urllib3.contrib.appengine.AppEnginePlatformError
- pip._vendor.urllib3.contrib.appengine.AppEngineManager
- pip._vendor.rich._stack.Stack
- pip._vendor.rich.bar.Bar
- pip._vendor.rich.tree.Tree
- pip._vendor.rich.layout.LayoutRender
- pip._vendor.rich.layout.LayoutError
- pip._vendor.rich.layout.NoSplitter
- pip._vendor.rich.layout._Placeholder
- pip._vendor.rich.layout.Splitter
- pip._vendor.rich.layout.RowSplitter
- pip._vendor.rich.layout.ColumnSplitter
- pip._vendor.rich.layout.Layout
- pip._vendor.rich.prompt.PromptError
- pip._vendor.rich.prompt.InvalidResponse
- pip._vendor.rich.prompt.PromptBase
- pip._vendor.rich.prompt.Prompt
- pip._vendor.rich.prompt.IntPrompt
- pip._vendor.rich.prompt.FloatPrompt
- pip._vendor.rich.prompt.Confirm
- pip._vendor.chardet.metadata.languages.Language
- pip._vendor.idna.codec.Codec
- pip._vendor.idna.codec.IncrementalEncoder
- pip._vendor.idna.codec.IncrementalDecoder
- pip._vendor.idna.codec.StreamWriter
- pip._vendor.idna.codec.StreamReader
- pip._vendor.colorama.ansi.AnsiCodes
- pip._vendor.colorama.ansi.AnsiCursor
- pip._vendor.colorama.ansi.AnsiFore
- pip._vendor.colorama.ansi.AnsiBack
- pip._vendor.colorama.ansi.AnsiStyle
- pip._vendor.colorama.win32.CONSOLE_SCREEN_BUFFER_INFO
- pip._vendor.colorama.winterm.WinColor
- pip._vendor.colorama.winterm.WinStyle
- pip._vendor.colorama.winterm.WinTerm
- pip._vendor.colorama.ansitowin32.StreamWrapper
- pip._vendor.colorama.ansitowin32.AnsiToWin32
- pip._vendor.distlib.version.UnsupportedVersionError
- pip._vendor.distlib.version.Version
- pip._vendor.distlib.version.Matcher
- pip._vendor.distlib.version.NormalizedVersion
- pip._vendor.distlib.version.NormalizedMatcher
- pip._vendor.distlib.version.LegacyVersion
- pip._vendor.distlib.version.LegacyMatcher
- pip._vendor.distlib.version.SemanticVersion
- pip._vendor.distlib.version.SemanticMatcher
- pip._vendor.distlib.version.VersionScheme
- pip._vendor.distlib.markers.Evaluator
- pip._vendor.distlib.manifest.Manifest
- pip._vendor.distlib.metadata.MetadataMissingError
- pip._vendor.distlib.metadata.MetadataConflictError
- pip._vendor.distlib.metadata.MetadataUnrecognizedVersionError
- pip._vendor.distlib.metadata.MetadataInvalidError
- pip._vendor.distlib.metadata.LegacyMetadata
- pip._vendor.distlib.metadata.Metadata
- pip._vendor.distlib.database._Cache
- pip._vendor.distlib.database.DistributionPath
- pip._vendor.distlib.database.Distribution
- pip._vendor.distlib.database.BaseInstalledDistribution
- pip._vendor.distlib.database.InstalledDistribution
- pip._vendor.distlib.database.EggInfoDistribution
- pip._vendor.distlib.database.DependencyGraph
- pip._vendor.distlib.index.PackageIndex
- pip._vendor.distlib.wheel.Mounter
- pip._vendor.distlib.wheel.Wheel
- pip._vendor.distlib.locators.RedirectHandler
- pip._vendor.distlib.locators.Locator
- pip._vendor.distlib.locators.PyPIRPCLocator
- pip._vendor.distlib.locators.PyPIJSONLocator
- pip._vendor.distlib.locators.Page
- pip._vendor.distlib.locators.SimpleScrapingLocator
- pip._vendor.distlib.locators.DirectoryLocator
- pip._vendor.distlib.locators.JSONLocator
- pip._vendor.distlib.locators.DistPathLocator
- pip._vendor.distlib.locators.AggregatingLocator
- pip._vendor.distlib.locators.DependencyFinder
- pip._vendor.pyproject_hooks._in_process._in_process.BackendUnavailable
- pip._vendor.pyproject_hooks._in_process._in_process.BackendInvalid
- pip._vendor.pyproject_hooks._in_process._in_process.HookMissing
- pip._vendor.pyproject_hooks._in_process._in_process._DummyException
- pip._vendor.pyproject_hooks._in_process._in_process.GotUnsupportedOperation
- pip._vendor.pygments.formatters.latex.LatexFormatter
- pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer
- pip._vendor.pygments.formatters._automodule
- pip._vendor.pygments.formatters.terminal.TerminalFormatter
- pip._vendor.pygments.formatters.terminal256.EscapeSequence
- pip._vendor.pygments.formatters.terminal256.Terminal256Formatter
- pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter
- pip._vendor.pygments.cmdline.HelpFormatter
- pip._vendor.pygments.sphinxext.PygmentsDoc
- pip._vendor.pygments.scanner.EndOfText
- pip._vendor.pygments.scanner.Scanner
- pip._vendor.pygments.lexers.python.PythonLexer
- pip._vendor.pygments.lexers.python.Python2Lexer
- pip._vendor.pygments.lexers.python._PythonConsoleLexerBase
- pip._vendor.pygments.lexers.python.PythonConsoleLexer
- pip._vendor.pygments.lexers.python.PythonConsoleLexer.__init__._ReplaceInnerCode
- pip._vendor.pygments.lexers.python.PythonTracebackLexer
- pip._vendor.pygments.lexers.python.Python2TracebackLexer
- pip._vendor.pygments.lexers.python.CythonLexer
- pip._vendor.pygments.lexers.python.DgLexer
- pip._vendor.pygments.lexers.python.NumPyLexer
- pip._vendor.pygments.formatters.other.NullFormatter
- pip._vendor.pygments.formatters.other.RawTokenFormatter
- pip._vendor.pygments.formatters.other.TestcaseFormatter
- pip._vendor.pygments.formatters.rtf.RtfFormatter
- pip._vendor.pygments.formatters.bbcode.BBCodeFormatter
- pip._vendor.pygments.formatters.pangomarkup.PangoMarkupFormatter
- pip._vendor.pygments.formatters.img.PilNotAvailable
- pip._vendor.pygments.formatters.img.FontNotFound
- pip._vendor.pygments.formatters.img.FontManager
- pip._vendor.pygments.formatters.img.ImageFormatter
- pip._vendor.pygments.formatters.img.GifImageFormatter
- pip._vendor.pygments.formatters.img.JpgImageFormatter
- pip._vendor.pygments.formatters.img.BmpImageFormatter
- pip._vendor.pygments.formatters.svg.SvgFormatter
- pip._vendor.pygments.formatters.html.HtmlFormatter
- pip._vendor.pygments.formatters.irc.IRCFormatter
- pip._vendor.pygments.formatters.groff.GroffFormatter
All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: '...fuzz_requirements'
    functionSourceFile: '...fuzz_requirements'
    functionUses: 0
    functionsReached:
    - atheris.Setup
    - '...fuzz_requirements.main'
    - atheris.instrument_all
    - atheris.Fuzz
    - atheris.instrument_func
    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_func
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - input_bytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 25
    functionName: '...fuzz_requirements.TestOneInput'
    functionSourceFile: '...fuzz_requirements'
    functionUses: 0
    functionsReached:
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - parser.get_default_values
    - optparse.OptionParser
    - pip._vendor.requests.models.PreparedRequest.copy
    - <builtin>.dict
    - parser.parse_args
    - string_network.split
    - urllib.parse.urlparse.netloc.split
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - password.encode
    - output.pop
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - merged_setting.items
    - pip._internal.req.req_file.get_file_content
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - scheme.lower
    - urllib.parse.urlparse._replace
    - urllib.parse.quote
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.decode
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - urllib.request.getproxies.get
    - no_proxy.replace
    - platform.python_implementation
    - ZONE_ID_RE.search
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._internal.req.req_file.parse_requirements
    - urllib.parse.quote.upper
    - <builtin>.chr
    - pip._vendor.requests.sessions.merge_setting
    - cookie.value.startswith
    - f.read
    - pip._vendor.requests.utils.set_environ
    - <builtin>.max
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - <builtin>.isinstance
    - validator.match
    - ENV_VAR_RE.findall
    - path.endswith
    - s.encode
    - collections.abc.MutableMapping.upper
    - pip._internal.req.req_file.handle_requirement_line
    - collections.OrderedDict.pop
    - pip._vendor.requests.cookies.merge_cookies
    - pip._internal.req.req_file.join_lines
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - args.append
    - urllib.parse.urljoin.lower
    - request_hooks.get
    - history.insert
    - pip._vendor.requests.hooks.dispatch_hook
    - typing.cast
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - <builtin>.hex
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - options.features_enabled.extend
    - <builtin>.open
    - urllib.parse.unquote
    - val.lower
    - result.groups
    - IPV4_RE.match
    - method.upper
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - authority.rpartition
    - kwargs.setdefault
    - pip._internal.network.utils.raise_for_status
    - copy.copy
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - hooks.items
    - pip._internal.req.req_file.RequirementsFileParser._parse_and_recurse
    - prefix.lower
    - http.cookiejar.Cookie
    - pip._internal.req.req_file.get_line_parser
    - k.encode
    - collections.abc.MutableMapping.encode
    - typing.cast.Environment.default
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - pip._internal.req.req_file.build_parser
    - socket.inet_ntoa
    - SCHEME_RE.search
    - <builtin>.str
    - locale.getpreferredencoding
    - os.path.expanduser
    - index_urls.extend
    - pip._vendor.requests.utils._validate_header_part
    - os.confstr
    - pip._internal.metadata.select_backend
    - key.upper
    - ctypes.CDLL
    - platform.mac_ver
    - PERCENT_RE.subn
    - urllib.request.getproxies
    - collections.OrderedDict
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - urllib.parse.urlparse
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._internal.network.session.PipSession.__init__
    - pip._vendor.requests.models.Request.__init__
    - data.startswith
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - pip._internal.req.req_file.preprocess
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.get_cookie_header
    - pip._vendor.requests.sessions.Session.get_adapter
    - pip._internal.req.req_file.get_line_parser.parse_line
    - <builtin>.iter
    - pip._internal.req.req_file.ignore_comments
    - pip._vendor.requests.utils.resolve_proxies
    - pip._internal.req.req_file.RequirementsFileParser.parse
    - proxies.get
    - urllib.parse.urlencode.seek
    - v.encode
    - pip._internal.utils.glibc.libc_ver
    - pip._vendor.requests.compat.MutableMapping.__init__
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - line.replace
    - HTTPError.__init__
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - data.decode
    - new_line.append
    - hooks.get
    - <builtin>.any
    - platform.machine
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - pip._vendor.requests.utils.super_len
    - <builtin>.int
    - pip._vendor.requests._internal_utils.to_native_string
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - pip._vendor.requests.utils.get_environ_proxies
    - urllib.request.proxy_bypass
    - urllib.parse.quote.seek
    - contextlib.suppress
    - result.append
    - <builtin>.type
    - token.startswith
    - d.items
    - netloc.count
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - history.pop
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.auth._basic_auth_str
    - <builtin>.set
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - <builtin>.next
    - pip._internal.req.req_file.RequirementsFileParser._parse_file
    - zone_id.startswith
    - version_str.decode
    - kwargs.get
    - new_proxies.setdefault
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - os.urandom
    - pip._internal.metadata.get_default_environment
    - byte.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - urllib.parse.quote.tell
    - rustc_output.split
    - binascii.hexlify
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.parse.urljoin.seek
    - string_network.count
    - u_string.encode
    - pip._internal.req.req_file.RequirementsFileParser.__init__
    - os.path.basename
    - <builtin>.filter
    - field.render_headers
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.quote.lstrip
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.urllib3.util.url.parse_url
    - <builtin>.enumerate
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - COMMENT_RE.match
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - path.startswith
    - output.insert
    - pip._internal.network.session.looks_like_ci
    - d.iteritems
    - new_jar.set_cookie
    - netrc.netrc.authenticators
    - match.span
    - urllib.parse.urlencode
    - os.path.dirname
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - <builtin>.range
    - pip._internal.req.req_file.handle_option_line
    - socket.inet_aton
    - io.BytesIO.getvalue
    - pip._vendor.distro.name
    - pip._internal.utils.compat.has_tls
    - pip._internal.req.req_file.expand_env_variables
    - os.environ.get
    - send_kwargs.update
    - line.split
    - shlex.split
    - http.cookiejar.CookieJar.set_policy
    - pip._internal.req.req_file.ParsedLine.__init__
    - pip._vendor.requests.cookies.MockRequest.__init__
    - net.split
    - platform.release
    - ENCODING_RE.search
    - pip._internal.network.cache.SafeFileCache.__init__
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - pip._internal.req.req_file.handle_line
    - <builtin>.list
    - s.decode
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.check_header_validity
    - parser.add_option
    - uri_bytes.count
    - http.cookiejar.CookieJar.extract_cookies
    - platform.python_version
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - collections.OrderedDict.values
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.getattr
    - sys.platform.startswith
    - pip._vendor.urllib3.filepost.iter_field_objects
    - http.cookiejar.CookieJar.__init__
    - data.split
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - urllib.parse.urlencode.fileno
    - output.append
    - COMMENT_RE.sub
    - pip._internal.utils.glibc.glibc_version_string
    - urllib.parse.urljoin.upper
    - netrc.netrc
    - hist.append
    - line.endswith
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - os.getenv
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - sys.getdefaultencoding
    - boundary.decode
    - find_links.append
    - pip._internal.utils.misc.build_url_from_netloc
    - fp.read
    - collections.abc.MutableMapping.lower
    - pip._vendor.requests.utils.requote_uri
    - collections.namedtuple.__init__
    - pip._internal.models.search_scope.SearchScope.__init__
    - cookie.value.replace
    - h.isalnum
    - urllib.parse.urlparse.hostname.endswith
    - urllib.parse.quote.split
    - urllib.parse.quote.encode
    - pip._internal.network.session.user_agent
    - path.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - pip._internal.utils.encoding.auto_decode
    - pip._internal.utils.misc.parse_netloc
    - collections.abc.MutableMapping.get
    - result.update
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - pip._vendor.requests.sessions.merge_hooks
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - pip._vendor.requests.sessions.Session.request
    - <builtin>.zip
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.requests.utils.should_bypass_proxies
    - session_hooks.get
    - adapter.send
    - pip._vendor.urllib3.fields.guess_content_type
    - content.splitlines
    - pip._internal.network.session.PipSession.add_trusted_host
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - name.lower
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - data.setdefault
    - pip._vendor.requests.utils.dotted_netmask
    - urllib.request.getproxies.items
    - encoded_component.extend
    - line.strip
    - pip._vendor.requests.sessions.Session.mount
    - urllib.parse.urljoin.split
    - DEFAULT_PORTS.get
    - os.path.join
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.idna.encode
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - urllib.parse.urlunparse
    - subprocess.check_output
    - collections.OrderedDict.items
    - os.path.abspath
    - resp.reason.decode
    - os.path.exists
    - warnings.warn
    - base64.b64encode.strip
    - <builtin>.bytearray
    - field.decode
    - pip._internal.network.session.PipSession.update_index_urls
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - options.pop
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - os.fstat
    - resp.close
    - rustc_output.startswith
    - pip._vendor.requests.models.PreparedRequest.prepare
    - fd.write
    - pip._vendor.requests.utils.unquote_unreserved
    - pip._vendor.distro.version
    - <builtin>.len
    - pip._vendor.requests.utils.rewind_body
    - pip._vendor.urllib3.packages.six.iteritems
    - json.dumps
    - pip._internal.req.req_file.break_args_options
    - collections.abc.MutableMapping.setdefault
    - platform.system
    - time.perf_counter
    - <builtin>.ord
    - splitstr.decode
    - shutil.which
    - finder.set_allow_all_prereleases
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.distro.codename
    - pip._internal.utils.urls.get_url_scheme
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - urllib.parse.urlparse.geturl
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - url.split
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - merged_setting.update
    - pip._vendor.requests.sessions.Session.get
    - pip._vendor.urllib3.packages.six.raise_from
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - finder.set_prefer_binary
    - pip._internal.utils.misc.strtobool
    - urllib.parse.urljoin.startswith
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - pip._vendor.requests.sessions.Session.send
    - logger.info
    - pip._internal.req.req_file.ParsedRequirement.__init__
    - gnu_libc_version.split
    - io.BytesIO
    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: 260
    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: fd.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 6
    IfCount: 1
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - args
    - retries
    - cache
    - trusted_hosts
    - index_urls
    - ssl_context
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 321
    functionName: pip._internal.network.session.PipSession.__init__
    functionSourceFile: pip._internal.network.session
    functionUses: 16
    functionsReached:
    - val.lower
    - pip._internal.utils.glibc.libc_ver
    - <builtin>.isinstance
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._vendor.distro.name
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.compat.has_tls
    - netloc.count
    - data.setdefault
    - pip._internal.network.session.user_agent
    - <builtin>.dict
    - os.environ.get
    - pip._internal.utils.glibc.glibc_version_string
    - <builtin>.str
    - pip._internal.metadata.get_default_environment
    - platform.python_implementation
    - pip._vendor.requests.sessions.Session.mount
    - rustc_output.startswith
    - pip._internal.utils.misc.parse_netloc
    - platform.release
    - pip._internal.network.cache.SafeFileCache.__init__
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - collections.OrderedDict.pop
    - <builtin>.super
    - rustc_output.split
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - <builtin>.any
    - os.confstr
    - pip._vendor.distro.version
    - subprocess.check_output
    - pip._internal.metadata.select_backend
    - <builtin>.len
    - ctypes.CDLL
    - platform.machine
    - platform.mac_ver
    - pip._internal.network.session.looks_like_ci
    - <builtin>.zip
    - pip._internal.utils.misc.build_url_from_netloc
    - json.dumps
    - platform.system
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - platform.python_version
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - shutil.which
    - version_str.decode
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - <builtin>.filter
    - logger.info
    - <builtin>.getattr
    - pip._internal.network.session.PipSession.add_trusted_host
    - sys.platform.startswith
    - gnu_libc_version.split
    - urllib.parse.urlparse
    - contextlib.suppress
    - pip._vendor.distro.codename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f99331c0>
    - <ast.Constant object at 0x7f30f9933df0>
    - <ast.Constant object at 0x7f30f99338e0>
    argNames:
    - filename
    - session
    - finder
    - options
    - constraint
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 134
    functionName: pip._internal.req.req_file.parse_requirements
    functionSourceFile: pip._internal.req.req_file
    functionUses: 7
    functionsReached:
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - parser.get_default_values
    - optparse.OptionParser
    - pip._vendor.requests.models.PreparedRequest.copy
    - <builtin>.dict
    - parser.parse_args
    - string_network.split
    - urllib.parse.urlparse.netloc.split
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - password.encode
    - output.pop
    - merged_setting.items
    - pip._internal.req.req_file.get_file_content
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - scheme.lower
    - urllib.parse.urlparse._replace
    - urllib.parse.quote
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.decode
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - urllib.request.getproxies.get
    - no_proxy.replace
    - ZONE_ID_RE.search
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - urllib.parse.quote.upper
    - <builtin>.chr
    - pip._vendor.requests.sessions.merge_setting
    - f.read
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.max
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - <builtin>.isinstance
    - validator.match
    - ENV_VAR_RE.findall
    - path.endswith
    - s.encode
    - collections.abc.MutableMapping.upper
    - pip._internal.req.req_file.handle_requirement_line
    - collections.OrderedDict.pop
    - pip._vendor.requests.cookies.merge_cookies
    - pip._internal.req.req_file.join_lines
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - args.append
    - urllib.parse.urljoin.lower
    - request_hooks.get
    - history.insert
    - pip._vendor.requests.hooks.dispatch_hook
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - <builtin>.hex
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - options.features_enabled.extend
    - <builtin>.open
    - urllib.parse.unquote
    - result.groups
    - IPV4_RE.match
    - method.upper
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - authority.rpartition
    - kwargs.setdefault
    - pip._internal.network.utils.raise_for_status
    - copy.copy
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - hooks.items
    - pip._internal.req.req_file.RequirementsFileParser._parse_and_recurse
    - prefix.lower
    - http.cookiejar.Cookie
    - pip._internal.req.req_file.get_line_parser
    - k.encode
    - collections.abc.MutableMapping.encode
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - pip._internal.req.req_file.build_parser
    - socket.inet_ntoa
    - SCHEME_RE.search
    - <builtin>.str
    - locale.getpreferredencoding
    - os.path.expanduser
    - index_urls.extend
    - pip._vendor.requests.utils._validate_header_part
    - key.upper
    - PERCENT_RE.subn
    - urllib.request.getproxies
    - collections.OrderedDict
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - urllib.parse.urlparse
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.requests.models.Request.__init__
    - data.startswith
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - pip._internal.req.req_file.preprocess
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.get_cookie_header
    - pip._vendor.requests.sessions.Session.get_adapter
    - pip._internal.req.req_file.get_line_parser.parse_line
    - <builtin>.iter
    - pip._internal.req.req_file.ignore_comments
    - pip._vendor.requests.utils.resolve_proxies
    - pip._internal.req.req_file.RequirementsFileParser.parse
    - proxies.get
    - urllib.parse.urlencode.seek
    - v.encode
    - pip._vendor.requests.compat.MutableMapping.__init__
    - <builtin>.bool
    - line.replace
    - HTTPError.__init__
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - data.decode
    - new_line.append
    - hooks.get
    - <builtin>.any
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - pip._vendor.requests.utils.super_len
    - <builtin>.int
    - pip._vendor.requests._internal_utils.to_native_string
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - pip._vendor.requests.utils.get_environ_proxies
    - urllib.request.proxy_bypass
    - urllib.parse.quote.seek
    - result.append
    - <builtin>.type
    - token.startswith
    - d.items
    - netloc.count
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - history.pop
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.auth._basic_auth_str
    - <builtin>.set
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - <builtin>.next
    - pip._internal.req.req_file.RequirementsFileParser._parse_file
    - zone_id.startswith
    - kwargs.get
    - new_proxies.setdefault
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - os.urandom
    - byte.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - urllib.parse.quote.tell
    - binascii.hexlify
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.parse.urljoin.seek
    - string_network.count
    - u_string.encode
    - pip._internal.req.req_file.RequirementsFileParser.__init__
    - os.path.basename
    - field.render_headers
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.quote.lstrip
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.urllib3.util.url.parse_url
    - <builtin>.enumerate
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - COMMENT_RE.match
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - path.startswith
    - output.insert
    - d.iteritems
    - new_jar.set_cookie
    - netrc.netrc.authenticators
    - match.span
    - os.path.dirname
    - urllib.parse.urlencode
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - <builtin>.range
    - pip._internal.req.req_file.handle_option_line
    - socket.inet_aton
    - io.BytesIO.getvalue
    - pip._internal.req.req_file.expand_env_variables
    - send_kwargs.update
    - line.split
    - os.environ.get
    - shlex.split
    - http.cookiejar.CookieJar.set_policy
    - pip._internal.req.req_file.ParsedLine.__init__
    - pip._vendor.requests.cookies.MockRequest.__init__
    - net.split
    - ENCODING_RE.search
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - pip._internal.req.req_file.handle_line
    - <builtin>.list
    - s.decode
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.check_header_validity
    - parser.add_option
    - uri_bytes.count
    - http.cookiejar.CookieJar.extract_cookies
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - collections.OrderedDict.values
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.getattr
    - pip._vendor.urllib3.filepost.iter_field_objects
    - http.cookiejar.CookieJar.__init__
    - data.split
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - urllib.parse.urlencode.fileno
    - output.append
    - COMMENT_RE.sub
    - urllib.parse.urljoin.upper
    - netrc.netrc
    - hist.append
    - urllib.parse.urljoin.encode
    - line.endswith
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - os.getenv
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - sys.getdefaultencoding
    - boundary.decode
    - find_links.append
    - pip._internal.utils.misc.build_url_from_netloc
    - fp.read
    - collections.abc.MutableMapping.lower
    - pip._vendor.requests.utils.requote_uri
    - collections.namedtuple.__init__
    - pip._internal.models.search_scope.SearchScope.__init__
    - cookie.value.replace
    - h.isalnum
    - urllib.parse.urlparse.hostname.endswith
    - urllib.parse.quote.split
    - urllib.parse.quote.encode
    - path.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - pip._internal.utils.encoding.auto_decode
    - pip._internal.utils.misc.parse_netloc
    - collections.abc.MutableMapping.get
    - result.update
    - pip._vendor.requests.sessions.merge_hooks
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - pip._vendor.requests.sessions.Session.request
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.requests.utils.should_bypass_proxies
    - session_hooks.get
    - adapter.send
    - pip._vendor.urllib3.fields.guess_content_type
    - content.splitlines
    - pip._internal.network.session.PipSession.add_trusted_host
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - name.lower
    - pip._vendor.requests.utils.dotted_netmask
    - urllib.request.getproxies.items
    - encoded_component.extend
    - line.strip
    - pip._vendor.requests.sessions.Session.mount
    - urllib.parse.urljoin.split
    - DEFAULT_PORTS.get
    - os.path.join
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.idna.encode
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - urllib.parse.urlunparse
    - collections.OrderedDict.items
    - os.path.abspath
    - resp.reason.decode
    - os.path.exists
    - warnings.warn
    - base64.b64encode.strip
    - <builtin>.bytearray
    - field.decode
    - pip._internal.network.session.PipSession.update_index_urls
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - options.pop
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - os.fstat
    - resp.close
    - pip._vendor.requests.models.PreparedRequest.prepare
    - pip._vendor.requests.utils.unquote_unreserved
    - <builtin>.len
    - pip._vendor.requests.utils.rewind_body
    - pip._vendor.urllib3.packages.six.iteritems
    - json.dumps
    - pip._internal.req.req_file.break_args_options
    - collections.abc.MutableMapping.setdefault
    - time.perf_counter
    - <builtin>.ord
    - splitstr.decode
    - finder.set_allow_all_prereleases
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._internal.utils.urls.get_url_scheme
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - urllib.parse.urlparse.geturl
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - url.split
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - merged_setting.update
    - pip._vendor.requests.sessions.Session.get
    - pip._vendor.urllib3.packages.six.raise_from
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - finder.set_prefer_binary
    - urllib.parse.urljoin.startswith
    - pip._vendor.requests.sessions.Session.send
    - logger.info
    - pip._internal.req.req_file.ParsedRequirement.__init__
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: '...fuzz_requirements.main'
    functionSourceFile: '...fuzz_requirements'
    functionUses: 1
    functionsReached:
    - atheris.Setup
    - atheris.instrument_all
    - 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: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.exceptions
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - logging.getLogger
    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: 135
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._internal.exceptions._is_kebab_case
    functionSourceFile: pip._internal.exceptions
    functionUses: 1
    functionsReached:
    - re.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.match
    functionSourceFile: re
    functionUses: 104
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - s
    - console
    - prefix
    - indent
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 39
    functionName: pip._internal.exceptions._prefix_with_indent
    functionSourceFile: pip._internal.exceptions
    functionUses: 1
    functionsReached:
    - console.render_str
    - <builtin>.isinstance
    - text.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 1342
    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: console.render_str
    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: text.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - kind
    - reference
    - message
    - context
    - hint_stmt
    - note_stmt
    - link
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 73
    functionName: pip._internal.exceptions.DiagnosticPipError.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - re.match
    - pip._internal.exceptions._is_kebab_case
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.hasattr
    functionSourceFile: <builtin>
    functionUses: 521
    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: 695
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 103
    functionName: pip._internal.exceptions.DiagnosticPipError.__repr__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 13
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 114
    functionName: pip._internal.exceptions.DiagnosticPipError.__rich_console__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - console.render_str
    - <builtin>.isinstance
    - text.split
    - pip._internal.exceptions._prefix_with_indent
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - package
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 195
    functionName: pip._internal.exceptions.MissingPyProjectBuildRequires.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Attribute object at 0x7f30e02ac1f0>
    argNames:
    - markup
    - _escape
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 48
    functionName: pip._vendor.rich.markup.escape
    functionSourceFile: ''
    functionUses: 76
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f30dbade370>
    - <ast.Constant object at 0x7f30dbade8e0>
    argNames:
    - self
    - text
    - style
    - justify
    - overflow
    - no_wrap
    - end
    - tab_size
    - spans
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 127
    functionName: pip._vendor.rich.text.Text.__init__
    functionSourceFile: pip._vendor.rich.text
    functionUses: 238
    functionsReached:
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - package
    - reason
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 212
    functionName: pip._internal.exceptions.InvalidPyProjectBuildRequires.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - dist
    - metadata_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 233
    functionName: pip._internal.exceptions.NoneMetadataError.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 246
    functionName: pip._internal.exceptions.NoneMetadataError.__str__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 255
    functionName: pip._internal.exceptions.UserInstallationInvalid.__str__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 260
    functionName: pip._internal.exceptions.InvalidSchemeCombination.__str__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.str
    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: 805
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e079ba00>
    - <ast.Constant object at 0x7f30e25c2a60>
    argNames:
    - self
    - error_msg
    - response
    - request
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 293
    functionName: pip._internal.exceptions.NetworkConnectionError.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 314
    functionName: pip._internal.exceptions.NetworkConnectionError.__str__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - location
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 329
    functionName: pip._internal.exceptions.InvalidWheel.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 333
    functionName: pip._internal.exceptions.InvalidWheel.__str__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - ireq
    - field
    - f_val
    - m_val
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 345
    functionName: pip._internal.exceptions.MetadataInconsistent.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 353
    functionName: pip._internal.exceptions.MetadataInconsistent.__str__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - command_description
    - exit_code
    - output_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 365
    functionName: pip._internal.exceptions.InstallationSubprocessError.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 70
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - <builtin>.super
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.markup.render
    - pip._vendor.rich.style.Style.__init__._make_color
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - <builtin>.next
    - tag_text.partition
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.len
    functionSourceFile: <builtin>
    functionUses: 1237
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 8
    argDefaultValues: []
    argNames:
    - cls
    - text
    - style
    - emoji
    - emoji_variant
    - justify
    - overflow
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 243
    functionName: pip._vendor.rich.text.Text.from_markup
    functionSourceFile: pip._vendor.rich.text
    functionUses: 101
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 397
    functionName: pip._internal.exceptions.InstallationSubprocessError.__str__
    functionSourceFile: pip._internal.exceptions
    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
    - package_details
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 404
    functionName: pip._internal.exceptions.MetadataGenerationFailed.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.markup.escape
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 416
    functionName: pip._internal.exceptions.MetadataGenerationFailed.__str__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 423
    functionName: pip._internal.exceptions.HashErrors.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - error
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 426
    functionName: pip._internal.exceptions.HashErrors.append
    functionSourceFile: pip._internal.exceptions
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 429
    functionName: pip._internal.exceptions.HashErrors.__str__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - e.body
    - lines.append
    - itertools.groupby
    - lines.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.exceptions.HashErrors.__str__.<lambda1>
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.exceptions.HashErrors.__str__.<lambda2>
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: itertools.groupby
    functionSourceFile: itertools
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lines.append
    functionSourceFile: <builtin>
    functionUses: 73
    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: e.body
    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: lines.extend
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 439
    functionName: pip._internal.exceptions.HashErrors.__bool__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bool
    functionSourceFile: <builtin>
    functionUses: 420
    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: 2
    functionLinenumber: 464
    functionName: pip._internal.exceptions.HashError.body
    functionSourceFile: pip._internal.exceptions
    functionUses: 1
    functionsReached:
    - pip._internal.exceptions.HashError._requirement_name
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 479
    functionName: pip._internal.exceptions.HashError._requirement_name
    functionSourceFile: pip._internal.exceptions
    functionUses: 3
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 476
    functionName: pip._internal.exceptions.HashError.__str__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - pip._internal.exceptions.HashError.body
    - <builtin>.str
    - itertools.chain
    - lines.append
    - lines.extend
    - pip._internal.exceptions.HashMissing.body
    - pip._internal.exceptions.HashMismatch.body
    - <builtin>.getattr
    - pip._internal.exceptions.HashMismatch._hash_comparison.hash_then_or
    - <builtin>.next
    - pip._internal.exceptions.HashError._requirement_name
    - itertools.repeat
    - pip._internal.exceptions.HashMismatch._hash_comparison
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 592
    functionName: pip._internal.exceptions.HashMismatch.body
    functionSourceFile: pip._internal.exceptions
    functionUses: 1
    functionsReached:
    - <builtin>.str
    - itertools.chain
    - lines.append
    - lines.extend
    - pip._internal.exceptions.HashMismatch._hash_comparison.hash_then_or
    - <builtin>.next
    - pip._internal.exceptions.HashError._requirement_name
    - itertools.repeat
    - pip._internal.exceptions.HashMismatch._hash_comparison
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 532
    functionName: pip._internal.exceptions.HashMissing.body
    functionSourceFile: pip._internal.exceptions
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - gotten_hash
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 525
    functionName: pip._internal.exceptions.HashMissing.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.getattr
    functionSourceFile: <builtin>
    functionUses: 662
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - allowed
    - gots
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 582
    functionName: pip._internal.exceptions.HashMismatch.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 595
    functionName: pip._internal.exceptions.HashMismatch._hash_comparison
    functionSourceFile: pip._internal.exceptions
    functionUses: 2
    functionsReached:
    - itertools.chain
    - lines.append
    - lines.extend
    - pip._internal.exceptions.HashMismatch._hash_comparison.hash_then_or
    - <builtin>.next
    - itertools.repeat
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - hash_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 607
    functionName: pip._internal.exceptions.HashMismatch._hash_comparison.hash_then_or
    functionSourceFile: pip._internal.exceptions
    functionUses: 3
    functionsReached:
    - itertools.repeat
    - itertools.chain
    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: itertools.repeat
    functionSourceFile: itertools
    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: itertools.chain
    functionSourceFile: itertools
    functionUses: 62
    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: 394
    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 0x7f30fb0e9f40>
    - <ast.Constant object at 0x7f30fb0e9f10>
    - <ast.Constant object at 0x7f30fb0e9ee0>
    argNames:
    - self
    - reason
    - fname
    - error
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 630
    functionName: pip._internal.exceptions.ConfigurationFileCouldNotBeLoaded.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 641
    functionName: pip._internal.exceptions.ConfigurationFileCouldNotBeLoaded.__str__
    functionSourceFile: pip._internal.exceptions
    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
    - error
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 669
    functionName: pip._internal.exceptions.ExternallyManagedEnvironment.__init__
    functionSourceFile: pip._internal.exceptions
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 687
    functionName: pip._internal.exceptions.ExternallyManagedEnvironment._iter_externally_managed_error_keys
    functionSourceFile: pip._internal.exceptions
    functionUses: 1
    functionsReached:
    - locale.getlocale
    - lang.partition
    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: locale.getlocale
    functionSourceFile: locale
    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: lang.partition
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - config
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 709
    functionName: pip._internal.exceptions.ExternallyManagedEnvironment.from_config
    functionSourceFile: pip._internal.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - logger.isEnabledFor
    - locale.getlocale
    - pip._internal.exceptions.ExternallyManagedEnvironment._iter_externally_managed_error_keys
    - pip._internal.exceptions.ExternallyManagedEnvironment.__init__
    - <builtin>.len
    - lang.partition
    - parser.read
    - pip._vendor.rich.control.strip_control_codes
    - configparser.ConfigParser
    - contextlib.suppress
    - logger.warning
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: configparser.ConfigParser
    functionSourceFile: configparser
    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: parser.read
    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: contextlib.suppress
    functionSourceFile: contextlib
    functionUses: 86
    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.isEnabledFor
    functionSourceFile: <builtin>
    functionUses: 38
    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.warning
    functionSourceFile: <builtin>
    functionUses: 251
    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: 8
    functionLinenumber: -1
    functionName: pip._vendor.rich
    functionSourceFile: pip._vendor.rich
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - threading.RLock
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - term.rpartition
    - pip._vendor.rich.print
    - os.getenv
    - jupyter_columns.isdigit
    - os.getcwd
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - os.path.abspath
    - typing.cast
    - write_console.print
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - lines.isdigit
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.getcwd
    functionSourceFile: os
    functionUses: 36
    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.abspath
    functionSourceFile: os
    functionUses: 253
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 23
    functionName: pip._vendor.rich.get_console
    functionSourceFile: pip._vendor.rich
    functionUses: 21
    functionsReached:
    - <builtin>.bool
    - threading.RLock
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - term.rpartition
    - os.getenv
    - jupyter_columns.isdigit
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - lines.isdigit
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 0
    IfCount: 13
    argCount: 29
    argDefaultValues: []
    argNames:
    - self
    - color_system
    - force_terminal
    - force_jupyter
    - force_interactive
    - soft_wrap
    - theme
    - stderr
    - file
    - quiet
    - width
    - height
    - style
    - no_color
    - tab_size
    - record
    - markup
    - emoji
    - emoji_variant
    - highlight
    - log_time
    - log_path
    - log_time_format
    - highlighter
    - legacy_windows
    - safe_box
    - get_datetime
    - get_time
    - _environ
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 631
    functionName: pip._vendor.rich.console.Console.__init__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 57
    functionsReached:
    - <builtin>.bool
    - threading.RLock
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - term.rpartition
    - os.getenv
    - jupyter_columns.isdigit
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - pip._vendor.rich.console.get_windows_console_features
    - <builtin>.int
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - lines.isdigit
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich._log_render.LogRender.__init__
    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: 6
    functionLinenumber: 39
    functionName: pip._vendor.rich.reconfigure
    functionSourceFile: pip._vendor.rich
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - threading.RLock
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - term.rpartition
    - os.getenv
    - jupyter_columns.isdigit
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - lines.isdigit
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - objects
    - sep
    - end
    - file
    - flush
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 53
    functionName: pip._vendor.rich.print
    functionSourceFile: pip._vendor.rich
    functionUses: 9
    functionsReached:
    - <builtin>.bool
    - threading.RLock
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - term.rpartition
    - os.getenv
    - jupyter_columns.isdigit
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - write_console.print
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - lines.isdigit
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: write_console.print
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f30db4992e0>
    argNames:
    - json
    - data
    - indent
    - highlight
    - skip_keys
    - ensure_ascii
    - check_circular
    - allow_nan
    - default
    - sort_keys
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 77
    functionName: pip._vendor.rich.print_json
    functionSourceFile: pip._vendor.rich
    functionUses: 3
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.get_console
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - pip._vendor.rich.json.JSON.from_data
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console.print_json
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - lines.isdigit
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - json.dumps
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - pip._vendor.rich.json.JSON.__init__
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - json.loads
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - variants.get
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - cls.__new__
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6279880>
    argNames:
    - self
    - json
    - data
    - indent
    - highlight
    - skip_keys
    - ensure_ascii
    - check_circular
    - allow_nan
    - default
    - sort_keys
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1722
    functionName: pip._vendor.rich.console.Console.print_json
    functionSourceFile: pip._vendor.rich.console
    functionUses: 5
    functionsReached:
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - pip._vendor.rich._pick.pick_bool
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - pip._vendor.rich.json.JSON.from_data
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.Control.move_to
    - json.dumps
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - pip._vendor.rich.json.JSON.__init__
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - json.loads
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - variants.get
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - open_tag.name.startswith
    - typing.cast.__rich_console__
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - random.randint
    - line.expand_tabs
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - cls.__new__
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 11
    argDefaultValues: []
    argNames:
    - obj
    - console
    - title
    - help
    - methods
    - docs
    - private
    - dunder
    - sort
    - all
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 120
    functionName: pip._vendor.rich.inspect
    functionSourceFile: pip._vendor.rich
    functionUses: 2
    functionsReached:
    - <builtin>.bool
    - threading.RLock
    - pip._vendor.rich._inspect.Inspect.__init__
    - abc.ABC.__init__
    - threading.local.__init__
    - <builtin>.str
    - pip._vendor.rich._log_render.LogRender.__init__
    - ctypes.wintypes.DWORD
    - inspect.isclass
    - term.rpartition
    - _console.print
    - os.getenv
    - jupyter_columns.isdigit
    - pip._vendor.rich._inspect.Inspect._make_title
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - inspect.ismodule
    - typing.cast
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - <builtin>.callable
    - lines.isdigit
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 11
    argDefaultValues: []
    argNames:
    - self
    - obj
    - title
    - help
    - methods
    - docs
    - private
    - dunder
    - sort
    - all
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 39
    functionName: pip._vendor.rich._inspect.Inspect.__init__
    functionSourceFile: pip._vendor.rich._inspect
    functionUses: 3
    functionsReached:
    - abc.ABC.__init__
    - <builtin>.str
    - pip._vendor.rich._inspect.Inspect._make_title
    - <builtin>.callable
    - inspect.isclass
    - inspect.ismodule
    - <builtin>.type
    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: _console.print
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.console
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - filename.rpartition
    - key.startswith
    - <builtin>.sum
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.console.Console.log
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - locals.items
    - scope.items
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - text.apply_meta
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - pip._vendor.rich.table.Table.grid
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - term.rpartition
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - sys.__stderr__.fileno
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.scope.render_scope
    - items_table.add_column
    - pip._vendor.rich.cells.chop_cells
    - os.path.abspath
    - match.span
    - COLOR_SYSTEMS.items
    - sys.__stdout__.fileno
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - sys.__stdin__.fileno
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.console.Console._caller_frame_info
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - pip._vendor.rich.panel.Panel.fit
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - platform.system
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - pip._vendor.rich.text.Text.assemble
    - operator.itemgetter
    - items_table.add_row
    - renderables.append
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - variants.get
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - style_definition.strip
    - itertools.zip_longest
    - pip._vendor.rich.text.Text.render
    - os.getenv
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - inspect.stack
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - filename.startswith
    - pip._vendor.rich.console.Console._detect_color_system
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: platform.system
    functionSourceFile: platform
    functionUses: 79
    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.__stdin__.fileno
    functionSourceFile: sys
    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: sys.__stdout__.fileno
    functionSourceFile: sys
    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: sys.__stderr__.fileno
    functionSourceFile: sys
    functionUses: 1
    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: 156
    functionName: pip._vendor.rich.console.ConsoleOptions.ascii_only
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 160
    functionName: pip._vendor.rich.console.ConsoleOptions.copy
    functionSourceFile: pip._vendor.rich.console
    functionUses: 5
    functionsReached:
    - ConsoleOptions.__new__
    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: ConsoleOptions.__new__
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 10
    argDefaultValues: []
    argNames:
    - self
    - width
    - min_width
    - max_width
    - justify
    - overflow
    - no_wrap
    - highlight
    - markup
    - height
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 170
    functionName: pip._vendor.rich.console.ConsoleOptions.update
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - ConsoleOptions.__new__
    - <builtin>.max
    - <builtin>.isinstance
    - pip._vendor.rich.console.ConsoleOptions.copy
    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: 231
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - width
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 207
    functionName: pip._vendor.rich.console.ConsoleOptions.update_width
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - ConsoleOptions.__new__
    - <builtin>.max
    - pip._vendor.rich.console.ConsoleOptions.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - height
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 220
    functionName: pip._vendor.rich.console.ConsoleOptions.update_height
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - ConsoleOptions.__new__
    - pip._vendor.rich.console.ConsoleOptions.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 233
    functionName: pip._vendor.rich.console.ConsoleOptions.reset_height
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - ConsoleOptions.__new__
    - pip._vendor.rich.console.ConsoleOptions.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - width
    - height
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 243
    functionName: pip._vendor.rich.console.ConsoleOptions.update_dimensions
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - ConsoleOptions.__new__
    - <builtin>.max
    - pip._vendor.rich.console.ConsoleOptions.copy
    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: 263
    functionName: pip._vendor.rich.console.RichCast.__rich__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 273
    functionName: pip._vendor.rich.console.ConsoleRenderable.__rich_console__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.ABC.__init__
    functionSourceFile: ''
    functionUses: 92
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e57fcb20>
    argNames:
    - self
    - count
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 295
    functionName: pip._vendor.rich.console.NewLine.__init__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 48
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 298
    functionName: pip._vendor.rich.console.NewLine.__rich_console__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.__init__
    functionSourceFile: ''
    functionUses: 529
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - lines
    - x
    - y
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 307
    functionName: pip._vendor.rich.console.ScreenUpdate.__init__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 312
    functionName: pip._vendor.rich.console.ScreenUpdate.__rich_console__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 55
    functionsReached:
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - <builtin>.enumerate
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.control.Control.move_to
    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>.enumerate
    functionSourceFile: <builtin>
    functionUses: 324
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - x
    - y
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 138
    functionName: pip._vendor.rich.control.Control.move_to
    functionSourceFile: pip._vendor.rich.control
    functionUses: 56
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - console
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 330
    functionName: pip._vendor.rich.console.Capture.__init__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 334
    functionName: pip._vendor.rich.console.Capture.__enter__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.console.Console.begin_capture
    - pip._vendor.rich.console.Console._enter_buffer
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 866
    functionName: pip._vendor.rich.console.Console.begin_capture
    functionSourceFile: pip._vendor.rich.console
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.console.Console._enter_buffer
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 338
    functionName: pip._vendor.rich.console.Capture.__exit__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_styled
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    - pip._vendor.rich.console.Console._render_buffer
    - pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    - <builtin>.bool
    - JUPYTER_HTML_FORMAT.format
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - pip._vendor.rich.jupyter.display
    - cache.get
    - ctypes.Structure.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.show_cursor
    - pip._vendor.rich._fileno.get_fileno
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_start_of_line
    - pip._vendor.rich._win32_console.SetConsoleTextAttribute
    - char.encode
    - pip._vendor.rich._win32_console.SetConsoleCursorInfo
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_down
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.rich.console.Console._check_buffer
    - batch.clear
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - pip._vendor.rich.jupyter._render_segments
    - ctypes.c_ushort
    - style.get_html_style
    - <builtin>.list
    - pip._vendor.rich.console.Console.end_capture
    - pip._vendor.rich._windows_renderer.legacy_windows_render
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.hide_cursor
    - pip._vendor.rich._win32_console.GetStdHandle
    - <builtin>.iter
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_end_of_line
    - pip._vendor.rich.segment.Segment.remove_color
    - <builtin>.next
    - ctypes.c_char
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_line
    - pip._vendor.rich.console.Console._exit_buffer
    - typing.cast
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_forward
    - style.render
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.set_title
    - <builtin>.int
    - sys.stdout.flush
    - pip._vendor.rich._win32_console.SetConsoleTitle
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_up
    - IPython.display.display
    - text.replace
    - text.splitlines
    - pip._vendor.rich.segment.Segment.simplify
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_backward
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - <builtin>.getattr
    - pip._vendor.rich.jupyter._render_segments.escape
    - pip._vendor.rich.jupyter.JupyterRenderable.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to_column
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 870
    functionName: pip._vendor.rich.console.Console.end_capture
    functionSourceFile: pip._vendor.rich.console
    functionUses: 1
    functionsReached:
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_styled
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    - pip._vendor.rich.console.Console._render_buffer
    - pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    - <builtin>.bool
    - JUPYTER_HTML_FORMAT.format
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - pip._vendor.rich.jupyter.display
    - cache.get
    - ctypes.Structure.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.show_cursor
    - pip._vendor.rich._fileno.get_fileno
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_start_of_line
    - pip._vendor.rich._win32_console.SetConsoleTextAttribute
    - char.encode
    - pip._vendor.rich._win32_console.SetConsoleCursorInfo
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_down
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.rich.console.Console._check_buffer
    - batch.clear
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - pip._vendor.rich.jupyter._render_segments
    - ctypes.c_ushort
    - style.get_html_style
    - <builtin>.list
    - pip._vendor.rich._windows_renderer.legacy_windows_render
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.hide_cursor
    - pip._vendor.rich._win32_console.GetStdHandle
    - <builtin>.iter
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_end_of_line
    - pip._vendor.rich.segment.Segment.remove_color
    - <builtin>.next
    - ctypes.c_char
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_line
    - pip._vendor.rich.console.Console._exit_buffer
    - typing.cast
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_forward
    - style.render
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.set_title
    - <builtin>.int
    - sys.stdout.flush
    - pip._vendor.rich._win32_console.SetConsoleTitle
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_up
    - IPython.display.display
    - text.replace
    - text.splitlines
    - pip._vendor.rich.segment.Segment.simplify
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_backward
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - <builtin>.getattr
    - pip._vendor.rich.jupyter._render_segments.escape
    - pip._vendor.rich.jupyter.JupyterRenderable.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to_column
    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: 0
    functionLinenumber: 346
    functionName: pip._vendor.rich.console.Capture.get
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - CaptureError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8a3e040>
    argNames:
    - self
    - console
    - theme
    - inherit
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 358
    functionName: pip._vendor.rich.console.ThemeContext.__init__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 1
    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: 363
    functionName: pip._vendor.rich.console.ThemeContext.__enter__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.console.Console.push_theme
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - theme
    - inherit
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 881
    functionName: pip._vendor.rich.console.Console.push_theme
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 367
    functionName: pip._vendor.rich.console.ThemeContext.__exit__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.console.Console.pop_theme
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 892
    functionName: pip._vendor.rich.console.Console.pop_theme
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8bf54f0>
    - <ast.Constant object at 0x7f30d8bf5ac0>
    - <ast.Constant object at 0x7f30d8bf5880>
    argNames:
    - self
    - console
    - pager
    - styles
    - links
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 379
    functionName: pip._vendor.rich.console.PagerContext.__init__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 2
    functionsReached:
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 391
    functionName: pip._vendor.rich.console.PagerContext.__enter__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.console.Console._enter_buffer
    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: 815
    functionName: pip._vendor.rich.console.Console._enter_buffer
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 395
    functionName: pip._vendor.rich.console.PagerContext.__exit__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_styled
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    - pip._vendor.rich.console.Console._render_buffer
    - pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    - <builtin>.bool
    - JUPYTER_HTML_FORMAT.format
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - pip._vendor.rich.jupyter.display
    - cache.get
    - style.update_link
    - ctypes.Structure.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.show_cursor
    - pip._vendor.rich._fileno.get_fileno
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_start_of_line
    - pip._vendor.rich._win32_console.SetConsoleTextAttribute
    - char.encode
    - pip._vendor.rich._win32_console.SetConsoleCursorInfo
    - pip._vendor.rich.segment.Segment.strip_styles
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_down
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.rich.console.Console._check_buffer
    - batch.clear
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - pip._vendor.rich.jupyter._render_segments
    - ctypes.c_ushort
    - style.get_html_style
    - <builtin>.list
    - pip._vendor.rich._windows_renderer.legacy_windows_render
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.hide_cursor
    - pip._vendor.rich._win32_console.GetStdHandle
    - <builtin>.iter
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_end_of_line
    - pip._vendor.rich.segment.Segment.remove_color
    - <builtin>.next
    - ctypes.c_char
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_line
    - pip._vendor.rich.console.Console._exit_buffer
    - typing.cast
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_forward
    - style.render
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.set_title
    - pip._vendor.rich.segment.Segment.strip_links
    - <builtin>.int
    - sys.stdout.flush
    - pip._vendor.rich._win32_console.SetConsoleTitle
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_up
    - IPython.display.display
    - text.replace
    - text.splitlines
    - pip._vendor.rich.segment.Segment.simplify
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_backward
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - <builtin>.getattr
    - pip._vendor.rich.jupyter._render_segments.escape
    - pip._vendor.rich.jupyter.JupyterRenderable.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to_column
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - segments
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 554
    functionName: pip._vendor.rich.segment.Segment.strip_styles
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 1
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - segments
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 537
    functionName: pip._vendor.rich.segment.Segment.strip_links
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 1
    functionsReached:
    - typing.NamedTuple.__init__
    - style.update_link
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - buffer
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2068
    functionName: pip._vendor.rich.console.Console._render_buffer
    functionSourceFile: pip._vendor.rich.console
    functionUses: 8
    functionsReached:
    - typing.NamedTuple.__init__
    - cache.get
    - style.render
    - pip._vendor.rich.segment.Segment.remove_color
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 819
    functionName: pip._vendor.rich.console.Console._exit_buffer
    functionSourceFile: pip._vendor.rich.console
    functionUses: 4
    functionsReached:
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_styled
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    - pip._vendor.rich.console.Console._render_buffer
    - pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    - <builtin>.bool
    - JUPYTER_HTML_FORMAT.format
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - pip._vendor.rich.jupyter.display
    - cache.get
    - ctypes.Structure.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.show_cursor
    - pip._vendor.rich._fileno.get_fileno
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_start_of_line
    - pip._vendor.rich._win32_console.SetConsoleTextAttribute
    - char.encode
    - pip._vendor.rich._win32_console.SetConsoleCursorInfo
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_down
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.rich.console.Console._check_buffer
    - batch.clear
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - pip._vendor.rich.jupyter._render_segments
    - ctypes.c_ushort
    - style.get_html_style
    - <builtin>.list
    - pip._vendor.rich._windows_renderer.legacy_windows_render
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.hide_cursor
    - pip._vendor.rich._win32_console.GetStdHandle
    - <builtin>.iter
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_end_of_line
    - pip._vendor.rich.segment.Segment.remove_color
    - <builtin>.next
    - ctypes.c_char
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_line
    - typing.cast
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_forward
    - style.render
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.set_title
    - <builtin>.int
    - sys.stdout.flush
    - pip._vendor.rich._win32_console.SetConsoleTitle
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_up
    - IPython.display.display
    - text.replace
    - text.splitlines
    - pip._vendor.rich.segment.Segment.simplify
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_backward
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - <builtin>.getattr
    - pip._vendor.rich.jupyter._render_segments.escape
    - pip._vendor.rich.jupyter.JupyterRenderable.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to_column
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6b6e5b0>
    argNames:
    - self
    - console
    - hide_cursor
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 418
    functionName: pip._vendor.rich.console.ScreenContext.__init__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.console.Group.__init__
    - pip._vendor.rich.screen.Screen.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - renderables
    - style
    - application_mode
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: pip._vendor.rich.screen.Screen.__init__
    functionSourceFile: pip._vendor.rich.screen
    functionUses: 3
    functionsReached:
    - pip._vendor.rich.console.Group.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - renderables
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 426
    functionName: pip._vendor.rich.console.ScreenContext.update
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - pip._vendor.rich._pick.pick_bool
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - pip._vendor.rich.console.Group.__init__
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.Control.move_to
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - variants.get
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - open_tag.name.startswith
    - typing.cast.__rich_console__
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - random.randint
    - line.expand_tabs
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - renderables
    - fit
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 470
    functionName: pip._vendor.rich.console.Group.__init__
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 6
    IfCount: 9
    argCount: 16
    argDefaultValues: []
    argNames:
    - self
    - objects
    - sep
    - end
    - style
    - justify
    - overflow
    - no_wrap
    - emoji
    - markup
    - highlight
    - width
    - height
    - crop
    - soft_wrap
    - new_line_start
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1623
    functionName: pip._vendor.rich.console.Console.print
    functionSourceFile: pip._vendor.rich.console
    functionUses: 45
    functionsReached:
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.Control.move_to
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - variants.get
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - open_tag.name.startswith
    - typing.cast.__rich_console__
    - pip._vendor.rich.console.NewLine.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - typing.NamedTuple.__init__
    - random.randint
    - line.expand_tabs
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    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: 4
    functionLinenumber: 444
    functionName: pip._vendor.rich.console.ScreenContext.__enter__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.console.Console.show_cursor
    - pip._vendor.rich.control.Control.alt_screen
    - pip._vendor.rich.console.Console.set_alt_screen
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.console.Console.control
    - pip._vendor.rich.control.Control.show_cursor
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca81e760>
    argNames:
    - self
    - enable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1193
    functionName: pip._vendor.rich.console.Console.set_alt_screen
    functionSourceFile: pip._vendor.rich.console
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.control.Control.alt_screen
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.console.Console.control
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca81eca0>
    argNames:
    - self
    - show
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1182
    functionName: pip._vendor.rich.console.Console.show_cursor
    functionSourceFile: pip._vendor.rich.console
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.console.Console.control
    - pip._vendor.rich.control.Control.show_cursor
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 450
    functionName: pip._vendor.rich.console.ScreenContext.__exit__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.console.Console.show_cursor
    - pip._vendor.rich.control.Control.alt_screen
    - pip._vendor.rich.console.Console.set_alt_screen
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.console.Console.control
    - pip._vendor.rich.control.Control.show_cursor
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 476
    functionName: pip._vendor.rich.console.Group.renderables
    functionSourceFile: pip._vendor.rich.console
    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: 586
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 481
    functionName: pip._vendor.rich.console.Group.__rich_measure__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - operator.itemgetter
    - <builtin>.isinstance
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - open_tag.parameters.strip
    - style_definition.split
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - <builtin>.type
    - RE_HANDLER.match
    - typing.cast
    - match.span
    - <builtin>.reversed
    - pip._vendor.rich.measure.measure_renderables
    - <builtin>.int
    - color_rgb.split
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - console
    - options
    - renderables
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 125
    functionName: pip._vendor.rich.measure.measure_renderables
    functionSourceFile: pip._vendor.rich.measure
    functionUses: 2
    functionsReached:
    - operator.itemgetter
    - <builtin>.isinstance
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - open_tag.parameters.strip
    - style_definition.split
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - <builtin>.type
    - RE_HANDLER.match
    - typing.cast
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - color_rgb.split
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 489
    functionName: pip._vendor.rich.console.Group.__rich_console__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca850550>
    argNames:
    - fit
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 495
    functionName: pip._vendor.rich.console.group
    functionSourceFile: pip._vendor.rich.console
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - method
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 502
    functionName: pip._vendor.rich.console.group.decorator
    functionSourceFile: pip._vendor.rich.console
    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: 54
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 508
    functionName: pip._vendor.rich.console.group.decorator._replace
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.console.Group.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 517
    functionName: pip._vendor.rich.console._is_jupyter
    functionSourceFile: pip._vendor.rich.console
    functionUses: 58
    functionsReached:
    - <builtin>.str
    - os.getenv
    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.getenv
    functionSourceFile: os
    functionUses: 75
    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: COLOR_SYSTEMS.items
    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: dataclasses.field
    functionSourceFile: dataclasses
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.console.ConsoleThreadLocals
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - dataclasses.field
    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: pip._vendor.rich.console.RenderHook
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    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: abc.abstractmethod
    functionSourceFile: ''
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - renderables
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 560
    functionName: pip._vendor.rich.console.RenderHook.process_renderables
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 578
    functionName: pip._vendor.rich.console.get_windows_console_features
    functionSourceFile: pip._vendor.rich.console
    functionUses: 60
    functionsReached:
    - <builtin>.bool
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - ctypes.wintypes.DWORD
    - pip._vendor.rich._win32_console.GetConsoleMode
    - sys.getwindowsversion
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 41
    functionName: pip._vendor.rich._windows.get_windows_console_features
    functionSourceFile: pip._vendor.rich._windows
    functionUses: 61
    functionsReached:
    - <builtin>.bool
    - pip._vendor.rich._win32_console.GetStdHandle
    - ctypes.wintypes.DWORD
    - pip._vendor.rich._win32_console.GetConsoleMode
    - sys.getwindowsversion
    - typing.cast
    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: 4
    functionLinenumber: 588
    functionName: pip._vendor.rich.console.detect_legacy_windows
    functionSourceFile: pip._vendor.rich.console
    functionUses: 58
    functionsReached:
    - pip._vendor.rich.console.get_windows_console_features
    - <builtin>.bool
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - ctypes.wintypes.DWORD
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - typing.cast
    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: jupyter_columns.isdigit
    functionSourceFile: <builtin>
    functionUses: 58
    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>.int
    functionSourceFile: <builtin>
    functionUses: 771
    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: jupyter_lines.isdigit
    functionSourceFile: <builtin>
    functionUses: 58
    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: columns.isdigit
    functionSourceFile: <builtin>
    functionUses: 59
    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: lines.isdigit
    functionSourceFile: <builtin>
    functionUses: 59
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 791
    functionName: pip._vendor.rich.console.Console._detect_color_system
    functionSourceFile: pip._vendor.rich.console
    functionUses: 58
    functionsReached:
    - pip._vendor.rich.console.get_windows_console_features
    - <builtin>.bool
    - _TERM_COLORS.get
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - ctypes.wintypes.DWORD
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - term.rpartition
    - typing.cast
    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: threading.RLock
    functionSourceFile: threading
    functionUses: 77
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30f57962e0>
    - <ast.Constant object at 0x7f30f57962b0>
    - <ast.Constant object at 0x7f30f5796280>
    - <ast.Constant object at 0x7f30f5796250>
    - <ast.Constant object at 0x7f30f5796220>
    - <ast.Constant object at 0x7f30f57961f0>
    argNames:
    - self
    - show_time
    - show_level
    - show_path
    - time_format
    - omit_repeated_times
    - level_width
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 15
    functionName: pip._vendor.rich._log_render.LogRender.__init__
    functionSourceFile: ''
    functionUses: 63
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - theme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: pip._vendor.rich.theme.ThemeStack.__init__
    functionSourceFile: ''
    functionUses: 58
    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: threading.local.__init__
    functionSourceFile: ''
    functionUses: 58
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 755
    functionName: pip._vendor.rich.console.Console.__repr__
    functionSourceFile: pip._vendor.rich.console
    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
    - new_file
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 768
    functionName: pip._vendor.rich.console.Console.file
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    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: 773
    functionName: pip._vendor.rich.console.Console._buffer
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 783
    functionName: pip._vendor.rich.console.Console._buffer_index
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 787
    functionName: pip._vendor.rich.console.Console._theme_stack
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: term.rpartition
    functionSourceFile: <builtin>
    functionUses: 59
    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: _TERM_COLORS.get
    functionSourceFile: <builtin>
    functionUses: 59
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 12
    IfCount: 12
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1989
    functionName: pip._vendor.rich.console.Console._check_buffer
    functionSourceFile: pip._vendor.rich.console
    functionUses: 7
    functionsReached:
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_styled
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    - pip._vendor.rich.console.Console._render_buffer
    - pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    - <builtin>.bool
    - JUPYTER_HTML_FORMAT.format
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - pip._vendor.rich.jupyter.display
    - cache.get
    - ctypes.Structure.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.show_cursor
    - pip._vendor.rich._fileno.get_fileno
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_start_of_line
    - pip._vendor.rich._win32_console.SetConsoleTextAttribute
    - char.encode
    - pip._vendor.rich._win32_console.SetConsoleCursorInfo
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_down
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - batch.clear
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - pip._vendor.rich.jupyter._render_segments
    - ctypes.c_ushort
    - style.get_html_style
    - <builtin>.list
    - pip._vendor.rich._windows_renderer.legacy_windows_render
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.hide_cursor
    - pip._vendor.rich._win32_console.GetStdHandle
    - <builtin>.iter
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_end_of_line
    - pip._vendor.rich.segment.Segment.remove_color
    - <builtin>.next
    - ctypes.c_char
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_line
    - typing.cast
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_forward
    - style.render
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.set_title
    - <builtin>.int
    - sys.stdout.flush
    - pip._vendor.rich._win32_console.SetConsoleTitle
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_up
    - IPython.display.display
    - text.replace
    - text.splitlines
    - pip._vendor.rich.segment.Segment.simplify
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_backward
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - <builtin>.getattr
    - pip._vendor.rich.jupyter._render_segments.escape
    - pip._vendor.rich.jupyter.JupyterRenderable.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to_column
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - live
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 824
    functionName: pip._vendor.rich.console.Console.set_live
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 838
    functionName: pip._vendor.rich.console.Console.clear_live
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hook
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 843
    functionName: pip._vendor.rich.console.Console.push_render_hook
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 852
    functionName: pip._vendor.rich.console.Console.pop_render_hook
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 857
    functionName: pip._vendor.rich.console.Console.__enter__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.console.Console._enter_buffer
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_value
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 862
    functionName: pip._vendor.rich.console.Console.__exit__
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_styled
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    - pip._vendor.rich.console.Console._render_buffer
    - pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    - <builtin>.bool
    - JUPYTER_HTML_FORMAT.format
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - pip._vendor.rich.jupyter.display
    - cache.get
    - ctypes.Structure.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.show_cursor
    - pip._vendor.rich._fileno.get_fileno
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_start_of_line
    - pip._vendor.rich._win32_console.SetConsoleTextAttribute
    - char.encode
    - pip._vendor.rich._win32_console.SetConsoleCursorInfo
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_down
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.rich.console.Console._check_buffer
    - batch.clear
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - pip._vendor.rich.jupyter._render_segments
    - ctypes.c_ushort
    - style.get_html_style
    - <builtin>.list
    - pip._vendor.rich._windows_renderer.legacy_windows_render
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.hide_cursor
    - pip._vendor.rich._win32_console.GetStdHandle
    - <builtin>.iter
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_end_of_line
    - pip._vendor.rich.segment.Segment.remove_color
    - <builtin>.next
    - ctypes.c_char
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_line
    - pip._vendor.rich.console.Console._exit_buffer
    - typing.cast
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_forward
    - style.render
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.set_title
    - <builtin>.int
    - sys.stdout.flush
    - pip._vendor.rich._win32_console.SetConsoleTitle
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_up
    - IPython.display.display
    - text.replace
    - text.splitlines
    - pip._vendor.rich.segment.Segment.simplify
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_backward
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - <builtin>.getattr
    - pip._vendor.rich.jupyter._render_segments.escape
    - pip._vendor.rich.jupyter.JupyterRenderable.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to_column
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - theme
    - inherit
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 896
    functionName: pip._vendor.rich.console.Console.use_theme
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.console.ThemeContext.__init__
    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: 0
    functionLinenumber: 909
    functionName: pip._vendor.rich.console.Console.color_system
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 922
    functionName: pip._vendor.rich.console.Console.encoding
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 931
    functionName: pip._vendor.rich.console.Console.is_terminal
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.hasattr
    - sys.stdin.__module__.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdin.__module__.startswith
    functionSourceFile: sys
    functionUses: 1
    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: 967
    functionName: pip._vendor.rich.console.Console.is_dumb_terminal
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - _term.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _term.lower
    functionSourceFile: <builtin>
    functionUses: 1
    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: 979
    functionName: pip._vendor.rich.console.Console.options
    functionSourceFile: pip._vendor.rich.console
    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
    - new_size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1038
    functionName: pip._vendor.rich.console.Console.size
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - typing.NamedTuple.__init__
    - os.get_terminal_size
    - columns.isdigit
    - lines.isdigit
    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.get_terminal_size
    functionSourceFile: os
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - width
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1058
    functionName: pip._vendor.rich.console.Console.width
    functionSourceFile: pip._vendor.rich.console
    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
    - height
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1076
    functionName: pip._vendor.rich.console.Console.height
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1084
    functionName: pip._vendor.rich.console.Console.bell
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.console.Console.control
    - pip._vendor.rich.control.Control.bell
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 75
    functionName: pip._vendor.rich.control.Control.bell
    functionSourceFile: pip._vendor.rich.control
    functionUses: 1
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - control
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1581
    functionName: pip._vendor.rich.console.Console.control
    functionSourceFile: ''
    functionUses: 9
    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: 1088
    functionName: pip._vendor.rich.console.Console.capture
    functionSourceFile: pip._vendor.rich.console
    functionUses: 2
    functionsReached:
    - pip._vendor.rich.console.Capture.__init__
    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 0x7f30ca8593a0>
    - <ast.Constant object at 0x7f30ca859370>
    - <ast.Constant object at 0x7f30ca859340>
    argNames:
    - self
    - pager
    - styles
    - links
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1105
    functionName: pip._vendor.rich.console.Console.pager
    functionSourceFile: pip._vendor.rich.console
    functionUses: 1
    functionsReached:
    - abc.ABC.__init__
    - pip._vendor.rich.console.PagerContext.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca82ff10>
    argNames:
    - self
    - count
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1128
    functionName: pip._vendor.rich.console.Console.line
    functionSourceFile: pip._vendor.rich.console
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - pip._vendor.rich._pick.pick_bool
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.Control.move_to
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - variants.get
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - open_tag.name.startswith
    - typing.cast.__rich_console__
    - pip._vendor.rich.console.NewLine.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - typing.NamedTuple.__init__
    - random.randint
    - line.expand_tabs
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    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 0x7f30ca82fac0>
    argNames:
    - self
    - home
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1138
    functionName: pip._vendor.rich.console.Console.clear
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.clear
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.console.Console.control
    - pip._vendor.rich.control.Control.home
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 151
    functionName: pip._vendor.rich.control.Control.clear
    functionSourceFile: pip._vendor.rich.control
    functionUses: 1
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 80
    functionName: pip._vendor.rich.control.Control.home
    functionSourceFile: pip._vendor.rich.control
    functionUses: 2
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - status
    - spinner
    - spinner_style
    - speed
    - refresh_per_second
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1149
    functionName: pip._vendor.rich.console.Console.status
    functionSourceFile: pip._vendor.rich.console
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - threading.RLock
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.status.Status.__init__
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - pip._vendor.rich.live.Live.get_renderable
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.console.Group.__init__
    - style.strip
    - <builtin>.str
    - pip._vendor.rich.live.Live.__init__
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.progress.Progress.get_renderable
    - pip._vendor.rich.markup._parse
    - table.add_row
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - pip._vendor.rich.table.Table.add_column
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - <builtin>.list
    - abc.ABC.background_color.lower
    - pip._vendor.rich.spinner.Spinner.__init__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.progress.Progress.get_renderables
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - <builtin>.next
    - tag_text.partition
    - typing.cast
    - RE_HANDLER.match
    - column.format
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - _column.get_table_column
    - pip._vendor.rich.live_render.LiveRender.__init__
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - get_console
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.table.Table.grid
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 7
    argDefaultValues: []
    argNames:
    - self
    - status
    - console
    - spinner
    - spinner_style
    - speed
    - refresh_per_second
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 23
    functionName: pip._vendor.rich.status.Status.__init__
    functionSourceFile: pip._vendor.rich.status
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - threading.RLock
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - pip._vendor.rich.live.Live.get_renderable
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.console.Group.__init__
    - style.strip
    - <builtin>.str
    - pip._vendor.rich.live.Live.__init__
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.progress.Progress.get_renderable
    - pip._vendor.rich.markup._parse
    - table.add_row
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - pip._vendor.rich.table.Table.add_column
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - <builtin>.list
    - abc.ABC.background_color.lower
    - pip._vendor.rich.spinner.Spinner.__init__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.progress.Progress.get_renderables
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - <builtin>.next
    - tag_text.partition
    - typing.cast
    - RE_HANDLER.match
    - column.format
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - _column.get_table_column
    - pip._vendor.rich.live_render.LiveRender.__init__
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - get_console
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.table.Table.grid
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - show
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 156
    functionName: pip._vendor.rich.control.Control.show_cursor
    functionSourceFile: pip._vendor.rich.control
    functionUses: 4
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - enable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 161
    functionName: pip._vendor.rich.control.Control.alt_screen
    functionSourceFile: pip._vendor.rich.control
    functionUses: 3
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.isinstance
    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: 1215
    functionName: pip._vendor.rich.console.Console.is_alt_screen
    functionSourceFile: pip._vendor.rich.console
    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
    - title
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1223
    functionName: pip._vendor.rich.console.Console.set_window_title
    functionSourceFile: pip._vendor.rich.console
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.control.Control.title
    - pip._vendor.rich.console.Console.control
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - title
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 169
    functionName: pip._vendor.rich.control.Control.title
    functionSourceFile: pip._vendor.rich.control
    functionUses: 2
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca8287c0>
    - <ast.Constant object at 0x7f30ca828790>
    argNames:
    - self
    - hide_cursor
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1255
    functionName: pip._vendor.rich.console.Console.screen
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.console.Group.__init__
    - pip._vendor.rich.screen.Screen.__init__
    - pip._vendor.rich.console.ScreenContext.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - renderable
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1269
    functionName: pip._vendor.rich.console.Console.measure
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - open_tag.parameters.strip
    - style_definition.split
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - pip._vendor.rich.protocol.is_renderable
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - <builtin>.type
    - RE_HANDLER.match
    - typing.cast
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - console
    - options
    - renderable
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 79
    functionName: pip._vendor.rich.measure.Measurement.get
    functionSourceFile: pip._vendor.rich.measure
    functionUses: 18
    functionsReached:
    - <builtin>.isinstance
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - open_tag.parameters.strip
    - style_definition.split
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - <builtin>.type
    - RE_HANDLER.match
    - typing.cast
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca844d60>
    argNames:
    - self
    - renderable
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1286
    functionName: pip._vendor.rich.console.Console.render
    functionSourceFile: pip._vendor.rich.console
    functionUses: 54
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - <builtin>.str
    - line.divide
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - <builtin>.max
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.isinstance
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.list
    - match.end
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - word_match.group
    - variants.get
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - itertools.zip_longest
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - renderable
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 19
    functionName: pip._vendor.rich.protocol.rich_cast
    functionSourceFile: pip._vendor.rich.protocol
    functionUses: 75
    functionsReached:
    - <builtin>.set
    - inspect.isclass
    - <builtin>.getattr
    - <builtin>.repr
    - typing.cast
    - rich_visited_set.add
    - <builtin>.hasattr
    - <builtin>.type
    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: inspect.isclass
    functionSourceFile: inspect
    functionUses: 92
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.__rich_console__
    functionSourceFile: typing
    functionUses: 55
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 9
    argDefaultValues: []
    argNames:
    - self
    - text
    - style
    - justify
    - overflow
    - emoji
    - markup
    - highlight
    - highlighter
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1396
    functionName: pip._vendor.rich.console.Console.render_str
    functionSourceFile: pip._vendor.rich.console
    functionUses: 75
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - open_tag.parameters.strip
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - highlight_text.copy_styles
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 646
    functionName: pip._vendor.rich.text.Text.__rich_console__
    functionSourceFile: pip._vendor.rich.text
    functionUses: 55
    functionsReached:
    - pip._vendor.rich.containers.Lines.extend
    - operator.itemgetter
    - <builtin>.bool
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - pip._vendor.rich.style.Style.null
    - re.escape
    - pip._vendor.rich.text.Text.split.flatten_spans
    - pip._vendor.rich.containers.Lines.pop
    - line.split
    - line.pad_left
    - pip._vendor.rich.text.Text.copy
    - line.rstrip_end
    - line.rstrip
    - <builtin>.str
    - pip._vendor.rich.text.Text.wrap
    - line.divide
    - <builtin>.enumerate
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - word_match.group
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - <builtin>.min
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.containers.Lines.justify
    - tokens.append
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - <builtin>.list
    - match.end
    - spans.sort
    - typing.NamedTuple.__init__
    - line.truncate
    - line.expand_tabs
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.sorted
    - lines.append
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - <builtin>.zip
    - word_match.span
    - <builtin>.next
    - pip._vendor.rich.cells.chop_cells
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    - match.span
    - <builtin>.range
    - <builtin>.reversed
    - functools.partial
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.split
    - pip._vendor.rich.cells.cell_len
    - line.pad_right
    - pip._vendor.rich.containers.Lines.__init__
    - re.finditer
    - pip._vendor.rich._wrap.divide_line
    - pip._vendor.rich.text.Text.join
    - <builtin>.max
    - re_word.match
    - word.rstrip
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.iter
    functionSourceFile: <builtin>
    functionUses: 418
    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: _options.reset_height
    functionSourceFile: <builtin>
    functionUses: 55
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca832190>
    argNames:
    - self
    - renderable
    - options
    - style
    - pad
    - new_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1337
    functionName: pip._vendor.rich.console.Console.render_lines
    functionSourceFile: pip._vendor.rich.console
    functionUses: 1
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - <builtin>.isinstance
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - pip._vendor.rich.containers.Lines.pop
    - line.split
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - lines.extend
    - color_match.groups
    - <builtin>.list
    - match.end
    - spans.sort
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - word.get_style_at_offset
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - variants.get
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - style_definition.strip
    - itertools.zip_longest
    - pip._vendor.rich.text.Text.render
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e795b0d0>
    - <ast.Constant object at 0x7f30e795b4c0>
    argNames:
    - cls
    - segments
    - style
    - post_style
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 177
    functionName: pip._vendor.rich.segment.Segment.apply_style
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 51
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 7
    IfCount: 5
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8bf3460>
    - <ast.Constant object at 0x7f30d8bf3730>
    - <ast.Constant object at 0x7f30e05f9520>
    argNames:
    - cls
    - segments
    - length
    - style
    - pad
    - include_new_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 266
    functionName: pip._vendor.rich.segment.Segment.split_and_crop_lines
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 52
    functionsReached:
    - cropped_line.append
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.set_cell_size
    - text.partition
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    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: itertools.islice
    functionSourceFile: itertools
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 6
    IfCount: 10
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c01a00>
    - <ast.Constant object at 0x7f30d8c010d0>
    - <ast.Constant object at 0x7f30d8c01a90>
    argNames:
    - markup
    - style
    - emoji
    - emoji_variant
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 103
    functionName: pip._vendor.rich.markup.render
    functionSourceFile: pip._vendor.rich.markup
    functionUses: 172
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised:
    - MarkupError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8bf5a90>
    - <ast.Attribute object at 0x7f30d8bf5f70>
    argNames:
    - text
    - default_variant
    - _emoji_sub
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 12
    functionName: pip._vendor.rich._emoji_replace._emoji_replace
    functionSourceFile: pip._vendor.rich._emoji_replace
    functionUses: 174
    functionsReached:
    - variants.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: highlight_text.copy_styles
    functionSourceFile: <builtin>
    functionUses: 76
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1455
    functionName: pip._vendor.rich.console.Console.get_style
    functionSourceFile: pip._vendor.rich.console
    functionUses: 49
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - <builtin>.sum
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.get_style
    - style_definition.split
    - color_match.groups
    - style_definition.strip
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.color.Color.parse
    - <builtin>.next
    - <builtin>.int
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 3
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - style_definition
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 498
    functionName: pip._vendor.rich.style.Style.parse
    functionSourceFile: pip._vendor.rich.style
    functionUses: 184
    functionsReached:
    - <builtin>.isinstance
    - original_word.lower
    - <builtin>.sum
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - STYLE_ATTRIBUTES.get
    - style_definition.split
    - color_match.groups
    - style_definition.strip
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.color.Color.parse
    - <builtin>.next
    - <builtin>.int
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    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: 1
    functionLinenumber: 626
    functionName: pip._vendor.rich.style.Style.copy
    functionSourceFile: pip._vendor.rich.style
    functionUses: 51
    functionsReached:
    - random.randint
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 9
    IfCount: 7
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - objects
    - sep
    - end
    - justify
    - emoji
    - markup
    - highlight
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1485
    functionName: pip._vendor.rich.console.Console._collect_renderables
    functionSourceFile: pip._vendor.rich.console
    functionUses: 48
    functionsReached:
    - <builtin>.sum
    - dataclasses.is_dataclass
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - pip._vendor.rich.align.Align.__init__
    - pip._vendor.rich.pretty.Pretty.__init__
    - <builtin>.hash
    - highlight_text.copy_styles
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.join
    - <builtin>.hasattr
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.blank_copy
    - ANSI_COLOR_NAMES.get
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - <builtin>.int
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - variants.get
    - style_definition.split
    - style_definition.strip
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - text.clear
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - renderable
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1518
    functionName: pip._vendor.rich.console.Console._collect_renderables.align_append
    functionSourceFile: pip._vendor.rich.console
    functionUses: 50
    functionsReached:
    - typing.cast
    - pip._vendor.rich.align.Align.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast
    functionSourceFile: typing
    functionUses: 518
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30f57df6d0>
    - <ast.Constant object at 0x7f30f57df6a0>
    argNames:
    - self
    - renderable
    - align
    - style
    - vertical
    - pad
    - width
    - height
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 39
    functionName: pip._vendor.rich.align.Align.__init__
    functionSourceFile: ''
    functionUses: 56
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1527
    functionName: pip._vendor.rich.console.Console._collect_renderables.check_text
    functionSourceFile: pip._vendor.rich.console
    functionUses: 49
    functionsReached:
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.blank_copy
    - text.clear
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.text.Text.join.iter_text
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.rich.text.Text.join
    - typing.cast
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 736
    functionName: pip._vendor.rich.text.Text.join
    functionSourceFile: pip._vendor.rich.text
    functionUses: 65
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.clear
    functionSourceFile: <builtin>
    functionUses: 50
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 378
    functionName: pip._vendor.rich.pretty.is_expandable
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 49
    functionsReached:
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.pretty._is_attr_object
    - <builtin>.isinstance
    - attr.has
    - dataclasses.is_dataclass
    - inspect.isclass
    - <builtin>.hasattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 14
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8a3e8b0>
    argNames:
    - self
    - _object
    - highlighter
    - indent_size
    - justify
    - overflow
    - no_wrap
    - indent_guides
    - max_length
    - max_string
    - max_depth
    - expand_all
    - margin
    - insert_line
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 263
    functionName: pip._vendor.rich.pretty.Pretty.__init__
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 65
    functionsReached:
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - renderable
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 19
    functionName: pip._vendor.rich.styled.Styled.__init__
    functionSourceFile: ''
    functionUses: 54
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6276d60>
    argNames:
    - self
    - title
    - characters
    - style
    - align
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1560
    functionName: pip._vendor.rich.console.Console.rule
    functionSourceFile: pip._vendor.rich.console
    functionUses: 7
    functionsReached:
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - <builtin>.range
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - word.get_style_at_offset
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.rule.Rule.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30ef5d3760>
    argNames:
    - self
    - title
    - characters
    - style
    - end
    - align
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 23
    functionName: pip._vendor.rich.rule.Rule.__init__
    functionSourceFile: pip._vendor.rich.rule
    functionUses: 11
    functionsReached:
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - objects
    - sep
    - end
    - style
    - highlight
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1591
    functionName: pip._vendor.rich.console.Console.out
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - pip._vendor.rich._pick.pick_bool
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.Control.move_to
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - variants.get
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - open_tag.name.startswith
    - typing.cast.__rich_console__
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - random.randint
    - line.expand_tabs
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - sep.join
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sep.join
    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: hook.process_renderables
    functionSourceFile: <builtin>
    functionUses: 48
    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: 192
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 172
    functionName: pip._vendor.rich.segment.Segment.line
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 61
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_segments.insert
    functionSourceFile: <builtin>
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f30e78332b0>
    - <ast.Constant object at 0x7f30e7833910>
    - <ast.Constant object at 0x7f30e7833370>
    - <ast.Constant object at 0x7f30e7833970>
    - <ast.Constant object at 0x7f30e7833100>
    - <ast.Constant object at 0x7f30e7833fa0>
    - <ast.Constant object at 0x7f30e7833cd0>
    - <ast.Constant object at 0x7f30e78337c0>
    argNames:
    - cls
    - data
    - indent
    - highlight
    - skip_keys
    - ensure_ascii
    - check_circular
    - allow_nan
    - default
    - sort_keys
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: pip._vendor.rich.json.JSON.from_data
    functionSourceFile: pip._vendor.rich.json
    functionUses: 6
    functionsReached:
    - json.dumps
    - cls.__new__
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f30d0c25220>
    - <ast.Constant object at 0x7f30d0c251f0>
    - <ast.Constant object at 0x7f30d0c251c0>
    - <ast.Constant object at 0x7f30d0c25190>
    - <ast.Constant object at 0x7f30d0c25160>
    - <ast.Constant object at 0x7f30d0c25130>
    - <ast.Constant object at 0x7f30d0c25100>
    - <ast.Constant object at 0x7f30d0c250d0>
    argNames:
    - self
    - json
    - indent
    - highlight
    - skip_keys
    - ensure_ascii
    - check_circular
    - allow_nan
    - default
    - sort_keys
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 25
    functionName: pip._vendor.rich.json.JSON.__init__
    functionSourceFile: pip._vendor.rich.json
    functionUses: 7
    functionsReached:
    - json.dumps
    - abc.ABC.__init__
    - json.loads
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - renderable
    - region
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1783
    functionName: pip._vendor.rich.console.Console.update_screen
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - JUPYTER_HTML_FORMAT.format
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - pip._vendor.rich._fileno.get_fileno
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_down
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - ctypes.c_ushort
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_end_of_line
    - pip._vendor.rich.console.ScreenUpdate.__init__
    - pip._vendor.rich.cells.get_character_cell_size
    - style.render
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.set_title
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_backward
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to
    - re_word.match
    - <builtin>.hasattr
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to_column
    - _options.reset_height
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_styled
    - pip._vendor.rich.containers.Lines.extend
    - pip._vendor.rich.console.Console.render_lines
    - sys.stdout.write
    - pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    - pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.jupyter.display
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.show_cursor
    - line.rstrip_end
    - render_options.update_dimensions
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - <builtin>.min
    - pip._vendor.rich.jupyter._render_segments
    - style.get_html_style
    - tokens.append
    - abc.ABC.background_color.lower
    - pip._vendor.rich._windows_renderer.legacy_windows_render
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.segment.Segment.remove_color
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.jupyter.JupyterRenderable.__init__
    - <builtin>.max
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.range
    - <builtin>.isinstance
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - pip._vendor.rich.cells.cached_cell_len
    - cache.get
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_start_of_line
    - pip._vendor.rich._win32_console.SetConsoleTextAttribute
    - char.encode
    - lines.extend
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - batch.clear
    - color_match.groups
    - <builtin>.list
    - match.end
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.hide_cursor
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - sys.stdout.flush
    - pip._vendor.rich._win32_console.SetConsoleTitle
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_up
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich.jupyter._render_segments.escape
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - ctypes.byref
    - operator.itemgetter
    - pip._vendor.rich.console.Console._render_buffer
    - plain_text.replace
    - ctypes.Structure.__init__
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - pip._vendor.rich._win32_console.SetConsoleCursorInfo
    - pip._vendor.rich.console.Console.update_screen_lines
    - inspect.isclass
    - variants.get
    - style_definition.split
    - pip._vendor.rich.console.Console._check_buffer
    - word_match.group
    - <builtin>.set
    - pip._vendor.rich.segment.Segment.apply_style
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - ctypes.c_char
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_line
    - RE_HANDLER.match
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_forward
    - <builtin>.reversed
    - functools.partial
    - IPython.display.display
    - pip._vendor.rich.segment.Segment.simplify
    - text.splitlines
    - pip._vendor.rich.cells.cell_len
    - text.replace
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: render_options.update_dimensions
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6272700>
    - <ast.Constant object at 0x7f30f62726d0>
    argNames:
    - self
    - lines
    - x
    - y
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1817
    functionName: pip._vendor.rich.console.Console.update_screen_lines
    functionSourceFile: pip._vendor.rich.console
    functionUses: 1
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - JUPYTER_HTML_FORMAT.format
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - pip._vendor.rich._fileno.get_fileno
    - <builtin>.str
    - line.divide
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_down
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - ctypes.c_ushort
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_end_of_line
    - pip._vendor.rich.console.ScreenUpdate.__init__
    - pip._vendor.rich.cells.get_character_cell_size
    - style.render
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.set_title
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_backward
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to
    - re_word.match
    - <builtin>.hasattr
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to_column
    - _options.reset_height
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_styled
    - pip._vendor.rich.containers.Lines.extend
    - sys.stdout.write
    - pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    - pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.jupyter.display
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.show_cursor
    - line.rstrip_end
    - <builtin>.enumerate
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - <builtin>.min
    - pip._vendor.rich.jupyter._render_segments
    - style.get_html_style
    - tokens.append
    - pip._vendor.rich._windows_renderer.legacy_windows_render
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.segment.Segment.remove_color
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - pip._vendor.rich.jupyter.JupyterRenderable.__init__
    - <builtin>.max
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.range
    - <builtin>.isinstance
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - cache.get
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_start_of_line
    - pip._vendor.rich._win32_console.SetConsoleTextAttribute
    - char.encode
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - batch.clear
    - color_match.groups
    - <builtin>.list
    - match.end
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.hide_cursor
    - lines.append
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - sys.stdout.flush
    - pip._vendor.rich._win32_console.SetConsoleTitle
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_up
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich.jupyter._render_segments.escape
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - ctypes.byref
    - operator.itemgetter
    - pip._vendor.rich.console.Console._render_buffer
    - plain_text.replace
    - ctypes.Structure.__init__
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - pip._vendor.rich._win32_console.SetConsoleCursorInfo
    - inspect.isclass
    - variants.get
    - pip._vendor.rich.console.Console._check_buffer
    - word_match.group
    - style_definition.split
    - <builtin>.set
    - itertools.zip_longest
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - ctypes.c_char
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_line
    - RE_HANDLER.match
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_forward
    - <builtin>.reversed
    - functools.partial
    - IPython.display.display
    - pip._vendor.rich.segment.Segment.simplify
    - text.replace
    - pip._vendor.rich.cells.cell_len
    - text.splitlines
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - width
    - extra_lines
    - theme
    - word_wrap
    - show_locals
    - suppress
    - max_frames
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1837
    functionName: pip._vendor.rich.console.Console.print_exception
    functionSourceFile: pip._vendor.rich.console
    functionUses: 2
    functionsReached:
    - typing.cast._asdict
    - dataclasses.fields
    - key.startswith
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - pip._vendor.rich.pretty.traverse
    - abc.ABC.title
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - frame_summary.f_locals.items
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - os.path.normpath
    - <builtin>.zip
    - pip._vendor.rich.traceback.Traceback.extract
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.traceback.Traceback.extract.get_locals
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - pip._vendor.rich.pretty.traverse.to_repr
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - pip._vendor.rich.text.Text.join.iter_text
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - os.path.join
    - <builtin>.min
    - attr.fields
    - tokens.append
    - pip._vendor.rich.pretty._is_dataclass_repr
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - os.path.abspath
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - pip._vendor.rich.cells.chop_cells
    - importlib.metadata.entry_points
    - match.span
    - pip._vendor.rich.traceback.Traceback.extract.safe_str
    - os.path.dirname
    - <builtin>.callable
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - importlib_metadata.entry_points
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - sys.exc_info
    - pip._vendor.rich.pretty._is_namedtuple
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - <builtin>.__import__
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.pretty.traverse._traverse
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - os.path.isabs
    - pip._vendor.rich.traceback.Traceback.__init__
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - <builtin>.id
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - lines.append
    - new_segments.insert
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.control.Control.move_to
    - typing.cast
    - <builtin>.ord
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - pip._vendor.rich.syntax.Syntax.get_theme
    - traceback.walk_tb
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - pip._vendor.pygments.styles.get_style_by_name
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - typing.cast.__rich_repr__
    - variants.get
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - stacks.append
    - frame_summary.f_locals.get
    - pip._vendor.rich.markup.render
    - filename.startswith
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - pip._vendor.pygments.plugin.iter_entry_points
    - style_stack.pop
    - entrypoint.load
    - typing.cast.items
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 14
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6b6e370>
    argNames:
    - self
    - trace
    - width
    - extra_lines
    - theme
    - word_wrap
    - show_locals
    - locals_max_length
    - locals_max_string
    - locals_hide_dunder
    - locals_hide_sunder
    - indent_guides
    - suppress
    - max_frames
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 241
    functionName: pip._vendor.rich.traceback.Traceback.__init__
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 8
    functionsReached:
    - typing.cast._asdict
    - dataclasses.fields
    - key.startswith
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.pretty.traverse
    - abc.ABC.title
    - <builtin>.str
    - frame_summary.f_locals.items
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.hash
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._vendor.rich.traceback.Traceback.extract
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.traceback.Traceback.extract.get_locals
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - <builtin>.repr
    - <builtin>.hasattr
    - marshal.dumps
    - pip._vendor.rich.pretty.traverse.to_repr
    - <builtin>.enumerate
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - os.path.join
    - attr.fields
    - pip._vendor.rich.pretty._is_dataclass_repr
    - abc.ABC.background_color.lower
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - importlib.metadata.entry_points
    - pip._vendor.rich.traceback.Traceback.extract.safe_str
    - os.path.dirname
    - <builtin>.callable
    - RE_COLOR.match
    - importlib_metadata.entry_points
    - <builtin>.max
    - sys.exc_info
    - pip._vendor.rich.pretty._is_namedtuple
    - <builtin>.isinstance
    - attr.has
    - <builtin>.__import__
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - pip._vendor.rich.pretty.traverse._traverse
    - os.path.isabs
    - color_match.groups
    - <builtin>.list
    - <builtin>.len
    - <builtin>.id
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.color.Color.parse
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.syntax.Syntax.get_theme
    - traceback.walk_tb
    - pip._vendor.rich.pretty._is_attr_object
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - inspect.isclass
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - typing.cast.__rich_repr__
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - typing.NamedTuple.__init__
    - random.randint
    - stacks.append
    - frame_summary.f_locals.get
    - filename.startswith
    - <builtin>.next
    - pip._vendor.pygments.plugin.iter_entry_points
    - entrypoint.load
    - typing.cast.items
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Attribute object at 0x7f30ee4260a0>
    argNames:
    - offset
    - currentframe
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1873
    functionName: pip._vendor.rich.console.Console._caller_frame_info
    functionSourceFile: pip._vendor.rich.console
    functionUses: 5
    functionsReached:
    - inspect.stack
    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: inspect.stack
    functionSourceFile: inspect
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 11
    argDefaultValues: []
    argNames:
    - self
    - objects
    - sep
    - end
    - style
    - justify
    - emoji
    - markup
    - highlight
    - log_locals
    - _stack_offset
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1907
    functionName: pip._vendor.rich.console.Console.log
    functionSourceFile: pip._vendor.rich.console
    functionUses: 4
    functionsReached:
    - filename.rpartition
    - key.startswith
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - dataclasses.is_dataclass
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - locals.items
    - scope.items
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.protocol.rich_cast
    - text.apply_meta
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - pip._vendor.rich.table.Table.grid
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.scope.render_scope
    - items_table.add_column
    - pip._vendor.rich.containers.Lines.__iter__
    - os.path.abspath
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.console.Console._caller_frame_info
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.table.Table.add_column
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.panel.Panel.fit
    - spans.sort
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - word.get_style_at_offset
    - lines.append
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - pip._vendor.rich.text.Text.assemble
    - items_table.add_row
    - operator.itemgetter
    - renderables.append
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - variants.get
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - style_definition.strip
    - itertools.zip_longest
    - pip._vendor.rich.text.Text.render
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - inspect.stack
    - typing.NamedTuple.__init__
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - filename.startswith
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filename.startswith
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filename.rpartition
    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: locals.items
    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: key.startswith
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - scope
    - title
    - sort_keys
    - indent_guides
    - max_length
    - max_string
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 14
    functionName: pip._vendor.rich.scope.render_scope
    functionSourceFile: pip._vendor.rich.scope
    functionUses: 10
    functionsReached:
    - items_table.add_row
    - pip._vendor.rich.text.Text.assemble
    - <builtin>.isinstance
    - key.startswith
    - abc.ABC.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.pretty.Pretty.__init__
    - <builtin>.list
    - pip._vendor.rich.panel.Panel.fit
    - <builtin>.len
    - <builtin>.sorted
    - pip._vendor.rich.table.Table.__init__
    - items_table.add_column
    - scope.items
    - typing.cast
    - text.apply_meta
    - pip._vendor.rich.panel.Panel.__init__
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.table.Table.grid
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: renderables.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - segments
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 84
    functionName: pip._vendor.rich.jupyter.display
    functionSourceFile: pip._vendor.rich.jupyter
    functionUses: 8
    functionsReached:
    - pip._vendor.rich.jupyter.JupyterRenderable.__init__
    - typing.NamedTuple.__init__
    - text.replace
    - IPython.display.display
    - pip._vendor.rich.segment.Segment.simplify
    - JUPYTER_HTML_FORMAT.format
    - <builtin>.iter
    - pip._vendor.rich.jupyter._render_segments.escape
    - <builtin>.next
    - pip._vendor.rich.jupyter._render_segments
    - style.get_html_style
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - file_like
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 6
    functionName: pip._vendor.rich._fileno.get_fileno
    functionSourceFile: pip._vendor.rich._fileno
    functionUses: 8
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - segments
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 567
    functionName: pip._vendor.rich.segment.Segment.remove_color
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 9
    functionsReached:
    - typing.NamedTuple.__init__
    - cache.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - file
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 361
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.__init__
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 9
    functionsReached:
    - ctypes.byref
    - pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    - pip._vendor.rich._win32_console.GetStdHandle
    - ctypes.Structure.__init__
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 25
    ICount: 17
    IfCount: 17
    argCount: 2
    argDefaultValues: []
    argNames:
    - buffer
    - term
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 7
    functionName: pip._vendor.rich._windows_renderer.legacy_windows_render
    functionSourceFile: pip._vendor.rich._windows_renderer
    functionUses: 8
    functionsReached:
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_styled
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    - <builtin>.bool
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - ctypes.Structure.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.show_cursor
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_start_of_line
    - pip._vendor.rich._win32_console.SetConsoleTextAttribute
    - char.encode
    - pip._vendor.rich._win32_console.SetConsoleCursorInfo
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_down
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - ctypes.c_ushort
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.hide_cursor
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_end_of_line
    - ctypes.c_char
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_line
    - typing.cast
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_forward
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.set_title
    - <builtin>.int
    - sys.stdout.flush
    - pip._vendor.rich._win32_console.SetConsoleTitle
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_up
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_backward
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to_column
    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.splitlines
    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: batch.clear
    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: style.render
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30ee43bb20>
    argNames:
    - self
    - prompt
    - markup
    - emoji
    - password
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 2092
    functionName: pip._vendor.rich.console.Console.input
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - pip._vendor.rich._pick.pick_bool
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - line.truncate
    - <builtin>.sorted
    - getpass.getpass
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.input
    - <builtin>.list
    - color_match.groups
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.Control.move_to
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - stream.readline
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - variants.get
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - open_tag.name.startswith
    - typing.cast.__rich_console__
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - random.randint
    - line.expand_tabs
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: getpass.getpass
    functionSourceFile: getpass
    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: stream.readline
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - clear
    - styles
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2126
    functionName: pip._vendor.rich.console.Console.export_text
    functionSourceFile: pip._vendor.rich.console
    functionUses: 1
    functionsReached:
    - style.render
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - path
    - clear
    - styles
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2158
    functionName: pip._vendor.rich.console.Console.save_text
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - pip._vendor.rich.console.Console.export_text
    - style.render
    - write_file.write
    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: write_file.write
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - theme
    - clear
    - code_format
    - inline_styles
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2172
    functionName: pip._vendor.rich.console.Console.export_html
    functionSourceFile: pip._vendor.rich.console
    functionUses: 3
    functionsReached:
    - styles.setdefault
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.segment.Segment.filter_control
    - pip._vendor.rich.segment.Segment.simplify
    - <builtin>.filter
    - operator.attrgetter
    - styles.items
    - <builtin>.iter
    - render_code_format.format
    - html.escape
    - itertools.filterfalse
    - <builtin>.next
    - style.get_html_style
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - segments
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 510
    functionName: pip._vendor.rich.segment.Segment.simplify
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 15
    functionsReached:
    - <builtin>.next
    - <builtin>.iter
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e0ce3d90>
    argNames:
    - cls
    - segments
    - is_control
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 218
    functionName: pip._vendor.rich.segment.Segment.filter_control
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 6
    functionsReached:
    - <builtin>.filter
    - itertools.filterfalse
    - operator.attrgetter
    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: html.escape
    functionSourceFile: html
    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: style.get_html_style
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: styles.setdefault
    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: styles.items
    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: render_code_format.format
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - path
    - theme
    - clear
    - code_format
    - inline_styles
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2247
    functionName: pip._vendor.rich.console.Console.save_html
    functionSourceFile: pip._vendor.rich.console
    functionUses: 2
    functionsReached:
    - styles.setdefault
    - write_file.write
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.segment.Segment.filter_control
    - pip._vendor.rich.segment.Segment.simplify
    - <builtin>.filter
    - <builtin>.next
    - styles.items
    - <builtin>.open
    - <builtin>.iter
    - operator.attrgetter
    - render_code_format.format
    - html.escape
    - pip._vendor.rich.console.Console.export_html
    - itertools.filterfalse
    - style.get_html_style
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 7
    argDefaultValues: []
    argNames:
    - self
    - title
    - theme
    - clear
    - code_format
    - font_aspect_ratio
    - unique_id
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2278
    functionName: pip._vendor.rich.console.Console.export_svg
    functionSourceFile: pip._vendor.rich.console
    functionUses: 1
    functionsReached:
    - math.ceil
    - pip._vendor.rich.console.Console.export_svg.make_tag.stringify
    - <builtin>.isinstance
    - <builtin>.sum
    - style.bgcolor.get_truecolor
    - operator.attrgetter
    - title.encode
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.console.Console.export_svg.escape_text
    - ANSI_COLOR_NAMES.get
    - html.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.export_svg.make_tag
    - classes.items
    - k.lstrip
    - <builtin>.str
    - cropped_line.append
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - <builtin>.enumerate
    - text.partition
    - itertools.filterfalse
    - html.escape.replace
    - color_match.groups
    - <builtin>.hash
    - <builtin>.list
    - abc.ABC.background_color.lower
    - text_backgrounds.append
    - typing.NamedTuple.__init__
    - pip._vendor.rich.color.blend_rgb
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - random.randint
    - pip._vendor.rich.segment.Segment.filter_control
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - css_rules.append
    - style.color.get_truecolor
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    - zlib.adler32
    - <builtin>.int
    - attribs.items
    - <builtin>.format
    - text_group.append
    - <builtin>.filter
    - pip._vendor.rich.console.Console.export_svg.get_svg_style
    - pip._vendor.rich.cells.cell_len
    - RE_COLOR.match
    - <builtin>.all
    - <builtin>.repr
    - color_rgb.split
    - code_format.format
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 6
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - style
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2309
    functionName: pip._vendor.rich.console.Console.export_svg.get_svg_style
    functionSourceFile: pip._vendor.rich.console
    functionUses: 2
    functionsReached:
    - <builtin>.int
    - pip._vendor.rich.color.blend_rgb
    - typing.NamedTuple.__init__
    - style.bgcolor.get_truecolor
    - css_rules.append
    - style.color.get_truecolor
    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: style.color.get_truecolor
    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: style.bgcolor.get_truecolor
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd630c40>
    argNames:
    - color1
    - color2
    - cross_fade
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 580
    functionName: pip._vendor.rich.color.blend_rgb
    functionSourceFile: pip._vendor.rich.color
    functionUses: 11
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.int
    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: css_rules.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2369
    functionName: pip._vendor.rich.console.Console.export_svg.escape_text
    functionSourceFile: pip._vendor.rich.console
    functionUses: 2
    functionsReached:
    - html.escape.replace
    - html.escape
    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: html.escape.replace
    functionSourceFile: html
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8df1820>
    argNames:
    - name
    - content
    - attribs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2373
    functionName: pip._vendor.rich.console.Console.export_svg.make_tag
    functionSourceFile: pip._vendor.rich.console
    functionUses: 2
    functionsReached:
    - k.lstrip
    - <builtin>.isinstance
    - pip._vendor.rich.console.Console.export_svg.make_tag.stringify
    - <builtin>.str
    - attribs.items
    - <builtin>.format
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2378
    functionName: pip._vendor.rich.console.Console.export_svg.make_tag.stringify
    functionSourceFile: pip._vendor.rich.console
    functionUses: 3
    functionsReached:
    - <builtin>.format
    - <builtin>.isinstance
    - <builtin>.str
    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>.format
    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: k.lstrip
    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: attribs.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.repr
    functionSourceFile: <builtin>
    functionUses: 123
    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: title.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: zlib.adler32
    functionSourceFile: zlib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 18
    argDefaultValues: []
    argNames:
    - self
    - color
    - bgcolor
    - bold
    - dim
    - italic
    - underline
    - blink
    - blink2
    - reverse
    - conceal
    - strike
    - underline2
    - frame
    - encircle
    - overline
    - link
    - meta
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 122
    functionName: pip._vendor.rich.style.Style.__init__
    functionSourceFile: pip._vendor.rich.style
    functionUses: 217
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.int
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - RE_COLOR.match
    - pip._vendor.rich.color.Color.parse
    - <builtin>.all
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - color_rgb.split
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30db499190>
    argNames:
    - text
    - _cell_len
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 29
    functionName: pip._vendor.rich.cells.cell_len
    functionSourceFile: pip._vendor.rich.cells
    functionUses: 91
    functionsReached:
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    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_backgrounds.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text_group.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.range
    functionSourceFile: <builtin>
    functionUses: 305
    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: classes.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: math.ceil
    functionSourceFile: math
    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: code_format.format
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - path
    - title
    - theme
    - clear
    - code_format
    - font_aspect_ratio
    - unique_id
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2529
    functionName: pip._vendor.rich.console.Console.save_svg
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - math.ceil
    - pip._vendor.rich.console.Console.export_svg.make_tag.stringify
    - <builtin>.isinstance
    - <builtin>.sum
    - style.bgcolor.get_truecolor
    - operator.attrgetter
    - title.encode
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.console.Console.export_svg.escape_text
    - ANSI_COLOR_NAMES.get
    - html.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.export_svg.make_tag
    - classes.items
    - k.lstrip
    - <builtin>.str
    - cropped_line.append
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - <builtin>.enumerate
    - text.partition
    - itertools.filterfalse
    - html.escape.replace
    - color_match.groups
    - <builtin>.hash
    - <builtin>.list
    - abc.ABC.background_color.lower
    - text_backgrounds.append
    - typing.NamedTuple.__init__
    - pip._vendor.rich.color.blend_rgb
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - random.randint
    - pip._vendor.rich.segment.Segment.filter_control
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - css_rules.append
    - style.color.get_truecolor
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    - zlib.adler32
    - write_file.write
    - <builtin>.int
    - attribs.items
    - color_rgb.split
    - <builtin>.format
    - text_group.append
    - <builtin>.filter
    - pip._vendor.rich.console.Console.export_svg.get_svg_style
    - pip._vendor.rich.cells.cell_len
    - <builtin>.open
    - RE_COLOR.match
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.console.Console.export_svg
    - code_format.format
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - svg_main_code
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2568
    functionName: pip._vendor.rich.console._svg_hash
    functionSourceFile: pip._vendor.rich.console
    functionUses: 0
    functionsReached:
    - svg_main_code.encode
    - zlib.adler32
    - <builtin>.str
    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: svg_main_code.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich._fileno
    functionSourceFile: pip._vendor.rich._fileno
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.region
    functionSourceFile: pip._vendor.rich.region
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich._export_format
    functionSourceFile: pip._vendor.rich._export_format
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.screen
    functionSourceFile: pip._vendor.rich.screen
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 40
    functionName: pip._vendor.rich.screen.Screen.__rich_console__
    functionSourceFile: pip._vendor.rich.screen
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.cells.cached_cell_len
    - shaped_lines.extend
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - console.get_style
    - pip._vendor.rich.segment.Segment.line
    - console.render_lines
    - typing.NamedTuple.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - pip._vendor.rich.cells.set_cell_size
    - options.update
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.rich.segment.Segment.set_shape
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    - pip._vendor.rich.cells.cell_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: console.get_style
    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: options.update
    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: console.render_lines
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4e9dbb0>
    - <ast.Constant object at 0x7f30f4e9db80>
    - <ast.Constant object at 0x7f30f4e9db50>
    argNames:
    - cls
    - lines
    - width
    - height
    - style
    - new_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 385
    functionName: pip._vendor.rich.segment.Segment.set_shape
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 4
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - shaped_lines.extend
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - values
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 18
    functionName: pip._vendor.rich._loop.loop_last
    functionSourceFile: pip._vendor.rich._loop
    functionUses: 88
    functionsReached:
    - <builtin>.next
    - <builtin>.iter
    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: 6
    functionLinenumber: -1
    functionName: pip._vendor.rich._windows
    functionSourceFile: pip._vendor.rich._windows
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - threading.RLock
    - threading.local.__init__
    - <builtin>.str
    - pip._vendor.rich._log_render.LogRender.__init__
    - ctypes.wintypes.DWORD
    - term.rpartition
    - pip._vendor.rich.print
    - os.getenv
    - jupyter_columns.isdigit
    - ctypes.LibraryLoader
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - platform.system
    - typing.cast
    - write_console.print
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - <builtin>.repr
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - lines.isdigit
    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: ctypes.LibraryLoader
    functionSourceFile: ctypes
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Name object at 0x7f30e0623e20>
    argNames:
    - handle
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 77
    functionName: pip._vendor.rich._win32_console.GetStdHandle
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 71
    functionsReached:
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - std_handle
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 94
    functionName: pip._vendor.rich._win32_console.GetConsoleMode
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 62
    functionsReached:
    - <builtin>.bool
    - ctypes.wintypes.DWORD
    linkageType: pythonLinkage
    raised:
    - LegacyWindowsError
    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.getwindowsversion
    functionSourceFile: sys
    functionUses: 62
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 66
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: -1
    functionName: pip._vendor.rich._win32_console
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - dataclasses.is_dataclass
    - threading.RLock
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - time.sleep
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_down
    - pip._vendor.rich.align.Align.__init__
    - pip._vendor.rich.console.Console.rule
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - ctypes.c_ushort
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.containers.Lines.justify
    - pip._vendor.rich.pretty.Pretty.__init__
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_end_of_line
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.set_title
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_backward
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to_column
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_styled
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - sys.stdout.write
    - pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    - pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.show_cursor
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.__init__
    - jupyter_lines.isdigit
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.styled.Styled.__init__
    - lines.isdigit
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_start_of_line
    - pip._vendor.rich._win32_console.SetConsoleTextAttribute
    - pip._vendor.rich.text.Text.wrap
    - char.encode
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - ctypes.LibraryLoader
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.hide_cursor
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - new_segments.insert
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.control.Control.move_to
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - sys.stdout.flush
    - pip._vendor.rich._win32_console.SetConsoleTitle
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_up
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - ctypes.byref
    - operator.itemgetter
    - ctypes.POINTER
    - plain_text.replace
    - ctypes.Structure.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - threading.local.__init__
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich._win32_console.SetConsoleCursorInfo
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - variants.get
    - style_definition.split
    - <builtin>.set
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - random.randint
    - line.expand_tabs
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - <builtin>.next
    - ctypes.c_char
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_line
    - RE_HANDLER.match
    - pip._vendor.rich.console.Console._detect_color_system
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - <builtin>.print
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - style_stack.pop
    - pip._vendor.rich.rule.Rule.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: pip._vendor.rich._win32_console.WindowsCoordinates.from_param
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 0
    functionsReached:
    - ctypes.wintypes._COORD
    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: ctypes.wintypes._COORD
    functionSourceFile: ctypes
    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: ctypes.wintypes.DWORD
    functionSourceFile: ctypes
    functionUses: 99
    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: ctypes.POINTER
    functionSourceFile: ctypes
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - std_handle
    - char
    - length
    - start
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 127
    functionName: pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 13
    functionsReached:
    - ctypes.c_char
    - ctypes.byref
    - char.encode
    - ctypes.wintypes.DWORD
    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: char.encode
    functionSourceFile: <builtin>
    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: ctypes.c_char
    functionSourceFile: ctypes
    functionUses: 25
    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: ctypes.byref
    functionSourceFile: ctypes
    functionUses: 76
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - std_handle
    - attributes
    - length
    - start
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 168
    functionName: pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 13
    functionsReached:
    - ctypes.byref
    - ctypes.wintypes.WORD
    - ctypes.wintypes.DWORD
    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: ctypes.wintypes.WORD
    functionSourceFile: ctypes
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - std_handle
    - attributes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 203
    functionName: pip._vendor.rich._win32_console.SetConsoleTextAttribute
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 11
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - std_handle
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 227
    functionName: pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 12
    functionsReached:
    - ctypes.Structure.__init__
    - ctypes.byref
    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: ctypes.Structure.__init__
    functionSourceFile: ''
    functionUses: 51
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - std_handle
    - coords
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 251
    functionName: pip._vendor.rich._win32_console.SetConsoleCursorPosition
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 16
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - std_handle
    - cursor_info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 274
    functionName: pip._vendor.rich._win32_console.GetConsoleCursorInfo
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 13
    functionsReached:
    - <builtin>.bool
    - ctypes.byref
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - std_handle
    - cursor_info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 298
    functionName: pip._vendor.rich._win32_console.SetConsoleCursorInfo
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 12
    functionsReached:
    - <builtin>.bool
    - ctypes.byref
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - title
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 318
    functionName: pip._vendor.rich._win32_console.SetConsoleTitle
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 11
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 376
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.cursor_position
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 0
    functionsReached:
    - ctypes.byref
    - pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    - typing.NamedTuple.__init__
    - ctypes.Structure.__init__
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 386
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.screen_size
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 0
    functionsReached:
    - ctypes.byref
    - pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo
    - typing.NamedTuple.__init__
    - ctypes.Structure.__init__
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 397
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 11
    functionsReached:
    - sys.stdout.write
    - sys.stdout.flush
    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.stdout.write
    functionSourceFile: sys
    functionUses: 56
    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.stdout.flush
    functionSourceFile: sys
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - text
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 406
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.write_styled
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 10
    functionsReached:
    - sys.stdout.write
    - pip._vendor.rich._win32_console.SetConsoleTextAttribute
    - sys.stdout.flush
    - <builtin>.bool
    - pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text
    - ctypes.c_ushort
    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: ctypes.c_ushort
    functionSourceFile: ctypes
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - new_position
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 445
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 9
    functionsReached:
    - <builtin>.bool
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 455
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_line
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 10
    functionsReached:
    - ctypes.byref
    - char.encode
    - typing.NamedTuple.__init__
    - ctypes.wintypes.WORD
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - ctypes.wintypes.DWORD
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - ctypes.c_char
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 471
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_end_of_line
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 10
    functionsReached:
    - ctypes.byref
    - char.encode
    - ctypes.wintypes.WORD
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - ctypes.wintypes.DWORD
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - ctypes.c_char
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 485
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_start_of_line
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 10
    functionsReached:
    - ctypes.byref
    - char.encode
    - typing.NamedTuple.__init__
    - ctypes.wintypes.WORD
    - pip._vendor.rich._win32_console.FillConsoleOutputCharacter
    - ctypes.wintypes.DWORD
    - pip._vendor.rich._win32_console.FillConsoleOutputAttribute
    - ctypes.c_char
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 494
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_up
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 10
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.bool
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 504
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_down
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 10
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.bool
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    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: 2
    functionLinenumber: 515
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_forward
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 9
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.bool
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - column
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 527
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to_column
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 10
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.bool
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    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: 2
    functionLinenumber: 536
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_backward
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 10
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.bool
    - pip._vendor.rich._win32_console.SetConsoleCursorPosition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 548
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.hide_cursor
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 10
    functionsReached:
    - ctypes.byref
    - <builtin>.int
    - pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    - <builtin>.bool
    - pip._vendor.rich._win32_console.SetConsoleCursorInfo
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - ctypes.Structure.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 569
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 12
    functionsReached:
    - ctypes.byref
    - <builtin>.int
    - <builtin>.bool
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - ctypes.Structure.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 554
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.show_cursor
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 10
    functionsReached:
    - ctypes.byref
    - <builtin>.int
    - pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size
    - <builtin>.bool
    - pip._vendor.rich._win32_console.SetConsoleCursorInfo
    - pip._vendor.rich._win32_console.GetConsoleCursorInfo
    - ctypes.Structure.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - title
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 560
    functionName: pip._vendor.rich._win32_console.LegacyWindowsTerm.set_title
    functionSourceFile: pip._vendor.rich._win32_console
    functionUses: 10
    functionsReached:
    - pip._vendor.rich._win32_console.SetConsoleTitle
    - <builtin>.bool
    - <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: time.sleep
    functionSourceFile: time
    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>.print
    functionSourceFile: <builtin>
    functionUses: 74
    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: 4
    functionLinenumber: -1
    functionName: pip._vendor.rich.style
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.int
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - RE_COLOR.match
    - pip._vendor.rich.color.Color.parse
    - <builtin>.all
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - color_rgb.split
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bit_no
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 21
    functionName: pip._vendor.rich.style._Bit.__init__
    functionSourceFile: pip._vendor.rich.style
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - obj
    - objtype
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 24
    functionName: pip._vendor.rich.style._Bit.__get__
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - color
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 146
    functionName: pip._vendor.rich.style.Style.__init__._make_color
    functionSourceFile: pip._vendor.rich.style
    functionUses: 218
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.int
    - typing.NamedTuple.__init__
    - <builtin>.len
    - typing.NamedTuple.lower
    - RE_COLOR.match
    - pip._vendor.rich.color.Color.parse
    - <builtin>.all
    - ANSI_COLOR_NAMES.get
    - color_rgb.split
    - color_match.groups
    - abc.ABC.background_color.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - color
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 433
    functionName: pip._vendor.rich.color.Color.parse
    functionSourceFile: pip._vendor.rich.color
    functionUses: 219
    functionsReached:
    - <builtin>.int
    - typing.NamedTuple.__init__
    - <builtin>.len
    - typing.NamedTuple.lower
    - RE_COLOR.match
    - <builtin>.all
    - ANSI_COLOR_NAMES.get
    - color_rgb.split
    - color_match.groups
    - abc.ABC.background_color.lower
    linkageType: pythonLinkage
    raised:
    - ColorParseError
    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>.sum
    functionSourceFile: <builtin>
    functionUses: 273
    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: marshal.dumps
    functionSourceFile: marshal
    functionUses: 224
    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: random.randint
    functionSourceFile: random
    functionUses: 226
    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>.hash
    functionSourceFile: <builtin>
    functionUses: 313
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 199
    functionName: pip._vendor.rich.style.Style.null
    functionSourceFile: pip._vendor.rich.style
    functionUses: 219
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30c8d15a60>
    - <ast.Constant object at 0x7f30c8d15d30>
    argNames:
    - cls
    - color
    - bgcolor
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 204
    functionName: pip._vendor.rich.style.Style.from_color
    functionSourceFile: pip._vendor.rich.style
    functionUses: 6
    functionsReached:
    - cls.__new__
    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: cls.__new__
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - meta
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 228
    functionName: pip._vendor.rich.style.Style.from_meta
    functionSourceFile: pip._vendor.rich.style
    functionUses: 3
    functionsReached:
    - cls.__new__
    - random.randint
    - <builtin>.hash
    - marshal.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e05f9f10>
    argNames:
    - cls
    - meta
    - handlers
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 249
    functionName: pip._vendor.rich.style.Style.on
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached:
    - handlers.items
    - random.randint
    - pip._vendor.rich.style.Style.from_meta
    - meta.update
    - marshal.dumps
    - cls.__new__
    - <builtin>.hash
    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: handlers.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: meta.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.style.Style
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached:
    - functools.lru_cache
    - pip._vendor.rich.style._Bit.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 281
    functionName: pip._vendor.rich.style.Style.link_id
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 20
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 29
    ICount: 19
    IfCount: 20
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 285
    functionName: pip._vendor.rich.style.Style.__str__
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 331
    functionName: pip._vendor.rich.style.Style.__bool__
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 9
    IfCount: 12
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - color_system
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 335
    functionName: pip._vendor.rich.style.Style._make_ansi_codes
    functionSourceFile: pip._vendor.rich.style
    functionUses: 2
    functionsReached:
    - sgr.extend
    - <builtin>.range
    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: sgr.extend
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: functools.lru_cache
    functionSourceFile: functools
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - style
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 380
    functionName: pip._vendor.rich.style.Style.normalize
    functionSourceFile: pip._vendor.rich.style
    functionUses: 173
    functionsReached:
    - <builtin>.isinstance
    - original_word.lower
    - <builtin>.sum
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - style_definition.split
    - color_match.groups
    - style_definition.strip
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.color.Color.parse
    - <builtin>.next
    - <builtin>.int
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    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: style.strip
    functionSourceFile: <builtin>
    functionUses: 174
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - values
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 396
    functionName: pip._vendor.rich.style.Style.pick_first
    functionSourceFile: pip._vendor.rich.style
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 16
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 403
    functionName: pip._vendor.rich.style.Style.__rich_repr__
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 422
    functionName: pip._vendor.rich.style.Style.__eq__
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached:
    - other.__hash__
    - <builtin>.hash
    - <builtin>.isinstance
    - pip._vendor.rich.style.Style.__hash__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 432
    functionName: pip._vendor.rich.style.Style.__hash__
    functionSourceFile: pip._vendor.rich.style
    functionUses: 2
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other.__hash__
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 427
    functionName: pip._vendor.rich.style.Style.__ne__
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached:
    - other.__hash__
    - <builtin>.hash
    - <builtin>.isinstance
    - pip._vendor.rich.style.Style.__hash__
    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: 448
    functionName: pip._vendor.rich.style.Style.color
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 453
    functionName: pip._vendor.rich.style.Style.bgcolor
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 458
    functionName: pip._vendor.rich.style.Style.link
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 463
    functionName: pip._vendor.rich.style.Style.transparent_background
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 468
    functionName: pip._vendor.rich.style.Style.background_style
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.int
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - RE_COLOR.match
    - pip._vendor.rich.color.Color.parse
    - <builtin>.all
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - color_rgb.split
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    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: 473
    functionName: pip._vendor.rich.style.Style.meta
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached:
    - marshal.loads
    - typing.cast
    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: marshal.loads
    functionSourceFile: marshal
    functionUses: 1
    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: 1
    functionLinenumber: 478
    functionName: pip._vendor.rich.style.Style.without_color
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached:
    - random.randint
    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: style_definition.strip
    functionSourceFile: <builtin>
    functionUses: 185
    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: style_definition.split
    functionSourceFile: <builtin>
    functionUses: 185
    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: original_word.lower
    functionSourceFile: <builtin>
    functionUses: 185
    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: STYLE_ATTRIBUTES.get
    functionSourceFile: <builtin>
    functionUses: 185
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 9
    IfCount: 9
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d5e3b190>
    argNames:
    - self
    - theme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 564
    functionName: pip._vendor.rich.style.Style.get_html_style
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.color.blend_rgb
    - <builtin>.int
    - pip._vendor.rich.color.Color.from_triplet
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - triplet
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 397
    functionName: pip._vendor.rich.color.Color.from_triplet
    functionSourceFile: pip._vendor.rich.color
    functionUses: 18
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - styles
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 601
    functionName: pip._vendor.rich.style.Style.combine
    functionSourceFile: pip._vendor.rich.style
    functionUses: 58
    functionsReached:
    - <builtin>.next
    - <builtin>.sum
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - styles
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 614
    functionName: pip._vendor.rich.style.Style.chain
    functionSourceFile: pip._vendor.rich.style
    functionUses: 3
    functionsReached:
    - <builtin>.next
    - <builtin>.sum
    - <builtin>.iter
    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: 0
    functionLinenumber: 649
    functionName: pip._vendor.rich.style.Style.clear_meta_and_links
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d5e24820>
    argNames:
    - self
    - link
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 671
    functionName: pip._vendor.rich.style.Style.update_link
    functionSourceFile: pip._vendor.rich.style
    functionUses: 6
    functionsReached:
    - random.randint
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d5e23730>
    argNames:
    - self
    - text
    - color_system
    - legacy_windows
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 694
    functionName: pip._vendor.rich.style.Style.render
    functionSourceFile: pip._vendor.rich.style
    functionUses: 1
    functionsReached:
    - sgr.extend
    - pip._vendor.rich.style.Style._make_ansi_codes
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d5e46970>
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 720
    functionName: pip._vendor.rich.style.Style.test
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached:
    - sgr.extend
    - sys.stdout.write
    - <builtin>.str
    - pip._vendor.rich.style.Style.render
    - pip._vendor.rich.style.Style._make_ansi_codes
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - style
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 733
    functionName: pip._vendor.rich.style.Style._add
    functionSourceFile: pip._vendor.rich.style
    functionUses: 1
    functionsReached:
    - marshal.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - style
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 757
    functionName: pip._vendor.rich.style.Style.__add__
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.style.Style.copy
    - random.randint
    - pip._vendor.rich.style.Style._add
    - marshal.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - default_style
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 770
    functionName: pip._vendor.rich.style.StyleStack.__init__
    functionSourceFile: pip._vendor.rich.style
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 773
    functionName: pip._vendor.rich.style.StyleStack.__repr__
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 777
    functionName: pip._vendor.rich.style.StyleStack.current
    functionSourceFile: pip._vendor.rich.style
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - style
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 781
    functionName: pip._vendor.rich.style.StyleStack.push
    functionSourceFile: pip._vendor.rich.style
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 789
    functionName: pip._vendor.rich.style.StyleStack.pop
    functionSourceFile: pip._vendor.rich.style
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 8
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.color
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - dataclasses.is_dataclass
    - threading.RLock
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - line.pad_right
    - pip._vendor.rich.table.Table.add_row.add_cell
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.range
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - platform.system
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - ANSI_COLOR_NAMES.items
    - operator.itemgetter
    - column._cells.append
    - re.compile
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - threading.local.__init__
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - word_match.group
    - style_definition.split
    - variants.get
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - pip._vendor.rich.protocol.is_renderable
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 29
    functionName: pip._vendor.rich.color.ColorSystem.__repr__
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: pip._vendor.rich.color.ColorSystem.__str__
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 45
    functionName: pip._vendor.rich.color.ColorType.__repr__
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.compile
    functionSourceFile: re
    functionUses: 154
    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: 315
    functionName: pip._vendor.rich.color.Color.__rich__
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.text.Text.assemble
    - <builtin>.isinstance
    - <builtin>.sum
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - <builtin>.int
    - text.apply_meta
    - RE_COLOR.match
    - <builtin>.all
    - typing.NamedTuple.type.name.lower
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.type.name.lower
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 9
    argDefaultValues: []
    argNames:
    - cls
    - parts
    - style
    - justify
    - overflow
    - no_wrap
    - end
    - tab_size
    - meta
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 338
    functionName: pip._vendor.rich.text.Text.assemble
    functionSourceFile: pip._vendor.rich.text
    functionUses: 23
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - text.apply_meta
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 326
    functionName: pip._vendor.rich.color.Color.__rich_repr__
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    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: 1
    functionLinenumber: 333
    functionName: pip._vendor.rich.color.Color.system
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    functionsReached:
    - enum.IntEnum.__init__
    - <builtin>.int
    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: enum.IntEnum.__init__
    functionSourceFile: ''
    functionUses: 1
    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: 340
    functionName: pip._vendor.rich.color.Color.is_system_defined
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 345
    functionName: pip._vendor.rich.color.Color.is_default
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d235ed90>
    - <ast.Constant object at 0x7f30e57f6820>
    argNames:
    - self
    - theme
    - foreground
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 349
    functionName: pip._vendor.rich.color.Color.get_truecolor
    functionSourceFile: pip._vendor.rich.color
    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:
    - cls
    - number
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 381
    functionName: pip._vendor.rich.color.Color.from_ansi
    functionSourceFile: pip._vendor.rich.color
    functionUses: 6
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - red
    - green
    - blue
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 409
    functionName: pip._vendor.rich.color.Color.from_rgb
    functionSourceFile: pip._vendor.rich.color
    functionUses: 9
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.color.Color.from_triplet
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 423
    functionName: pip._vendor.rich.color.Color.default
    functionSourceFile: pip._vendor.rich.color
    functionUses: 4
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.color.Color
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    functionsReached:
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.lower
    functionSourceFile: typing
    functionUses: 220
    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: abc.ABC.background_color.lower
    functionSourceFile: abc
    functionUses: 220
    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: ANSI_COLOR_NAMES.get
    functionSourceFile: <builtin>
    functionUses: 220
    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_COLOR.match
    functionSourceFile: <builtin>
    functionUses: 220
    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: color_match.groups
    functionSourceFile: <builtin>
    functionUses: 220
    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: color_rgb.split
    functionSourceFile: <builtin>
    functionUses: 220
    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: 353
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd652d60>
    argNames:
    - self
    - foreground
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 485
    functionName: pip._vendor.rich.color.Color.get_ansi_codes
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - system
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 513
    functionName: pip._vendor.rich.color.Color.downgrade
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.palette.Palette.match
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.round
    - colorsys.rgb_to_hls
    - <builtin>.min
    - <builtin>.range
    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: colorsys.rgb_to_hls
    functionSourceFile: colorsys
    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>.round
    functionSourceFile: <builtin>
    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
    - color
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 45
    functionName: pip._vendor.rich.palette.Palette.match
    functionSourceFile: pip._vendor.rich.palette
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - <builtin>.min
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - hex_color
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 571
    functionName: pip._vendor.rich.color.parse_rgb_hex
    functionSourceFile: pip._vendor.rich.color
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 27
    argDefaultValues: []
    argNames:
    - self
    - headers
    - title
    - caption
    - width
    - min_width
    - box
    - safe_box
    - padding
    - collapse_padding
    - pad_edge
    - expand
    - show_header
    - show_footer
    - show_edge
    - show_lines
    - leading
    - style
    - row_styles
    - header_style
    - footer_style
    - border_style
    - title_style
    - caption_style
    - title_justify
    - caption_justify
    - highlight
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 186
    functionName: pip._vendor.rich.table.Table.__init__
    functionSourceFile: pip._vendor.rich.table
    functionUses: 51
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.padding.Padding.unpack
    - typing.cast
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 14
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd2e5cd0>
    - <ast.Constant object at 0x7f30fd2e5ca0>
    argNames:
    - self
    - header
    - footer
    - header_style
    - footer_style
    - style
    - justify
    - vertical
    - overflow
    - width
    - min_width
    - max_width
    - ratio
    - no_wrap
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 363
    functionName: pip._vendor.rich.table.Table.add_column
    functionSourceFile: pip._vendor.rich.table
    functionUses: 52
    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: ANSI_COLOR_NAMES.items
    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>.sorted
    functionSourceFile: <builtin>
    functionUses: 359
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - renderables
    - style
    - end_section
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 418
    functionName: pip._vendor.rich.table.Table.add_row
    functionSourceFile: pip._vendor.rich.table
    functionUses: 13
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.protocol.is_renderable
    - <builtin>.len
    - <builtin>.enumerate
    - column._cells.append
    - pip._vendor.rich.table.Table.add_row.add_cell
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.list
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich._palettes
    functionSourceFile: pip._vendor.rich._palettes
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.palette.Palette.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - colors
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 14
    functionName: pip._vendor.rich.palette.Palette.__init__
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.palette
    functionSourceFile: pip._vendor.rich.palette
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - dataclasses.is_dataclass
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.range
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - pip._vendor.rich.segment.Segment.apply_style
    - os.getenv
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - number
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 17
    functionName: pip._vendor.rich.palette.Palette.__getitem__
    functionSourceFile: pip._vendor.rich.palette
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 20
    functionName: pip._vendor.rich.palette.Palette.__rich__
    functionSourceFile: pip._vendor.rich.palette
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - column._cells.append
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - pip._vendor.rich.color.Color.from_rgb
    - <builtin>.str
    - <builtin>.enumerate
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - <builtin>.repr
    - color_match.groups
    - <builtin>.hash
    - <builtin>.list
    - abc.ABC.background_color.lower
    - pip._vendor.rich.color.Color.from_triplet
    - pip._vendor.rich.protocol.is_renderable
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.int
    - RE_COLOR.match
    - pip._vendor.rich.table.Table.add_row.add_cell
    - <builtin>.all
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.palette.Palette
    functionSourceFile: pip._vendor.rich.palette
    functionUses: 0
    functionsReached:
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - index
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 58
    functionName: pip._vendor.rich.palette.Palette.match.get_color_distance
    functionSourceFile: pip._vendor.rich.palette
    functionUses: 0
    functionsReached:
    - math.sqrt
    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: math.sqrt
    functionSourceFile: math
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 84
    functionName: pip._vendor.rich.palette.ColorBox.__rich_console__
    functionSourceFile: pip._vendor.rich.palette
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - colorsys.hls_to_rgb
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - pip._vendor.rich.color.Color.from_rgb
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.segment.Segment.line
    - pip._vendor.rich.color.Color.from_triplet
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - <builtin>.int
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    - <builtin>.range
    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: colorsys.hls_to_rgb
    functionSourceFile: colorsys
    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: pip._vendor.rich.color_triplet
    functionSourceFile: pip._vendor.rich.color_triplet
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 15
    functionName: pip._vendor.rich.color_triplet.ColorTriplet.hex
    functionSourceFile: pip._vendor.rich.color_triplet
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 21
    functionName: pip._vendor.rich.color_triplet.ColorTriplet.rgb
    functionSourceFile: pip._vendor.rich.color_triplet
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 31
    functionName: pip._vendor.rich.color_triplet.ColorTriplet.normalized
    functionSourceFile: pip._vendor.rich.color_triplet
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 14
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.text
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - dataclasses.is_dataclass
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - pip._vendor.rich.console.Console.rule
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - term.rpartition
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - pip._vendor.rich.text.Text.highlight_words
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - word.get_style_at_offset
    - pip._vendor.rich._windows.get_windows_console_features
    - lines.append
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - re.compile
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - pip._vendor.rich.segment.Segment.apply_style
    - os.getenv
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.NewLine.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.rule.Rule.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 55
    functionName: pip._vendor.rich.text.Span.__repr__
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 58
    functionName: pip._vendor.rich.text.Span.__bool__
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - offset
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 61
    functionName: pip._vendor.rich.text.Span.split
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - offset
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 74
    functionName: pip._vendor.rich.text.Span.move
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - offset
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: pip._vendor.rich.text.Span.right_crop
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30f6bd9460>
    argNames:
    - text
    - _translate_table
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 187
    functionName: pip._vendor.rich.control.strip_control_codes
    functionSourceFile: ''
    functionUses: 241
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 150
    functionName: pip._vendor.rich.text.Text.__len__
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 153
    functionName: pip._vendor.rich.text.Text.__bool__
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 156
    functionName: pip._vendor.rich.text.Text.__str__
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 159
    functionName: pip._vendor.rich.text.Text.__repr__
    functionSourceFile: pip._vendor.rich.text
    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
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 162
    functionName: pip._vendor.rich.text.Text.__add__
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 423
    functionName: pip._vendor.rich.text.Text.copy
    functionSourceFile: pip._vendor.rich.text
    functionUses: 66
    functionsReached:
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.len
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 6
    IfCount: 7
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd669eb0>
    argNames:
    - self
    - text
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 913
    functionName: pip._vendor.rich.text.Text.append
    functionSourceFile: pip._vendor.rich.text
    functionUses: 185
    functionsReached:
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.len
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 169
    functionName: pip._vendor.rich.text.Text.__eq__
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 174
    functionName: pip._vendor.rich.text.Text.__contains__
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - slice
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 181
    functionName: pip._vendor.rich.text.Text.__getitem__
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - <builtin>.len
    - slice.indices
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich.text.Text.__getitem__.get_text_at
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.zip
    - pip._vendor.rich.text.Text.divide
    - <builtin>.min
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - <builtin>.list
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - offset
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 182
    functionName: pip._vendor.rich.text.Text.__getitem__.get_text_at
    functionSourceFile: pip._vendor.rich.text
    functionUses: 1
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: slice.indices
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - offsets
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1051
    functionName: pip._vendor.rich.text.Text.divide
    functionSourceFile: pip._vendor.rich.text
    functionUses: 64
    functionsReached:
    - pip._vendor.rich.text.Text.copy
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.zip
    - <builtin>.min
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - <builtin>.list
    - <builtin>.range
    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: 208
    functionName: pip._vendor.rich.text.Text.cell_len
    functionSourceFile: pip._vendor.rich.text
    functionUses: 5
    functionsReached:
    - pip._vendor.rich.text.Text.cell_len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 213
    functionName: pip._vendor.rich.text.Text.markup
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.markup.escape
    - <builtin>.len
    - markup_spans.sort
    - operator.itemgetter
    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: operator.itemgetter
    functionSourceFile: operator
    functionUses: 138
    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: markup_spans.sort
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 8
    argDefaultValues: []
    argNames:
    - cls
    - text
    - style
    - justify
    - overflow
    - no_wrap
    - end
    - tab_size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 275
    functionName: pip._vendor.rich.text.Text.from_ansi
    functionSourceFile: pip._vendor.rich.text
    functionUses: 1
    functionsReached:
    - re_ansi.finditer
    - <builtin>.isinstance
    - sgr.split
    - original_word.lower
    - <builtin>.sum
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.ansi._ansi_tokenize
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - pip._vendor.rich.color.Color.from_rgb
    - pip._vendor.rich.ansi.AnsiDecoder.decode
    - match.groups
    - pip._vendor.rich.color.Color.from_ansi
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.style.Style.from_color
    - pip._vendor.rich.text.Text.join.iter_text
    - style_definition.split
    - <builtin>.min
    - terminal_text.splitlines
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.color.Color.from_triplet
    - line.rsplit
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - pip._vendor.rich.ansi.AnsiDecoder.decode_line
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.parse
    - <builtin>.iter
    - pip._vendor.rich.style.Style.__init__._make_color
    - _code.isdigit
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - <builtin>.next
    - typing.NamedTuple.lower
    - cls.__new__
    - pip._vendor.rich.ansi.AnsiDecoder.__init__
    - match.span
    - <builtin>.int
    - osc.startswith
    - pip._vendor.rich.style.Style.update_link
    - RE_COLOR.match
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - contextlib.suppress
    - sgr.endswith
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 122
    functionName: pip._vendor.rich.ansi.AnsiDecoder.__init__
    functionSourceFile: pip._vendor.rich.ansi
    functionUses: 12
    functionsReached:
    - pip._vendor.rich.style.Style.null
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - terminal_text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 125
    functionName: pip._vendor.rich.ansi.AnsiDecoder.decode
    functionSourceFile: pip._vendor.rich.ansi
    functionUses: 3
    functionsReached:
    - re_ansi.finditer
    - <builtin>.isinstance
    - sgr.split
    - original_word.lower
    - <builtin>.sum
    - pip._vendor.rich.ansi._ansi_tokenize
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - pip._vendor.rich.color.Color.from_rgb
    - match.groups
    - pip._vendor.rich.color.Color.from_ansi
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.style.Style.from_color
    - style_definition.split
    - <builtin>.min
    - terminal_text.splitlines
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.color.Color.from_triplet
    - line.rsplit
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - pip._vendor.rich.ansi.AnsiDecoder.decode_line
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - _code.isdigit
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - <builtin>.next
    - cls.__new__
    - match.span
    - <builtin>.int
    - osc.startswith
    - pip._vendor.rich.style.Style.update_link
    - RE_COLOR.match
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - contextlib.suppress
    - sgr.endswith
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd9970>
    argNames:
    - cls
    - text
    - style
    - justify
    - overflow
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 313
    functionName: pip._vendor.rich.text.Text.styled
    functionSourceFile: pip._vendor.rich.text
    functionUses: 3
    functionsReached:
    - styled_text.stylize
    - <builtin>.len
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: styled_text.stylize
    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: text.apply_meta
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - new_text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 390
    functionName: pip._vendor.rich.text.Text.plain
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.text.Text._trim_spans
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.min
    - pip._vendor.rich.control.strip_control_codes
    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: 836
    functionName: pip._vendor.rich.text.Text._trim_spans
    functionSourceFile: pip._vendor.rich.text
    functionUses: 1
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - spans
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 406
    functionName: pip._vendor.rich.text.Text.spans
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd67c370>
    argNames:
    - self
    - plain
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 410
    functionName: pip._vendor.rich.text.Text.blank_copy
    functionSourceFile: pip._vendor.rich.text
    functionUses: 67
    functionsReached:
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.len
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd687280>
    - <ast.Constant object at 0x7f30dd687250>
    argNames:
    - self
    - style
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 437
    functionName: pip._vendor.rich.text.Text.stylize
    functionSourceFile: pip._vendor.rich.text
    functionUses: 9
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd68e3a0>
    - <ast.Constant object at 0x7f30dd68e370>
    argNames:
    - self
    - style
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 463
    functionName: pip._vendor.rich.text.Text.stylize_before
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd684490>
    - <ast.Constant object at 0x7f30dd684460>
    argNames:
    - self
    - meta
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 489
    functionName: pip._vendor.rich.text.Text.apply_meta
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - marshal.dumps
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.style.Style.from_meta
    - random.randint
    - <builtin>.min
    - pip._vendor.rich.text.Text.stylize
    - cls.__new__
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd662dc0>
    argNames:
    - self
    - meta
    - handlers
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 503
    functionName: pip._vendor.rich.text.Text.on
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - handlers.items
    - marshal.dumps
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.style.Style.from_meta
    - random.randint
    - meta.update
    - pip._vendor.rich.text.Text.stylize
    - <builtin>.min
    - cls.__new__
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - suffix
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 523
    functionName: pip._vendor.rich.text.Text.remove_suffix
    functionSourceFile: pip._vendor.rich.text
    functionUses: 2
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.text.Text.right_crop
    - <builtin>.len
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30df337490>
    argNames:
    - self
    - amount
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1131
    functionName: pip._vendor.rich.text.Text.right_crop
    functionSourceFile: pip._vendor.rich.text
    functionUses: 5
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - offset
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 532
    functionName: pip._vendor.rich.text.Text.get_style_at_offset
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd6722e0>
    argNames:
    - self
    - re_highlight
    - style
    - style_prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 552
    functionName: pip._vendor.rich.text.Text.highlight_regex
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - <builtin>.callable
    - match.groupdict
    - re.finditer
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.finditer
    functionSourceFile: re
    functionUses: 71
    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>.callable
    functionSourceFile: <builtin>
    functionUses: 67
    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: match.groupdict
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - words
    - style
    - case_sensitive
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 590
    functionName: pip._vendor.rich.text.Text.highlight_words
    functionSourceFile: pip._vendor.rich.text
    functionUses: 1
    functionsReached:
    - typing.NamedTuple.__init__
    - re.finditer
    - re.escape
    - match.span
    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: 98
    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: match.span
    functionSourceFile: <builtin>
    functionUses: 245
    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: 619
    functionName: pip._vendor.rich.text.Text.rstrip
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 623
    functionName: pip._vendor.rich.text.Text.rstrip_end
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.min
    - pip._vendor.rich.text.Text.right_crop
    - whitespace_match.group
    - _re_whitespace.search
    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_whitespace.search
    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: whitespace_match.group
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - new_length
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 637
    functionName: pip._vendor.rich.text.Text.set_length
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.text.Text.pad_right
    - <builtin>.min
    - pip._vendor.rich.text.Text.right_crop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd6984f0>
    argNames:
    - self
    - count
    - character
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 882
    functionName: pip._vendor.rich.text.Text.pad_right
    functionSourceFile: pip._vendor.rich.text
    functionUses: 2
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - values
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4
    functionName: pip._vendor.rich._pick.pick_bool
    functionSourceFile: pip._vendor.rich._pick
    functionUses: 59
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 7
    argDefaultValues: []
    argNames:
    - self
    - console
    - width
    - justify
    - overflow
    - tab_size
    - no_wrap
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1147
    functionName: pip._vendor.rich.text.Text.wrap
    functionSourceFile: pip._vendor.rich.text
    functionUses: 56
    functionsReached:
    - pip._vendor.rich.containers.Lines.extend
    - <builtin>.bool
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - next_word.get_style_at_offset
    - re.escape
    - pip._vendor.rich.text.Text.split.flatten_spans
    - pip._vendor.rich.containers.Lines.pop
    - line.split
    - line.pad_left
    - line.rstrip_end
    - line.rstrip
    - <builtin>.str
    - line.divide
    - <builtin>.enumerate
    - pip._vendor.rich.text.Text.join.iter_text
    - word_match.group
    - pip._vendor.rich.text.Text.divide
    - <builtin>.min
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.containers.Lines.justify
    - tokens.append
    - <builtin>.list
    - itertools.zip_longest
    - match.end
    - typing.NamedTuple.__init__
    - line.truncate
    - line.expand_tabs
    - <builtin>.len
    - word.get_style_at_offset
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.chop_cells
    - <builtin>.next
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    - match.span
    - <builtin>.reversed
    - <builtin>.range
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.split
    - pip._vendor.rich.cells.cell_len
    - line.pad_right
    - pip._vendor.rich.containers.Lines.__init__
    - re.finditer
    - pip._vendor.rich._wrap.divide_line
    - pip._vendor.rich.text.Text.join
    - <builtin>.max
    - re_word.match
    - word.rstrip
    - pip._vendor.rich.text.Text.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 8
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd692e50>
    argNames:
    - self
    - console
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 677
    functionName: pip._vendor.rich.text.Text.render
    functionSourceFile: pip._vendor.rich.text
    functionUses: 56
    functionsReached:
    - spans.sort
    - operator.itemgetter
    - typing.NamedTuple.__init__
    - functools.partial
    - <builtin>.sum
    - <builtin>.len
    - <builtin>.sorted
    - <builtin>.enumerate
    - pip._vendor.rich.text.Text.render.get_current_style
    - <builtin>.iter
    - <builtin>.zip
    - pip._vendor.rich.style.Style.combine
    - <builtin>.tuple
    - pip._vendor.rich.style.Style.null
    - <builtin>.next
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 665
    functionName: pip._vendor.rich.text.Text.__rich_measure__
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.max
    - pip._vendor.rich.text.Text.cell_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: functools.partial
    functionSourceFile: functools
    functionUses: 104
    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: spans.sort
    functionSourceFile: <builtin>
    functionUses: 57
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 716
    functionName: pip._vendor.rich.text.Text.render.get_current_style
    functionSourceFile: pip._vendor.rich.text
    functionUses: 57
    functionsReached:
    - <builtin>.sum
    - <builtin>.sorted
    - <builtin>.iter
    - pip._vendor.rich.style.Style.combine
    - <builtin>.tuple
    - <builtin>.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.tuple
    functionSourceFile: <builtin>
    functionUses: 479
    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>.zip
    functionSourceFile: <builtin>
    functionUses: 140
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 748
    functionName: pip._vendor.rich.text.Text.join.iter_text
    functionSourceFile: pip._vendor.rich.text
    functionUses: 66
    functionsReached:
    - <builtin>.next
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd67e2b0>
    argNames:
    - self
    - tab_size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 775
    functionName: pip._vendor.rich.text.Text.expand_tabs
    functionSourceFile: pip._vendor.rich.text
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich.text.Text.blank_copy
    - re.escape
    - pip._vendor.rich.text.Text.split.flatten_spans
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - pip._vendor.rich.text.Text.divide
    - <builtin>.min
    - <builtin>.list
    - match.end
    - part.plain.endswith
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.containers.Lines.__iter__
    - <builtin>.zip
    - match.span
    - <builtin>.range
    - pip._vendor.rich.text.Text.split
    - pip._vendor.rich.containers.Lines.__init__
    - re.finditer
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - pip._vendor.rich.text.Text.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30df34bf70>
    argNames:
    - self
    - separator
    - include_separator
    - allow_blank
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1007
    functionName: pip._vendor.rich.text.Text.split
    functionSourceFile: pip._vendor.rich.text
    functionUses: 62
    functionsReached:
    - match.span
    - pip._vendor.rich.text.Text.copy
    - <builtin>.range
    - match.end
    - <builtin>.max
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.zip
    - re.escape
    - re.finditer
    - pip._vendor.rich.text.Text.divide
    - <builtin>.min
    - pip._vendor.rich.text.Text.split.flatten_spans
    - <builtin>.list
    - pip._vendor.rich.containers.Lines.pop
    - pip._vendor.rich.containers.Lines.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: pip._vendor.rich.containers.Lines.__iter__
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 62
    functionsReached:
    - <builtin>.iter
    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.split
    functionSourceFile: <builtin>
    functionUses: 91
    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: part.plain.endswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - max_width
    - overflow
    - pad
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 809
    functionName: pip._vendor.rich.text.Text.truncate
    functionSourceFile: pip._vendor.rich.text
    functionUses: 3
    functionsReached:
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.text.Text.cell_len
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - text
    - total
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 87
    functionName: pip._vendor.rich.cells.set_cell_size
    functionSourceFile: pip._vendor.rich.cells
    functionUses: 66
    functionsReached:
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd67dc40>
    argNames:
    - self
    - count
    - character
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 850
    functionName: pip._vendor.rich.text.Text.pad
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd67d040>
    argNames:
    - self
    - count
    - character
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 866
    functionName: pip._vendor.rich.text.Text.pad_left
    functionSourceFile: pip._vendor.rich.text
    functionUses: 1
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30dd683e20>
    argNames:
    - self
    - align
    - width
    - character
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 893
    functionName: pip._vendor.rich.text.Text.align
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.text.Text.pad_left
    - pip._vendor.rich.text.Text.truncate
    - <builtin>.len
    - <builtin>.sum
    - pip._vendor.rich.text.Text.pad_right
    - pip._vendor.rich.text.Text.cell_len
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 957
    functionName: pip._vendor.rich.text.Text.append_text
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tokens
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 976
    functionName: pip._vendor.rich.text.Text.append_tokens
    functionSourceFile: pip._vendor.rich.text
    functionUses: 3
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 999
    functionName: pip._vendor.rich.text.Text.copy_styles
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Tuple object at 0x7f30f20a1b50>
    argNames:
    - self
    - lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 69
    functionName: pip._vendor.rich.containers.Lines.__init__
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 65
    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: match.end
    functionSourceFile: <builtin>
    functionUses: 68
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1036
    functionName: pip._vendor.rich.text.Text.split.flatten_spans
    functionSourceFile: pip._vendor.rich.text
    functionUses: 63
    functionsReached:
    - re.escape
    - re.finditer
    - match.span
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7f30d8c01b50>
    argNames:
    - self
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 108
    functionName: pip._vendor.rich.containers.Lines.pop
    functionSourceFile: ''
    functionUses: 63
    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.expand_tabs
    functionSourceFile: <builtin>
    functionUses: 57
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 3
    IfCount: 7
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d322bdf0>
    argNames:
    - text
    - width
    - fold
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 20
    functionName: pip._vendor.rich._wrap.divide_line
    functionSourceFile: pip._vendor.rich._wrap
    functionUses: 57
    functionsReached:
    - <builtin>.reversed
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - lines.append
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich._loop.loop_last
    - word_match.group
    - <builtin>.iter
    - word_match.span
    - pip._vendor.rich.cells.chop_cells
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.next
    - pip._vendor.rich._wrap.words
    - re_word.match
    - word.rstrip
    - <builtin>.ord
    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.divide
    functionSourceFile: <builtin>
    functionUses: 57
    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.rstrip_end
    functionSourceFile: <builtin>
    functionUses: 57
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 11
    IfCount: 7
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30c8d15e80>
    - <ast.Constant object at 0x7f30c8d15d30>
    argNames:
    - self
    - console
    - width
    - justify
    - overflow
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 111
    functionName: pip._vendor.rich.containers.Lines.justify
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 57
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.text.Text.blank_copy
    - next_word.get_style_at_offset
    - line.split
    - line.pad_left
    - line.rstrip
    - <builtin>.enumerate
    - pip._vendor.rich.text.Text.join.iter_text
    - tokens.append
    - itertools.zip_longest
    - typing.NamedTuple.__init__
    - line.truncate
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.cells.cell_len
    - line.pad_right
    - pip._vendor.rich.text.Text.join
    - <builtin>.range
    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.truncate
    functionSourceFile: <builtin>
    functionUses: 58
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 105
    functionName: pip._vendor.rich.containers.Lines.extend
    functionSourceFile: ''
    functionUses: 57
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - width
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1196
    functionName: pip._vendor.rich.text.Text.fit
    functionSourceFile: pip._vendor.rich.text
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.text.Text.__init__
    - re.escape
    - pip._vendor.rich.text.Text.split.flatten_spans
    - pip._vendor.rich.containers.Lines.pop
    - pip._vendor.rich.text.Text.divide
    - <builtin>.min
    - <builtin>.list
    - match.end
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - <builtin>.zip
    - match.span
    - line.set_length
    - <builtin>.range
    - pip._vendor.rich.text.Text.split
    - pip._vendor.rich.containers.Lines.__init__
    - re.finditer
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - pip._vendor.rich.text.Text.copy
    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.set_length
    functionSourceFile: <builtin>
    functionUses: 1
    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: 1212
    functionName: pip._vendor.rich.text.Text.detect_indentation
    functionSourceFile: pip._vendor.rich.text
    functionUses: 4
    functionsReached:
    - re.finditer
    - match.group
    - <builtin>.len
    - functools.reduce
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: match.group
    functionSourceFile: <builtin>
    functionUses: 271
    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: functools.reduce
    functionSourceFile: functools
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30df3538e0>
    argNames:
    - self
    - indent_size
    - character
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1233
    functionName: pip._vendor.rich.text.Text.with_indent_guides
    functionSourceFile: pip._vendor.rich.text
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.text.Text.blank_copy
    - re.compile
    - re.escape
    - pip._vendor.rich.text.Text.split.flatten_spans
    - pip._vendor.rich.containers.Lines.pop
    - line.split
    - line.stylize
    - pip._vendor.rich.text.Text.join.iter_text
    - pip._vendor.rich.text.Text.divide
    - <builtin>.min
    - re_indent.match
    - pip._vendor.rich.text.Text.expand_tabs
    - <builtin>.list
    - match.end
    - part.plain.endswith
    - functools.reduce
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - <builtin>.zip
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.text.Text.detect_indentation
    - <builtin>.next
    - match.span
    - <builtin>.range
    - new_lines.extend
    - match.group
    - pip._vendor.rich.text.Text.split
    - <builtin>.divmod
    - pip._vendor.rich.containers.Lines.__init__
    - re.finditer
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - pip._vendor.rich.text.Text.copy
    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_indent.match
    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: <builtin>.divmod
    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: line.stylize
    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: new_lines.extend
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.emoji
    functionSourceFile: pip._vendor.rich.emoji
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - pip._vendor.rich.console.Console.save_html
    - threading.RLock
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - html.escape
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - render_code_format.format
    - itertools.filterfalse
    - <builtin>.tuple
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - pip._vendor.rich.columns.Columns.__init__
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - write_file.write
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - <builtin>.filter
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.console.Console.export_html
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - style.get_html_style
    - tokens.append
    - abc.ABC.background_color.lower
    - styles.setdefault
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - styles.items
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - <builtin>.ord
    - EMOJI.keys
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.open
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - variants.get
    - style_definition.split
    - <builtin>.set
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - itertools.zip_longest
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - pip._vendor.rich.segment.Segment.filter_control
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.segment.Segment.simplify
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd63d0>
    - <ast.Constant object at 0x7f30f6bd6520>
    argNames:
    - self
    - name
    - style
    - variant
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 32
    functionName: pip._vendor.rich.emoji.Emoji.__init__
    functionSourceFile: pip._vendor.rich.emoji
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NoEmoji
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 58
    functionName: pip._vendor.rich.emoji.Emoji.replace
    functionSourceFile: pip._vendor.rich.emoji
    functionUses: 0
    functionsReached:
    - pip._vendor.rich._emoji_replace._emoji_replace
    - variants.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 69
    functionName: pip._vendor.rich.emoji.Emoji.__repr__
    functionSourceFile: pip._vendor.rich.emoji
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 72
    functionName: pip._vendor.rich.emoji.Emoji.__str__
    functionSourceFile: pip._vendor.rich.emoji
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: pip._vendor.rich.emoji.Emoji.__rich_console__
    functionSourceFile: pip._vendor.rich.emoji
    functionUses: 0
    functionsReached:
    - console.get_style
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: EMOJI.keys
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f30f114f040>
    - <ast.Tuple object at 0x7f30f114f430>
    argNames:
    - self
    - renderables
    - padding
    - width
    - expand
    - equal
    - column_first
    - right_to_left
    - align
    - title
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._vendor.rich.columns.Columns.__init__
    functionSourceFile: pip._vendor.rich.columns
    functionUses: 6
    functionsReached:
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 54
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 77
    ICount: 5
    IfCount: 54
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.typing_extensions
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.TypeVar
    - pip._vendor.typing_extensions._ensure_subclassable.inner
    - <builtin>.frozenset
    - pip._vendor.typing_extensions._UnpackSpecialForm
    - inspect.signature
    - collections.defaultdict
    - pip._vendor.typing_extensions._ensure_subclassable
    - pip._vendor.typing_extensions._LiteralForm.__init__
    - pip._vendor.typing_extensions._SpecialForm
    - functools.update_wrapper
    - pip._vendor.typing_extensions._ExtensionsSpecialForm
    - collections.abc.Buffer.register
    - typing._SpecialForm.__init__
    - _EXCLUDED_ATTRS.add
    - type.__new__
    - typing._alias
    - <builtin>.staticmethod
    - functools.partial
    - typing._tp_cache
    - <builtin>.hasattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 140
    functionName: pip._vendor.typing_extensions._Sentinel.__repr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30efcddbe0>
    argNames:
    - cls
    - parameters
    - elen
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 147
    functionName: pip._vendor.typing_extensions._check_generic
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.typing_extensions._is_unpack
    - typing.get_origin
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2207
    functionName: pip._vendor.typing_extensions._is_unpack
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 5
    functionsReached:
    - typing.get_origin
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - t
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 177
    functionName: pip._vendor.typing_extensions._should_collect_from_parameters
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30efce0160>
    argNames:
    - types
    - typevar_types
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 181
    functionName: pip._vendor.typing_extensions._collect_type_vars
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - tvars.extend
    - pip._vendor.typing_extensions._is_unpack
    - pip._vendor.typing_extensions._should_collect_from_parameters
    - <builtin>.tuple
    - typing.get_origin
    - tvars.append
    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: tvars.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tvars.extend
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.TypeVar
    functionSourceFile: typing
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 218
    functionName: pip._vendor.typing_extensions._AnyMeta.__instancecheck__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 223
    functionName: pip._vendor.typing_extensions._AnyMeta.__repr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 237
    functionName: pip._vendor.typing_extensions.Any.__new__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 247
    functionName: pip._vendor.typing_extensions._ExtensionsSpecialForm.__repr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 258
    functionName: pip._vendor.typing_extensions._FinalForm.__getitem__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing._GenericAlias
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing._type_check
    functionSourceFile: typing
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing._GenericAlias
    functionSourceFile: typing
    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: typing._SpecialForm.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 284
    functionName: pip._vendor.typing_extensions.final
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 316
    functionName: pip._vendor.typing_extensions.IntVar
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - parameters
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 324
    functionName: pip._vendor.typing_extensions._flatten_literal_params
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 1
    functionsReached:
    - params.append
    - <builtin>.isinstance
    - params.extend
    - <builtin>.tuple
    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: params.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: params.append
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - params
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 334
    functionName: pip._vendor.typing_extensions._value_and_type_iter
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 3
    functionsReached:
    - <builtin>.type
    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>.type
    functionSourceFile: <builtin>
    functionUses: 363
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 339
    functionName: pip._vendor.typing_extensions._LiteralGenericAlias.__eq__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - pip._vendor.typing_extensions._value_and_type_iter
    - <builtin>.isinstance
    - <builtin>.type
    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: 522
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 346
    functionName: pip._vendor.typing_extensions._LiteralGenericAlias.__hash__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.frozenset
    - pip._vendor.typing_extensions._value_and_type_iter
    - <builtin>.hash
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.frozenset
    functionSourceFile: <builtin>
    functionUses: 118
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - doc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 350
    functionName: pip._vendor.typing_extensions._LiteralForm.__init__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 354
    functionName: pip._vendor.typing_extensions._LiteralForm.__getitem__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing._GenericAlias.__init__
    - <builtin>.len
    - new_parameters.append
    - deduped_pairs.remove
    - <builtin>.set
    - params.append
    - params.extend
    - <builtin>.tuple
    - pip._vendor.typing_extensions._flatten_literal_params
    - pip._vendor.typing_extensions._value_and_type_iter
    - <builtin>.list
    - <builtin>.type
    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: new_parameters.append
    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: deduped_pairs.remove
    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: typing._GenericAlias.__init__
    functionSourceFile: ''
    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: collections.defaultdict
    functionSourceFile: collections
    functionUses: 25
    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: 407
    functionName: pip._vendor.typing_extensions.overload
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - func
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 447
    functionName: pip._vendor.typing_extensions.get_overloads
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 458
    functionName: pip._vendor.typing_extensions.clear_overloads
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - _overload_registry.clear
    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: _overload_registry.clear
    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: typing._alias
    functionSourceFile: typing
    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: _EXCLUDED_ATTRS.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 526
    functionName: pip._vendor.typing_extensions._get_protocol_attrs
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 2
    functionsReached:
    - <builtin>.set
    - attr.startswith
    - <builtin>.getattr
    - attrs.add
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attr.startswith
    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: attrs.add
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 538
    functionName: pip._vendor.typing_extensions._maybe_adjust_parameters
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    - tvars.extend
    - pip._vendor.typing_extensions._is_unpack
    - pip._vendor.typing_extensions._collect_type_vars
    - pip._vendor.typing_extensions._should_collect_from_parameters
    - <builtin>.set
    - <builtin>.tuple
    - typing.get_origin
    - tvars.append
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30efcc3b20>
    argNames:
    - depth
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 578
    functionName: pip._vendor.typing_extensions._caller
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 13
    functionsReached:
    - sys._getframe
    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._getframe
    functionSourceFile: sys
    functionUses: 55
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30efcc3490>
    argNames:
    - depth
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 590
    functionName: pip._vendor.typing_extensions._allow_reckless_class_checks
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 2
    functionsReached:
    - sys._getframe
    - pip._vendor.typing_extensions._caller
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 597
    functionName: pip._vendor.typing_extensions._no_init
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 5
    argDefaultValues: []
    argNames:
    - mcls
    - name
    - bases
    - namespace
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 618
    functionName: pip._vendor.typing_extensions._ProtocolMeta.__new__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - _PROTO_ALLOWLIST.get
    - abc.ABCMeta.__new__
    - <builtin>.len
    - <builtin>.set
    - typing.is_protocol
    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: _PROTO_ALLOWLIST.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.is_protocol
    functionSourceFile: typing
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.ABCMeta.__new__
    functionSourceFile: abc
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 634
    functionName: pip._vendor.typing_extensions._ProtocolMeta.__init__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - abc.ABCMeta.__init__
    - attr.startswith
    - pip._vendor.typing_extensions._get_protocol_attrs
    - attrs.add
    - <builtin>.callable
    - <builtin>.set
    - <builtin>.all
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.ABCMeta.__init__
    functionSourceFile: abc
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 644
    functionName: pip._vendor.typing_extensions._ProtocolMeta.__subclasscheck__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - abc.ABCMeta.__dict__.get
    - <builtin>.isinstance
    - type.__subclasscheck__
    - pip._vendor.typing_extensions._caller
    - abc.ABCMeta.__subclasscheck__
    - <builtin>.getattr
    - sys._getframe
    - pip._vendor.typing_extensions._allow_reckless_class_checks
    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: type.__subclasscheck__
    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: abc.ABCMeta.__dict__.get
    functionSourceFile: abc
    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: abc.ABCMeta.__subclasscheck__
    functionSourceFile: abc
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - instance
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 668
    functionName: pip._vendor.typing_extensions._ProtocolMeta.__instancecheck__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - inspect.getattr_static
    - abc.ABCMeta.__instancecheck__
    - pip._vendor.typing_extensions._caller
    - <builtin>.callable
    - <builtin>.getattr
    - type.__instancecheck__
    - sys._getframe
    - pip._vendor.typing_extensions._allow_reckless_class_checks
    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: type.__instancecheck__
    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: abc.ABCMeta.__instancecheck__
    functionSourceFile: abc
    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: inspect.getattr_static
    functionSourceFile: inspect
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 699
    functionName: pip._vendor.typing_extensions._ProtocolMeta.__eq__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.object
    - abc.ABCMeta.__eq__
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.ABCMeta.__eq__
    functionSourceFile: abc
    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>.object
    functionSourceFile: <builtin>
    functionUses: 47
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 712
    functionName: pip._vendor.typing_extensions._ProtocolMeta.__hash__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - type.__hash__
    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: type.__hash__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 716
    functionName: pip._vendor.typing_extensions._proto_hook
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - cls.__dict__.get
    - <builtin>.getattr
    - <builtin>.isinstance
    - typing.is_protocol
    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: cls.__dict__.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 832
    functionName: pip._vendor.typing_extensions.Protocol.__init_subclass__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.any
    - <builtin>.isinstance
    - <builtin>.str
    - tvars.extend
    - pip._vendor.typing_extensions._maybe_adjust_parameters
    - pip._vendor.typing_extensions._is_unpack
    - pip._vendor.typing_extensions._collect_type_vars
    - pip._vendor.typing_extensions._should_collect_from_parameters
    - <builtin>.set
    - typing.Protocol.__dict__.get
    - <builtin>.tuple
    - typing.get_origin
    - tvars.append
    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: typing.Protocol.__dict__.get
    functionSourceFile: typing
    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>.any
    functionSourceFile: <builtin>
    functionUses: 277
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - args
    - kwds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 800
    functionName: pip._vendor.typing_extensions.Protocol.__new__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.typing_extensions.Protocol
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing._tp_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing._tp_cache
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - params
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 807
    functionName: pip._vendor.typing_extensions.Protocol.__class_getitem__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing._GenericAlias
    - pip._vendor.typing_extensions._check_generic
    - pip._vendor.typing_extensions._is_unpack
    - <builtin>.len
    - <builtin>.sum
    - <builtin>.set
    - <builtin>.all
    - <builtin>.tuple
    - typing.get_origin
    - <builtin>.hasattr
    - typing._type_check
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 857
    functionName: pip._vendor.typing_extensions.runtime_checkable
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.isinstance
    - <builtin>.issubclass
    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>.issubclass
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.typing_extensions.SupportsInt
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 895
    functionName: pip._vendor.typing_extensions.SupportsInt.__int__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.typing_extensions.SupportsFloat
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 904
    functionName: pip._vendor.typing_extensions.SupportsFloat.__float__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.typing_extensions.SupportsComplex
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 913
    functionName: pip._vendor.typing_extensions.SupportsComplex.__complex__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.typing_extensions.SupportsBytes
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 922
    functionName: pip._vendor.typing_extensions.SupportsBytes.__bytes__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.typing_extensions.SupportsIndex
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 930
    functionName: pip._vendor.typing_extensions.SupportsIndex.__index__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.typing_extensions.SupportsAbs
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 941
    functionName: pip._vendor.typing_extensions.SupportsAbs.__abs__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.typing_extensions.SupportsRound
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30efca9940>
    argNames:
    - self
    - ndigits
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 952
    functionName: pip._vendor.typing_extensions.SupportsRound.__round__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - mro_entries
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 956
    functionName: pip._vendor.typing_extensions._ensure_subclassable
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - func
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 957
    functionName: pip._vendor.typing_extensions._ensure_subclassable.inner
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 1
    functionsReached:
    - <builtin>.staticmethod
    - <builtin>.type
    - functools.update_wrapper
    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>.staticmethod
    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: functools.update_wrapper
    functionSourceFile: functools
    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: inspect.signature
    functionSourceFile: inspect
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 9
    IfCount: 11
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30efcde370>
    argNames:
    - cls
    - name
    - bases
    - ns
    - total
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 995
    functionName: pip._vendor.typing_extensions._TypedDictMeta.__new__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - annotations.update
    - <builtin>.any
    - own_annotations.items
    - required_keys.update
    - optional_keys.update
    - base.__dict__.get
    - required_keys.add
    - <builtin>.issubclass
    - <builtin>.frozenset
    - <builtin>.set
    - typing.get_args
    - <builtin>.type
    - optional_keys.add
    - typing.get_origin
    - ns.get
    - type.__new__
    - <builtin>.hasattr
    - typing._type_check
    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: type.__new__
    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: ns.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: own_annotations.items
    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: base.__dict__.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: annotations.update
    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: required_keys.update
    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: optional_keys.update
    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: typing.get_origin
    functionSourceFile: typing
    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: typing.get_args
    functionSourceFile: typing
    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: required_keys.add
    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: optional_keys.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1071
    functionName: pip._vendor.typing_extensions._TypedDictMeta.__subclasscheck__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    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: pip._vendor.typing_extensions.<lambda1>
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f30efcac910>
    argNames:
    - __typename
    - __fields
    - total
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1080
    functionName: pip._vendor.typing_extensions.TypedDict
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - warnings.warn
    - pip._vendor.typing_extensions._caller
    - <builtin>.dict
    - sys._getframe
    - typing._TypedDictMeta
    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: warnings.warn
    functionSourceFile: warnings
    functionUses: 387
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.dict
    functionSourceFile: <builtin>
    functionUses: 153
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing._TypedDictMeta
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - tp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1168
    functionName: pip._vendor.typing_extensions.is_typeddict
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - __val
    - __typ
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1189
    functionName: pip._vendor.typing_extensions.assert_type
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - t
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1209
    functionName: pip._vendor.typing_extensions._strip_extras
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - functools.reduce
    - t.copy_with
    - pip._vendor.typing_extensions._strip_extras
    - <builtin>.tuple
    - types.GenericAlias
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: t.copy_with
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: types.GenericAlias
    functionSourceFile: types
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30efccf730>
    - <ast.Constant object at 0x7f30efccf700>
    - <ast.Constant object at 0x7f30efccf6d0>
    argNames:
    - obj
    - globalns
    - localns
    - include_extras
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1233
    functionName: pip._vendor.typing_extensions.get_type_hints
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - t.copy_with
    - <builtin>.isinstance
    - functools.reduce
    - typing.get_type_hints
    - pip._vendor.typing_extensions._strip_extras
    - hint.items
    - <builtin>.tuple
    - types.GenericAlias
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.get_type_hints
    functionSourceFile: typing
    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: hint.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - origin
    - metadata
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1292
    functionName: pip._vendor.typing_extensions._AnnotatedAlias.__init__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - params
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1299
    functionName: pip._vendor.typing_extensions._AnnotatedAlias.copy_with
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - typing._AnnotatedAlias
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing._AnnotatedAlias
    functionSourceFile: typing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1304
    functionName: pip._vendor.typing_extensions._AnnotatedAlias.__repr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing._type_repr
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing._type_repr
    functionSourceFile: typing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1308
    functionName: pip._vendor.typing_extensions._AnnotatedAlias.__reduce__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1313
    functionName: pip._vendor.typing_extensions._AnnotatedAlias.__eq__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1320
    functionName: pip._vendor.typing_extensions._AnnotatedAlias.__hash__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1358
    functionName: pip._vendor.typing_extensions.Annotated.__new__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.typing_extensions.Annotated
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing._tp_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - params
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1362
    functionName: pip._vendor.typing_extensions.Annotated.__class_getitem__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - typing._AnnotatedAlias
    - <builtin>.tuple
    - typing.get_origin
    - typing._type_check
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1376
    functionName: pip._vendor.typing_extensions.Annotated.__init_subclass__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - tp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1400
    functionName: pip._vendor.typing_extensions.get_origin
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - tp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1424
    functionName: pip._vendor.typing_extensions.get_args
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing.get_origin
    - <builtin>.getattr
    - <builtin>.isinstance
    - <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: pip._vendor.typing_extensions._ExtensionsSpecialForm
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1453
    functionName: pip._vendor.typing_extensions.TypeAlias
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - type_param
    - default
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1482
    functionName: pip._vendor.typing_extensions._set_default
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.tuple
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - typevarlike
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1492
    functionName: pip._vendor.typing_extensions._set_module
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 3
    functionsReached:
    - sys._getframe
    - pip._vendor.typing_extensions._caller
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - __instance
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1508
    functionName: pip._vendor.typing_extensions._TypeVarLikeMeta.__instancecheck__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 8
    argDefaultValues: []
    argNames:
    - cls
    - name
    - constraints
    - bound
    - covariant
    - contravariant
    - default
    - infer_variance
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1518
    functionName: pip._vendor.typing_extensions.TypeVar.__new__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - pip._vendor.typing_extensions._set_default
    - <builtin>.isinstance
    - typing.TypeVar
    - <builtin>.hasattr
    - pip._vendor.typing_extensions._caller
    - pip._vendor.typing_extensions._set_module
    - <builtin>.tuple
    - sys._getframe
    - typing._type_check
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1536
    functionName: pip._vendor.typing_extensions.TypeVar.__init_subclass__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1550
    functionName: pip._vendor.typing_extensions._Immutable.__copy__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - memo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1553
    functionName: pip._vendor.typing_extensions._Immutable.__deepcopy__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - origin
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1568
    functionName: pip._vendor.typing_extensions.ParamSpecArgs.__init__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1571
    functionName: pip._vendor.typing_extensions.ParamSpecArgs.__repr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1574
    functionName: pip._vendor.typing_extensions.ParamSpecArgs.__eq__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - origin
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1591
    functionName: pip._vendor.typing_extensions.ParamSpecKwargs.__init__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1594
    functionName: pip._vendor.typing_extensions.ParamSpecKwargs.__repr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1597
    functionName: pip._vendor.typing_extensions.ParamSpecKwargs.__eq__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 7
    argDefaultValues: []
    argNames:
    - cls
    - name
    - bound
    - covariant
    - contravariant
    - infer_variance
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1611
    functionName: pip._vendor.typing_extensions.ParamSpec.__new__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - pip._vendor.typing_extensions._set_default
    - <builtin>.isinstance
    - pip._vendor.typing_extensions._caller
    - pip._vendor.typing_extensions._set_module
    - <builtin>.tuple
    - sys._getframe
    - typing.ParamSpec
    - <builtin>.hasattr
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.ParamSpec
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1630
    functionName: pip._vendor.typing_extensions.ParamSpec.__init_subclass__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1688
    functionName: pip._vendor.typing_extensions.ParamSpec.args
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing.ParamSpecArgs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.ParamSpecArgs
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1692
    functionName: pip._vendor.typing_extensions.ParamSpec.kwargs
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing.ParamSpecKwargs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.ParamSpecKwargs
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 7
    argDefaultValues: []
    argNames:
    - self
    - name
    - bound
    - covariant
    - contravariant
    - infer_variance
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1695
    functionName: pip._vendor.typing_extensions.ParamSpec.__init__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.typing_extensions._set_default
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._vendor.typing_extensions._caller
    - <builtin>.tuple
    - sys._getframe
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1713
    functionName: pip._vendor.typing_extensions.ParamSpec.__repr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1724
    functionName: pip._vendor.typing_extensions.ParamSpec.__hash__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - object.__hash__
    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: object.__hash__
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1727
    functionName: pip._vendor.typing_extensions.ParamSpec.__eq__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1730
    functionName: pip._vendor.typing_extensions.ParamSpec.__reduce__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1734
    functionName: pip._vendor.typing_extensions.ParamSpec.__call__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - origin
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1749
    functionName: pip._vendor.typing_extensions._ConcatenateGenericAlias.__init__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1754
    functionName: pip._vendor.typing_extensions._ConcatenateGenericAlias.__repr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing._type_repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1759
    functionName: pip._vendor.typing_extensions._ConcatenateGenericAlias.__hash__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1763
    functionName: pip._vendor.typing_extensions._ConcatenateGenericAlias.__call__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1767
    functionName: pip._vendor.typing_extensions._ConcatenateGenericAlias.__parameters__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1775
    functionName: pip._vendor.typing_extensions._concatenate_getitem
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 2
    functionsReached:
    - typing._ConcatenateGenericAlias
    - <builtin>.tuple
    - <builtin>.isinstance
    - typing._type_check
    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: typing._ConcatenateGenericAlias
    functionSourceFile: typing
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1795
    functionName: pip._vendor.typing_extensions.Concatenate
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.tuple
    - typing._ConcatenateGenericAlias
    - pip._vendor.typing_extensions._concatenate_getitem
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1810
    functionName: pip._vendor.typing_extensions._ConcatenateForm.__getitem__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.tuple
    - typing._ConcatenateGenericAlias
    - pip._vendor.typing_extensions._concatenate_getitem
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1832
    functionName: pip._vendor.typing_extensions.TypeGuard
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing._GenericAlias
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1880
    functionName: pip._vendor.typing_extensions._TypeGuardForm.__getitem__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing._GenericAlias
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - getitem
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1935
    functionName: pip._vendor.typing_extensions._SpecialForm.__init__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1940
    functionName: pip._vendor.typing_extensions._SpecialForm.__getattr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bases
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1946
    functionName: pip._vendor.typing_extensions._SpecialForm.__mro_entries__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1949
    functionName: pip._vendor.typing_extensions._SpecialForm.__repr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1952
    functionName: pip._vendor.typing_extensions._SpecialForm.__reduce__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1955
    functionName: pip._vendor.typing_extensions._SpecialForm.__call__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1958
    functionName: pip._vendor.typing_extensions._SpecialForm.__or__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1961
    functionName: pip._vendor.typing_extensions._SpecialForm.__ror__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1964
    functionName: pip._vendor.typing_extensions._SpecialForm.__instancecheck__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cls
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1967
    functionName: pip._vendor.typing_extensions._SpecialForm.__subclasscheck__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.typing_extensions._SpecialForm
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 1
    functionsReached:
    - typing._tp_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1971
    functionName: pip._vendor.typing_extensions._SpecialForm.__getitem__
    functionSourceFile: pip._vendor.typing_extensions
    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
    - params
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1979
    functionName: pip._vendor.typing_extensions.LiteralString
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - params
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2002
    functionName: pip._vendor.typing_extensions.Self
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - params
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2023
    functionName: pip._vendor.typing_extensions.Never
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2054
    functionName: pip._vendor.typing_extensions.Required
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing._GenericAlias
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2074
    functionName: pip._vendor.typing_extensions.NotRequired
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing._GenericAlias
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2092
    functionName: pip._vendor.typing_extensions._RequiredForm.__getitem__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing._GenericAlias
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - getitem
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2180
    functionName: pip._vendor.typing_extensions._UnpackSpecialForm.__init__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.typing_extensions._UnpackSpecialForm
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2188
    functionName: pip._vendor.typing_extensions.Unpack
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing._GenericAlias.__init__
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2200
    functionName: pip._vendor.typing_extensions._UnpackForm.__getitem__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing._GenericAlias.__init__
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - name
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2219
    functionName: pip._vendor.typing_extensions.TypeVarTuple.__new__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - pip._vendor.typing_extensions._set_default
    - <builtin>.isinstance
    - pip._vendor.typing_extensions._caller
    - pip._vendor.typing_extensions._set_module
    - <builtin>.tuple
    - typing.TypeVarTuple
    - sys._getframe
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.TypeVarTuple
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2302
    functionName: pip._vendor.typing_extensions.TypeVarTuple.__init_subclass__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    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: 2276
    functionName: pip._vendor.typing_extensions.TypeVarTuple.__iter__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2279
    functionName: pip._vendor.typing_extensions.TypeVarTuple.__init__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - pip._vendor.typing_extensions._set_default
    - <builtin>.isinstance
    - pip._vendor.typing_extensions._caller
    - <builtin>.tuple
    - sys._getframe
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2290
    functionName: pip._vendor.typing_extensions.TypeVarTuple.__repr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2293
    functionName: pip._vendor.typing_extensions.TypeVarTuple.__hash__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - object.__hash__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2296
    functionName: pip._vendor.typing_extensions.TypeVarTuple.__eq__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2299
    functionName: pip._vendor.typing_extensions.TypeVarTuple.__reduce__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - __obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2310
    functionName: pip._vendor.typing_extensions.reveal_type
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.print
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - __arg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2333
    functionName: pip._vendor.typing_extensions.assert_never
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - eq_default
    - order_default
    - kw_only_default
    - frozen_default
    - field_specifiers
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2360
    functionName: pip._vendor.typing_extensions.dataclass_transform
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls_or_fn
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2433
    functionName: pip._vendor.typing_extensions.dataclass_transform.decorator
    functionSourceFile: pip._vendor.typing_extensions
    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:
    - __arg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2451
    functionName: pip._vendor.typing_extensions.override
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - __msg
    - category
    - stacklevel
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2492
    functionName: pip._vendor.typing_extensions.deprecated
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - __arg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2536
    functionName: pip._vendor.typing_extensions.deprecated.decorator
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.callable
    - <builtin>.staticmethod
    - functools.wraps
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2545
    functionName: pip._vendor.typing_extensions.deprecated.decorator.__new__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - warnings.warn
    linkageType: pythonLinkage
    raised:
    - TypeError
    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: 1
    functionLinenumber: 2560
    functionName: pip._vendor.typing_extensions.deprecated.decorator.wrapper
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Tuple object at 0x7f30e7b41400>
    argNames:
    - name
    - types
    - module
    - defaults
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2595
    functionName: pip._vendor.typing_extensions._make_nmtuple
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 2
    functionsReached:
    - typing._type_check
    - collections.namedtuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple
    functionSourceFile: collections
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 3
    IfCount: 8
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - typename
    - bases
    - ns
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2612
    functionName: pip._vendor.typing_extensions._NamedTupleMeta.__new__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - types.items
    - <builtin>.classmethod
    - pip._vendor.typing_extensions._make_nmtuple
    - <builtin>.setattr
    - default_names.append
    - <builtin>.tuple
    - nm_tpl.__init_subclass__
    - typing._type_check
    - ns.get
    - <builtin>.hasattr
    - collections.namedtuple
    linkageType: pythonLinkage
    raised:
    - AttributeError
    - 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: default_names.append
    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: types.items
    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>.classmethod
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.setattr
    functionSourceFile: <builtin>
    functionUses: 69
    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: nm_tpl.__init_subclass__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - bases
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2653
    functionName: pip._vendor.typing_extensions._namedtuple_mro_entries
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30e7b42c10>
    argNames:
    - __typename
    - __fields
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2658
    functionName: pip._vendor.typing_extensions.NamedTuple
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - pip._vendor.typing_extensions._make_nmtuple
    - deprecation_msg.format
    - kwargs.items
    - warnings.warn
    - pip._vendor.typing_extensions._caller
    - sys._getframe
    - typing._type_check
    - collections.namedtuple
    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: deprecation_msg.format
    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: kwargs.items
    functionSourceFile: <builtin>
    functionUses: 40
    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.abc.Buffer.register
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - __cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2767
    functionName: pip._vendor.typing_extensions.get_original_bases
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2818
    functionName: pip._vendor.typing_extensions.NewType.__call__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - tp
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2821
    functionName: pip._vendor.typing_extensions.NewType.__init__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - name.rpartition
    - sys._getframe
    - pip._vendor.typing_extensions._caller
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.rpartition
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bases
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2831
    functionName: pip._vendor.typing_extensions.NewType.__mro_entries__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2837
    functionName: pip._vendor.typing_extensions.NewType.__mro_entries__.Dummy.__init_subclass__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2847
    functionName: pip._vendor.typing_extensions.NewType.__repr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2850
    functionName: pip._vendor.typing_extensions.NewType.__reduce__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2857
    functionName: pip._vendor.typing_extensions.NewType.__or__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2860
    functionName: pip._vendor.typing_extensions.NewType.__ror__
    functionSourceFile: pip._vendor.typing_extensions
    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:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2867
    functionName: pip._vendor.typing_extensions._is_unionable
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    - type_params
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2904
    functionName: pip._vendor.typing_extensions.TypeAliasType.__init__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - parameters.extend
    - <builtin>.isinstance
    - pip._vendor.typing_extensions._caller
    - parameters.append
    - <builtin>.tuple
    - sys._getframe
    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: parameters.extend
    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: parameters.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - __name
    - __value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2923
    functionName: pip._vendor.typing_extensions.TypeAliasType.__setattr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - typing.TypeAliasType._raise_attribute_error
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.TypeAliasType._raise_attribute_error
    functionSourceFile: typing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - __name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2928
    functionName: pip._vendor.typing_extensions.TypeAliasType.__delattr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - typing.TypeAliasType._raise_attribute_error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2931
    functionName: pip._vendor.typing_extensions.TypeAliasType._raise_attribute_error
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2945
    functionName: pip._vendor.typing_extensions.TypeAliasType.__repr__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parameters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2948
    functionName: pip._vendor.typing_extensions.TypeAliasType.__getitem__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.tuple
    - typing._GenericAlias
    - typing._type_check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2959
    functionName: pip._vendor.typing_extensions.TypeAliasType.__reduce__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2962
    functionName: pip._vendor.typing_extensions.TypeAliasType.__init_subclass__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2969
    functionName: pip._vendor.typing_extensions.TypeAliasType.__call__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - right
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2973
    functionName: pip._vendor.typing_extensions.TypeAliasType.__or__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.typing_extensions._is_unionable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - left
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2980
    functionName: pip._vendor.typing_extensions.TypeAliasType.__ror__
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.typing_extensions._is_unionable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - __tp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2990
    functionName: pip._vendor.typing_extensions.is_protocol
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - <builtin>.object
    - <builtin>.getattr
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - __tp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3011
    functionName: pip._vendor.typing_extensions.get_protocol_members
    functionSourceFile: pip._vendor.typing_extensions
    functionUses: 0
    functionsReached:
    - attr.startswith
    - pip._vendor.typing_extensions._get_protocol_attrs
    - attrs.add
    - <builtin>.frozenset
    - <builtin>.set
    - <builtin>.getattr
    - typing.is_protocol
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.columns
    functionSourceFile: pip._vendor.rich.columns
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - dataclasses.is_dataclass
    - operator.attrgetter
    - threading.RLock
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.align.Align.__init__
    - pip._vendor.rich.console.Console.rule
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - pip._vendor.rich.columns.Columns.__init__
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - lines.isdigit
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - os.listdir
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - threading.local.__init__
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - <builtin>.next
    - pip._vendor.rich.console.Console._detect_color_system
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.rule.Rule.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - renderable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 54
    functionName: pip._vendor.rich.columns.Columns.add_renderable
    functionSourceFile: pip._vendor.rich.columns
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 62
    functionName: pip._vendor.rich.columns.Columns.__rich_console__
    functionSourceFile: pip._vendor.rich.columns
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - <builtin>.str
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.hash
    - highlight_text.copy_styles
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - <builtin>.zip
    - table.add_column
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.padding.Padding.unpack
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.hasattr
    - pip._vendor.rich.table.Table.grid
    - render_width.normalize
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.columns.Columns.__rich_console__.iter_renderables
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - itertools.chain.from_iterable
    - RE_COLOR.match
    - <builtin>.max
    - <builtin>.range
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - ANSI_COLOR_NAMES.get
    - widths.clear
    - collections.defaultdict
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.table.Table.add_column
    - color_match.groups
    - <builtin>.list
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.int
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - <builtin>.type
    - widths.values
    - operator.itemgetter
    - pip._vendor.rich.constrain.Constrain.__init__
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - style_definition.split
    - style_definition.strip
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - pad
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 61
    functionName: pip._vendor.rich.padding.Padding.unpack
    functionSourceFile: pip._vendor.rich.padding
    functionUses: 66
    functionsReached:
    - <builtin>.len
    - typing.cast
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - column_count
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: pip._vendor.rich.columns.Columns.__rich_console__.iter_renderables
    functionSourceFile: pip._vendor.rich.columns
    functionUses: 1
    functionsReached:
    - itertools.chain.from_iterable
    - <builtin>.len
    - <builtin>.zip
    - <builtin>.list
    - <builtin>.range
    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: itertools.chain.from_iterable
    functionSourceFile: itertools
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - cls
    - headers
    - padding
    - collapse_padding
    - pad_edge
    - expand
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 252
    functionName: pip._vendor.rich.table.Table.grid
    functionSourceFile: pip._vendor.rich.table
    functionUses: 42
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.padding.Padding.unpack
    - typing.cast
    - <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: table.add_column
    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: widths.clear
    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: widths.values
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dbade970>
    argNames:
    - self
    - renderable
    - width
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 18
    functionName: pip._vendor.rich.constrain.Constrain.__init__
    functionSourceFile: ''
    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: os.listdir
    functionSourceFile: os
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.align
    functionSourceFile: pip._vendor.rich.align
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - dataclasses.is_dataclass
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.align.Align.center
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - pip._vendor.rich.text.Text.render.get_current_style
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - pip._vendor.rich.align.Align.right
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - pip._vendor.rich.console.Group.__init__
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.align.Align.left
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - os.getenv
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 66
    functionName: pip._vendor.rich.align.Align.__repr__
    functionSourceFile: pip._vendor.rich.align
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c015e0>
    argNames:
    - cls
    - renderable
    - style
    - vertical
    - pad
    - width
    - height
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 70
    functionName: pip._vendor.rich.align.Align.left
    functionSourceFile: pip._vendor.rich.align
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.align.Align.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c01640>
    argNames:
    - cls
    - renderable
    - style
    - vertical
    - pad
    - width
    - height
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 92
    functionName: pip._vendor.rich.align.Align.center
    functionSourceFile: pip._vendor.rich.align
    functionUses: 3
    functionsReached:
    - pip._vendor.rich.align.Align.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30d568b0d0>
    argNames:
    - cls
    - renderable
    - style
    - vertical
    - pad
    - width
    - height
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 114
    functionName: pip._vendor.rich.align.Align.right
    functionSourceFile: pip._vendor.rich.align
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.align.Align.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 135
    functionName: pip._vendor.rich.align.Align.__rich_console__
    functionSourceFile: pip._vendor.rich.align
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.segment.Segment.split_lines
    - <builtin>.sum
    - pip._vendor.rich.align.Align.__rich_console__.generate_segments
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.constrain.Constrain.__init__
    - shaped_lines.extend
    - itertools.chain
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - text.partition
    - <builtin>.min
    - console.get_style
    - pip._vendor.rich.segment.Segment.apply_style
    - <builtin>.list
    - pip._vendor.rich.segment.Segment.line
    - console.render
    - typing.NamedTuple.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - pip._vendor.rich.cells.set_cell_size
    - options.update
    - pip._vendor.rich.segment.Segment.set_shape
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.segment.Segment.get_line_length
    - <builtin>.ord
    - pip._vendor.rich.segment.Segment.get_shape
    - pip._vendor.rich.align.Align.__rich_console__.blank_lines
    - console.measure
    - pip._vendor.rich.cells.cell_len
    - <builtin>.max
    - <builtin>.range
    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: console.measure
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: console.render
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - segments
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 237
    functionName: pip._vendor.rich.segment.Segment.split_lines
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 2
    functionsReached:
    - typing.NamedTuple.__init__
    - text.partition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 371
    functionName: pip._vendor.rich.segment.Segment.get_shape
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 3
    functionsReached:
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.cached_cell_len
    - <builtin>.max
    - pip._vendor.rich.segment.Segment.get_line_length
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 12
    IfCount: 7
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 153
    functionName: pip._vendor.rich.align.Align.__rich_console__.generate_segments
    functionSourceFile: pip._vendor.rich.align
    functionUses: 1
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - count
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 198
    functionName: pip._vendor.rich.align.Align.__rich_console__.blank_lines
    functionSourceFile: pip._vendor.rich.align
    functionUses: 1
    functionsReached:
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 227
    functionName: pip._vendor.rich.align.Align.__rich_measure__
    functionSourceFile: pip._vendor.rich.align
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - open_tag.parameters.strip
    - style_definition.split
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - pip._vendor.rich.protocol.is_renderable
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - <builtin>.type
    - RE_HANDLER.match
    - typing.cast
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8bf3160>
    argNames:
    - self
    - renderable
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 245
    functionName: pip._vendor.rich.align.VerticalCenter.__init__
    functionSourceFile: pip._vendor.rich.align
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 253
    functionName: pip._vendor.rich.align.VerticalCenter.__repr__
    functionSourceFile: pip._vendor.rich.align
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 256
    functionName: pip._vendor.rich.align.VerticalCenter.__rich_console__
    functionSourceFile: pip._vendor.rich.align
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.segment.Segment.line
    - console.render_lines
    - <builtin>.range
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - options.update
    - console.get_style
    - <builtin>.max
    - pip._vendor.rich.align.VerticalCenter.__rich_console__.blank_lines
    - pip._vendor.rich.segment.Segment.get_line_length
    - <builtin>.ord
    - pip._vendor.rich.segment.Segment.get_shape
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - count
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 270
    functionName: pip._vendor.rich.align.VerticalCenter.__rich_console__.blank_lines
    functionSourceFile: pip._vendor.rich.align
    functionUses: 1
    functionsReached:
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 283
    functionName: pip._vendor.rich.align.VerticalCenter.__rich_measure__
    functionSourceFile: pip._vendor.rich.align
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - open_tag.parameters.strip
    - style_definition.split
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - pip._vendor.rich.protocol.is_renderable
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - <builtin>.type
    - RE_HANDLER.match
    - typing.cast
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 15
    argDefaultValues:
    - <ast.Name object at 0x7f30f502f9a0>
    argNames:
    - self
    - renderable
    - box
    - title
    - title_align
    - subtitle
    - subtitle_align
    - safe_box
    - expand
    - style
    - border_style
    - width
    - height
    - padding
    - highlight
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 38
    functionName: pip._vendor.rich.panel.Panel.__init__
    functionSourceFile: ''
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 20
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.highlighter
    functionSourceFile: pip._vendor.rich.highlighter
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - pip._vendor.rich.json.JSON.from_data
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console.print_json
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - lines.isdigit
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - json.dumps
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - pip._vendor.rich.json.JSON.__init__
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - json.loads
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - variants.get
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - cls.__new__
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - regexes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 8
    functionName: pip._vendor.rich.highlighter._combine_regex
    functionSourceFile: pip._vendor.rich.highlighter
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 20
    functionName: pip._vendor.rich.highlighter.Highlighter.__call__
    functionSourceFile: pip._vendor.rich.highlighter
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - match.span
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - pip._vendor.rich.highlighter.NullHighlighter.highlight
    - <builtin>.len
    - text.copy
    - pip._vendor.rich.highlighter.Highlighter.highlight
    - re.finditer
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.highlighter.JSONHighlighter.highlight
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.copy
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 57
    functionName: pip._vendor.rich.highlighter.NullHighlighter.highlight
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 123
    functionName: pip._vendor.rich.highlighter.JSONHighlighter.highlight
    functionSourceFile: pip._vendor.rich.highlighter
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - typing.NamedTuple.__init__
    - <builtin>.len
    - re.finditer
    - match.span
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: pip._vendor.rich.highlighter.Highlighter.highlight
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.highlighter.Highlighter
    functionSourceFile: pip._vendor.rich.highlighter
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 67
    functionName: pip._vendor.rich.highlighter.RegexHighlighter.highlight
    functionSourceFile: pip._vendor.rich.highlighter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.highlighter.ReprHighlighter
    functionSourceFile: pip._vendor.rich.highlighter
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.highlighter._combine_regex
    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: pip._vendor.rich.highlighter.JSONHighlighter
    functionSourceFile: pip._vendor.rich.highlighter
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.highlighter._combine_regex
    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: json.dumps
    functionSourceFile: json
    functionUses: 67
    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: pip._vendor.rich.constrain
    functionSourceFile: pip._vendor.rich.constrain
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 22
    functionName: pip._vendor.rich.constrain.Constrain.__rich_console__
    functionSourceFile: pip._vendor.rich.constrain
    functionUses: 0
    functionsReached:
    - options.update_width
    - console.render
    - <builtin>.min
    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: options.update_width
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 31
    functionName: pip._vendor.rich.constrain.Constrain.__rich_measure__
    functionSourceFile: pip._vendor.rich.constrain
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - options.update_width
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - open_tag.parameters.strip
    - style_definition.split
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - pip._vendor.rich.protocol.is_renderable
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - <builtin>.type
    - RE_HANDLER.match
    - typing.cast
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.jupyter
    functionSourceFile: pip._vendor.rich.jupyter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - html
    - text
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 21
    functionName: pip._vendor.rich.jupyter.JupyterRenderable.__init__
    functionSourceFile: pip._vendor.rich.jupyter
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - include
    - exclude
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 25
    functionName: pip._vendor.rich.jupyter.JupyterRenderable._repr_mimebundle_
    functionSourceFile: pip._vendor.rich.jupyter
    functionUses: 0
    functionsReached:
    - data.items
    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: data.items
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - include
    - exclude
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 41
    functionName: pip._vendor.rich.jupyter.JupyterMixin._repr_mimebundle_
    functionSourceFile: pip._vendor.rich.jupyter
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - text.replace
    - pip._vendor.rich.segment.Segment.simplify
    - get_console
    - JUPYTER_HTML_FORMAT.format
    - <builtin>.next
    - <builtin>.iter
    - get_console._render_buffer
    - data.items
    - pip._vendor.rich.jupyter._render_segments.escape
    - get_console.render
    - pip._vendor.rich.jupyter._render_segments
    - style.get_html_style
    - <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: get_console
    functionSourceFile: get_console
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: get_console.render
    functionSourceFile: get_console
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - segments
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 59
    functionName: pip._vendor.rich.jupyter._render_segments
    functionSourceFile: pip._vendor.rich.jupyter
    functionUses: 10
    functionsReached:
    - typing.NamedTuple.__init__
    - text.replace
    - pip._vendor.rich.segment.Segment.simplify
    - JUPYTER_HTML_FORMAT.format
    - <builtin>.iter
    - pip._vendor.rich.jupyter._render_segments.escape
    - <builtin>.next
    - style.get_html_style
    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: get_console._render_buffer
    functionSourceFile: get_console
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 60
    functionName: pip._vendor.rich.jupyter._render_segments.escape
    functionSourceFile: pip._vendor.rich.jupyter
    functionUses: 11
    functionsReached:
    - text.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.replace
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: JUPYTER_HTML_FORMAT.format
    functionSourceFile: <builtin>
    functionUses: 11
    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: IPython.display.display
    functionSourceFile: IPython
    functionUses: 40
    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: 1
    functionLinenumber: 98
    functionName: pip._vendor.rich.jupyter.print
    functionSourceFile: pip._vendor.rich.jupyter
    functionUses: 0
    functionsReached:
    - get_console
    - get_console.print
    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: get_console.print
    functionSourceFile: get_console
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.rich.terminal_theme
    functionSourceFile: pip._vendor.rich.terminal_theme
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.palette.Palette.__init__
    - pip._vendor.rich.terminal_theme.TerminalTheme.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30cba11340>
    argNames:
    - self
    - background
    - foreground
    - normal
    - bright
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 20
    functionName: pip._vendor.rich.terminal_theme.TerminalTheme.__init__
    functionSourceFile: pip._vendor.rich.terminal_theme
    functionUses: 1
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.palette.Palette.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 11
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: -1
    functionName: pip._vendor.rich.segment
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - threading.RLock
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - abc.ABC.title
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.console.Console.rule
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - logging.getLogger
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - importlib.metadata.entry_points
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - importlib_metadata.entry_points
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - <builtin>.range
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - <builtin>.__import__
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - <builtin>.ord
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - pip._vendor.rich.syntax.Syntax.get_theme
    - plain_text.replace
    - pip._vendor.rich.syntax.Syntax.__init__
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - inspect.isclass
    - style_definition.split
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - word_match.group
    - variants.get
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - random.randint
    - line.expand_tabs
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - <builtin>.next
    - pip._vendor.rich.console.Console._detect_color_system
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.pygments.plugin.iter_entry_points
    - style_stack.pop
    - pip._vendor.rich.rule.Rule.__init__
    - entrypoint.load
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 82
    functionName: pip._vendor.rich.segment.Segment.cell_length
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 91
    functionName: pip._vendor.rich.segment.Segment.__rich_repr__
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 100
    functionName: pip._vendor.rich.segment.Segment.__bool__
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    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: 105
    functionName: pip._vendor.rich.segment.Segment.is_control
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.segment.Segment
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 0
    functionsReached:
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - segment
    - cut
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 111
    functionName: pip._vendor.rich.segment.Segment._split_cells
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 1
    functionsReached:
    - <builtin>.int
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - character
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 46
    functionName: pip._vendor.rich.cells.get_character_cell_size
    functionSourceFile: pip._vendor.rich.cells
    functionUses: 95
    functionsReached:
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cut
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 149
    functionName: pip._vendor.rich.segment.Segment.split_cells
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.segment.Segment._split_cells
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    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: operator.attrgetter
    functionSourceFile: operator
    functionUses: 203
    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>.filter
    functionSourceFile: <builtin>
    functionUses: 52
    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: itertools.filterfalse
    functionSourceFile: itertools
    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: text.partition
    functionSourceFile: <builtin>
    functionUses: 68
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30c8d15c10>
    - <ast.Constant object at 0x7f30c8d154c0>
    argNames:
    - cls
    - line
    - length
    - style
    - pad
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 313
    functionName: pip._vendor.rich.segment.Segment.adjust_line_length
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 60
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    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: cropped_line.append
    functionSourceFile: <builtin>
    functionUses: 53
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - line
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 358
    functionName: pip._vendor.rich.segment.Segment.get_line_length
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 4
    functionsReached:
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    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: shaped_lines.extend
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4e9c760>
    argNames:
    - cls
    - lines
    - width
    - height
    - style
    - new_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 421
    functionName: pip._vendor.rich.segment.Segment.align_top
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 3
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4e9a7c0>
    argNames:
    - cls
    - lines
    - width
    - height
    - style
    - new_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 450
    functionName: pip._vendor.rich.segment.Segment.align_bottom
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 3
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4e99820>
    argNames:
    - cls
    - lines
    - width
    - height
    - style
    - new_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 479
    functionName: pip._vendor.rich.segment.Segment.align_middle
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 3
    functionsReached:
    - typing.NamedTuple.__init__
    - <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: style.update_link
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cache.get
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 12
    IfCount: 8
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - segments
    - cuts
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 589
    functionName: pip._vendor.rich.segment.Segment.divide
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - pip._vendor.rich.cells.cached_cell_len
    - segment.split_cells
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 12
    functionName: pip._vendor.rich.cells.cached_cell_len
    functionSourceFile: pip._vendor.rich.cells
    functionUses: 93
    functionsReached:
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    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: segment.split_cells
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4e91340>
    argNames:
    - self
    - segments
    - new_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 667
    functionName: pip._vendor.rich.segment.Segments.__init__
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 1
    functionsReached:
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 671
    functionName: pip._vendor.rich.segment.Segments.__rich_console__
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.segment.Segment.line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4e907c0>
    argNames:
    - self
    - lines
    - new_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 684
    functionName: pip._vendor.rich.segment.SegmentLines.__init__
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 0
    functionsReached:
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 695
    functionName: pip._vendor.rich.segment.SegmentLines.__rich_console__
    functionSourceFile: pip._vendor.rich.segment
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.segment.Segment.line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 15
    argDefaultValues: []
    argNames:
    - self
    - code
    - lexer
    - theme
    - dedent
    - line_numbers
    - start_line
    - line_range
    - highlight_lines
    - code_width
    - tab_size
    - word_wrap
    - background_color
    - indent_guides
    - padding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 263
    functionName: pip._vendor.rich.syntax.Syntax.__init__
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 11
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.__import__
    - <builtin>.sum
    - pip._vendor.rich.syntax.Syntax.get_theme
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - abc.ABC.title
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - RE_COLOR.match
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.all
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - color_rgb.split
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: -1
    functionName: pip._vendor.rich.cells
    functionSourceFile: pip._vendor.rich.cells
    functionUses: 0
    functionsReached:
    - <builtin>.reversed
    - functools.lru_cache
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - <builtin>.sum
    - lines.append
    - <builtin>.print
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.cached_cell_len
    - re.compile
    - pip._vendor.rich.cells.chop_cells
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.ord
    functionSourceFile: <builtin>
    functionUses: 192
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - codepoint
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: pip._vendor.rich.cells._get_codepoint_cell_size
    functionSourceFile: pip._vendor.rich.cells
    functionUses: 96
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30da58cd30>
    argNames:
    - text
    - max_size
    - position
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 124
    functionName: pip._vendor.rich.cells.chop_cells
    functionSourceFile: pip._vendor.rich.cells
    functionUses: 59
    functionsReached:
    - <builtin>.reversed
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - lines.append
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    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: 408
    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: pip._vendor.rich._cell_widths
    functionSourceFile: pip._vendor.rich._cell_widths
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.syntax
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.lexers.guess_lexer_for_filename
    - pathlib.Path
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - dataclasses.is_dataclass
    - pathlib.Path.read_text
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - parser.parse_args
    - abc.ABC.__init__
    - abc.ABC.title
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - _alias.lower
    - pip._vendor.rich.console.get_windows_console_features
    - os.path.basename
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - matching_lexers.add
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - pip._vendor.pygments.lexers.get_lexer_by_name
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - os.path.splitext
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - argparse.ArgumentParser
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - pip._vendor.rich.syntax.Syntax.guess_lexer
    - importlib.metadata.entry_points
    - match.span
    - jupyter_lines.isdigit
    - lexer.analyse_text
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - importlib_metadata.entry_points
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.pygments.lexers._iter_lexerclasses
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - <builtin>.__import__
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - pattern.match
    - ANSI_COLOR_NAMES.get
    - pip._vendor.pygments.lexers._load_lexers
    - line.split
    - result.sort
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - ext.lstrip
    - new_segments.insert
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.control.Control.move_to
    - platform.system
    - typing.cast
    - <builtin>.ord
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - pip._vendor.rich.syntax.Syntax.from_path
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - result.append
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - pip._vendor.rich.syntax.Syntax.get_theme
    - LEXERS.values
    - re.compile
    - plain_text.replace
    - pip._vendor.rich.syntax.Syntax.__init__
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - inspect.isclass
    - word_match.group
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - style_definition.split
    - variants.get
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - matching_lexers.pop
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - random.randint
    - line.expand_tabs
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - pip._vendor.pygments.lexers._fn_matches
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - sys.stdin.read
    - parser.add_argument
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - fnmatch.translate
    - pip._vendor.pygments.plugin.iter_entry_points
    - style_stack.pop
    - entrypoint.load
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.syntax.SyntaxTheme
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - token_type
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 127
    functionName: pip._vendor.rich.syntax.SyntaxTheme.get_style_for_token
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 132
    functionName: pip._vendor.rich.syntax.SyntaxTheme.get_background_style
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - theme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 140
    functionName: pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 22
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.__import__
    - <builtin>.sum
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - abc.ABC.title
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.find_plugin_styles
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - RE_COLOR.match
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.all
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - color_rgb.split
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 68
    functionName: pip._vendor.pygments.styles.get_style_by_name
    functionSourceFile: pip._vendor.pygments.styles
    functionUses: 43
    functionsReached:
    - abc.ABC.title
    - importlib.metadata.entry_points.select
    - <builtin>.__import__
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - pip._vendor.pygments.plugin.find_plugin_styles
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ClassNotFound
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - token_type
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 153
    functionName: pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_style_for_token
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 8
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - abc.ABC.style_for_token
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - <builtin>.int
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    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: abc.ABC.style_for_token
    functionSourceFile: abc
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 175
    functionName: pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_background_style
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - style_map
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 182
    functionName: pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 22
    functionsReached:
    - pip._vendor.rich.style.Style.null
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - token_type
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 188
    functionName: pip._vendor.rich.syntax.ANSISyntaxTheme.get_style_for_token
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 8
    functionsReached:
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 208
    functionName: pip._vendor.rich.syntax.ANSISyntaxTheme.get_background_style
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 252
    functionName: pip._vendor.rich.syntax.Syntax.get_theme
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 21
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.__import__
    - <builtin>.sum
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - abc.ABC.title
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - RE_COLOR.match
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.all
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - color_rgb.split
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 16
    argDefaultValues:
    - <ast.Constant object at 0x7f30d9bda250>
    - <ast.Constant object at 0x7f30d9bda220>
    - <ast.Name object at 0x7f30d9bda1f0>
    - <ast.Constant object at 0x7f30d9bda1c0>
    - <ast.Constant object at 0x7f30d9bda190>
    - <ast.Constant object at 0x7f30d9bda160>
    - <ast.Constant object at 0x7f30d9bda130>
    - <ast.Constant object at 0x7f30d9bda100>
    - <ast.Constant object at 0x7f30d9bda0d0>
    - <ast.Constant object at 0x7f30d9bda0a0>
    - <ast.Constant object at 0x7f30d9bda070>
    - <ast.Constant object at 0x7f30d9bda040>
    - <ast.Constant object at 0x7f30d9bd8fd0>
    - <ast.Constant object at 0x7f30d9bd8fa0>
    argNames:
    - cls
    - path
    - encoding
    - lexer
    - theme
    - dedent
    - line_numbers
    - line_range
    - start_line
    - highlight_lines
    - code_width
    - tab_size
    - word_wrap
    - background_color
    - indent_guides
    - padding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 302
    functionName: pip._vendor.rich.syntax.Syntax.from_path
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 1
    functionsReached:
    - pip._vendor.pygments.lexers.guess_lexer_for_filename
    - <builtin>.isinstance
    - pathlib.Path
    - <builtin>.__import__
    - <builtin>.sum
    - pip._vendor.rich.syntax.Syntax.get_theme
    - pathlib.Path.read_text
    - LEXERS.values
    - pattern.match
    - re.compile
    - pip._vendor.pygments.lexers.get_lexer_by_name
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - pip._vendor.rich.style.Style.null
    - pip._vendor.pygments.lexers._load_lexers
    - result.sort
    - pip._vendor.rich.syntax.Syntax.__init__
    - abc.ABC.title
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - pip._vendor.pygments.plugin.find_plugin_styles
    - os.path.splitext
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - matching_lexers.pop
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - random.randint
    - ext.lstrip
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.pygments.lexers._fn_matches
    - pip._vendor.rich.syntax.Syntax.guess_lexer
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - _alias.lower
    - <builtin>.int
    - os.path.basename
    - importlib.metadata.entry_points.get
    - lexer.analyse_text
    - fnmatch.translate
    - RE_COLOR.match
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - <builtin>.all
    - importlib_metadata.entry_points
    - pip._vendor.pygments.lexers._iter_lexerclasses
    - matching_lexers.add
    - color_rgb.split
    - entrypoint.load
    - result.append
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pathlib.Path
    functionSourceFile: pathlib
    functionUses: 115
    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: pathlib.Path.read_text
    functionSourceFile: pathlib
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d9bd8370>
    argNames:
    - cls
    - path
    - code
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 365
    functionName: pip._vendor.rich.syntax.Syntax.guess_lexer
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 2
    functionsReached:
    - pip._vendor.pygments.lexers.guess_lexer_for_filename
    - <builtin>.__import__
    - LEXERS.values
    - pattern.match
    - re.compile
    - pip._vendor.pygments.lexers.get_lexer_by_name
    - pip._vendor.pygments.lexers._load_lexers
    - result.sort
    - <builtin>.set
    - os.path.splitext
    - matching_lexers.pop
    - <builtin>.len
    - ext.lstrip
    - <builtin>.sorted
    - pip._vendor.pygments.lexers._fn_matches
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - _alias.lower
    - os.path.basename
    - importlib.metadata.entry_points.get
    - lexer.analyse_text
    - fnmatch.translate
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - matching_lexers.add
    - pip._vendor.pygments.lexers._iter_lexerclasses
    - importlib_metadata.entry_points
    - entrypoint.load
    - result.append
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - _fn
    - _text
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 261
    functionName: pip._vendor.pygments.lexers.guess_lexer_for_filename
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 6
    functionsReached:
    - <builtin>.__import__
    - pattern.match
    - re.compile
    - pip._vendor.pygments.lexers._load_lexers
    - result.sort
    - <builtin>.set
    - matching_lexers.pop
    - <builtin>.len
    - <builtin>.sorted
    - pip._vendor.pygments.lexers._fn_matches
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - os.path.basename
    - importlib.metadata.entry_points.get
    - lexer.analyse_text
    - fnmatch.translate
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - matching_lexers.add
    - pip._vendor.pygments.lexers._iter_lexerclasses
    - importlib_metadata.entry_points
    - entrypoint.load
    - result.append
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ClassNotFound
    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.splitext
    functionSourceFile: <builtin>
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ext.lstrip
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - _alias
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 109
    functionName: pip._vendor.pygments.lexers.get_lexer_by_name
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 9
    functionsReached:
    - importlib.metadata.entry_points.select
    - _alias.lower
    - <builtin>.__import__
    - importlib.metadata.entry_points.get
    - LEXERS.values
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - importlib.metadata.entry_points
    - entrypoint.load
    - pip._vendor.pygments.lexers._load_lexers
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ClassNotFound
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 406
    functionName: pip._vendor.rich.syntax.Syntax._get_base_style
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 4
    functionsReached:
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_background_style
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_background_style
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - token_type
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 411
    functionName: pip._vendor.rich.syntax.Syntax._get_token_color
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_style_for_token
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - abc.ABC.style_for_token
    - <builtin>.tuple
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - <builtin>.int
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_style_for_token
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    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: 4
    functionLinenumber: 424
    functionName: pip._vendor.rich.syntax.Syntax.lexer
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 0
    functionsReached:
    - importlib.metadata.entry_points.select
    - _alias.lower
    - <builtin>.isinstance
    - <builtin>.__import__
    - importlib.metadata.entry_points.get
    - LEXERS.values
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - pip._vendor.pygments.lexers.get_lexer_by_name
    - importlib_metadata.entry_points
    - importlib.metadata.entry_points
    - entrypoint.load
    - pip._vendor.pygments.lexers._load_lexers
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d9bd3220>
    argNames:
    - self
    - code
    - line_range
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 442
    functionName: pip._vendor.rich.syntax.Syntax.highlight
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 2
    functionsReached:
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_background_style
    - <builtin>.isinstance
    - pip._vendor.rich.syntax._get_code_index_for_syntax_position
    - <builtin>.sum
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_style_for_token
    - token.endswith
    - pip._vendor.rich.syntax.Syntax.highlight.line_tokenize
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - pip._vendor.rich.syntax.Syntax.highlight.tokens_to_spans
    - abc.ABC.style_for_token
    - <builtin>.tuple
    - <builtin>.min
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.text.Text.append_tokens
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.stylize
    - <builtin>.next
    - token.partition
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_background_style
    - pip._vendor.rich.syntax.Syntax._get_base_style
    - <builtin>.int
    - match.start
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_style_for_token
    - RE_COLOR.match
    - <builtin>.all
    - re.finditer
    - pip._vendor.rich.syntax.Syntax._apply_stylized_ranges
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 480
    functionName: pip._vendor.rich.syntax.Syntax.highlight.line_tokenize
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 4
    functionsReached:
    - token.partition
    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: token.partition
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 489
    functionName: pip._vendor.rich.syntax.Syntax.highlight.tokens_to_spans
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_style_for_token
    - token.endswith
    - pip._vendor.rich.syntax.Syntax.highlight.line_tokenize
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - abc.ABC.style_for_token
    - <builtin>.tuple
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.color.Color.parse
    - token.partition
    - <builtin>.next
    - <builtin>.int
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_style_for_token
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    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: token.endswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 753
    functionName: pip._vendor.rich.syntax.Syntax._apply_stylized_ranges
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 3
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.syntax._get_code_index_for_syntax_position
    - <builtin>.len
    - match.start
    - <builtin>.min
    - pip._vendor.rich.text.Text.stylize
    - re.finditer
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - style
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 527
    functionName: pip._vendor.rich.syntax.Syntax.stylize_range
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d9b9ad00>
    argNames:
    - self
    - blend
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 541
    functionName: pip._vendor.rich.syntax.Syntax._get_line_numbers_color
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 3
    functionsReached:
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_background_style
    - <builtin>.isinstance
    - <builtin>.sum
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_style_for_token
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - pip._vendor.rich.syntax.Syntax._get_token_color
    - abc.ABC.style_for_token
    - <builtin>.tuple
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.color.Color.from_triplet
    - pip._vendor.rich.color.blend_rgb
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_background_style
    - <builtin>.int
    - pip._vendor.rich.color.Color.default
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_style_for_token
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    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: 1
    functionLinenumber: 557
    functionName: pip._vendor.rich.syntax.Syntax._numbers_column_width
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - console
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 567
    functionName: pip._vendor.rich.syntax.Syntax._get_number_styles
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 2
    functionsReached:
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_background_style
    - <builtin>.isinstance
    - <builtin>.sum
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_style_for_token
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - pip._vendor.rich.syntax.Syntax._get_token_color
    - abc.ABC.style_for_token
    - <builtin>.tuple
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.color.Color.from_triplet
    - pip._vendor.rich.color.blend_rgb
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.style.Style.chain
    - pip._vendor.rich.color.Color.parse
    - <builtin>.next
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_background_style
    - pip._vendor.rich.syntax.Syntax._get_base_style
    - <builtin>.int
    - pip._vendor.rich.color.Color.default
    - pip._vendor.rich.syntax.Syntax._get_line_numbers_color
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_style_for_token
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 590
    functionName: pip._vendor.rich.syntax.Syntax.__rich_measure__
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.padding.Padding.unpack
    - <builtin>.max
    - typing.cast
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 608
    functionName: pip._vendor.rich.syntax.Syntax.__rich_console__
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_background_style
    - <builtin>.sum
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_style_for_token
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - pip._vendor.rich.syntax.Syntax.highlight.tokens_to_spans
    - <builtin>.str
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - code.endswith
    - <builtin>.tuple
    - line.render
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich.text.Text.right_crop
    - <builtin>.hash
    - part.plain.endswith
    - functools.reduce
    - processed_code.expandtabs
    - pip._vendor.rich.cells.set_cell_size
    - options.update
    - pip._vendor.rich.text.Text.remove_suffix
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.syntax.Syntax._get_number_styles
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.chain
    - pip._vendor.rich.text.Text.stylize
    - <builtin>.zip
    - token.partition
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_background_style
    - pip._vendor.rich.syntax.Syntax._get_syntax
    - pip._vendor.rich.syntax.Syntax._get_line_numbers_color
    - match.start
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.syntax.Syntax._apply_stylized_ranges
    - pip._vendor.rich.control.strip_control_codes
    - token.endswith
    - textwrap.dedent
    - pip._vendor.rich.syntax.Syntax.highlight.line_tokenize
    - re.escape
    - marshal.dumps
    - <builtin>.enumerate
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - abc.ABC.background_color.lower
    - console.render_lines
    - pip._vendor.rich.text.Text.append_tokens
    - pip._vendor.rich.color.Color.from_triplet
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.text.Text.detect_indentation
    - match.span
    - pip._vendor.rich.syntax.Syntax._get_base_style
    - match.group
    - pip._vendor.rich.syntax.Syntax._process_code
    - render_options.update
    - RE_COLOR.match
    - <builtin>.divmod
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.text.Text.copy
    - <builtin>.range
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.isinstance
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - pip._vendor.rich.syntax.Syntax._get_token_color
    - pip._vendor.rich.containers.Lines.pop
    - line.split
    - line.stylize
    - re_indent.match
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.text.Text.with_indent_guides
    - console.render
    - pip._vendor.rich.color.blend_rgb
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.syntax.Syntax.highlight
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich._loop.loop_first
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.segment.Segments.__init__
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - color_rgb.split
    - pip._vendor.rich.syntax._get_code_index_for_syntax_position
    - re.compile
    - abc.ABC.style_for_token
    - pip._vendor.rich.text.Text.expand_tabs
    - typing.NamedTuple.__init__
    - random.randint
    - <builtin>.next
    - pip._vendor.rich.padding.Padding.__init__
    - new_lines.extend
    - pip._vendor.rich.color.Color.default
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_style_for_token
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 13
    IfCount: 13
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 619
    functionName: pip._vendor.rich.syntax.Syntax._get_syntax
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_background_style
    - <builtin>.sum
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_style_for_token
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - pip._vendor.rich.syntax.Syntax.highlight.tokens_to_spans
    - <builtin>.str
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - code.endswith
    - <builtin>.tuple
    - line.render
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich.text.Text.right_crop
    - <builtin>.hash
    - part.plain.endswith
    - functools.reduce
    - processed_code.expandtabs
    - pip._vendor.rich.cells.set_cell_size
    - options.update
    - pip._vendor.rich.text.Text.remove_suffix
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.syntax.Syntax._get_number_styles
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.chain
    - pip._vendor.rich.text.Text.stylize
    - <builtin>.zip
    - token.partition
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_background_style
    - pip._vendor.rich.syntax.Syntax._get_line_numbers_color
    - match.start
    - pip._vendor.rich.syntax.Syntax._apply_stylized_ranges
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - token.endswith
    - textwrap.dedent
    - pip._vendor.rich.syntax.Syntax.highlight.line_tokenize
    - re.escape
    - marshal.dumps
    - <builtin>.enumerate
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - abc.ABC.background_color.lower
    - console.render_lines
    - pip._vendor.rich.text.Text.append_tokens
    - pip._vendor.rich.color.Color.from_triplet
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.text.Text.detect_indentation
    - match.span
    - pip._vendor.rich.syntax.Syntax._get_base_style
    - match.group
    - pip._vendor.rich.syntax.Syntax._process_code
    - render_options.update
    - RE_COLOR.match
    - <builtin>.divmod
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.text.Text.copy
    - <builtin>.range
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.isinstance
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - pip._vendor.rich.syntax.Syntax._get_token_color
    - pip._vendor.rich.containers.Lines.pop
    - line.split
    - line.stylize
    - re_indent.match
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.text.Text.with_indent_guides
    - console.render
    - pip._vendor.rich.color.blend_rgb
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.syntax.Syntax.highlight
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich._loop.loop_first
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - color_rgb.split
    - pip._vendor.rich.syntax._get_code_index_for_syntax_position
    - re.compile
    - abc.ABC.style_for_token
    - pip._vendor.rich.text.Text.expand_tabs
    - typing.NamedTuple.__init__
    - random.randint
    - <builtin>.next
    - new_lines.extend
    - pip._vendor.rich.color.Color.default
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_style_for_token
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Tuple object at 0x7f30ca81dac0>
    argNames:
    - self
    - renderable
    - pad
    - style
    - expand
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 33
    functionName: pip._vendor.rich.padding.Padding.__init__
    functionSourceFile: pip._vendor.rich.padding
    functionUses: 10
    functionsReached:
    - <builtin>.len
    - typing.cast
    - <builtin>.isinstance
    - pip._vendor.rich.padding.Padding.unpack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - code
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 783
    functionName: pip._vendor.rich.syntax.Syntax._process_code
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 2
    functionsReached:
    - code.endswith
    - processed_code.expandtabs
    - textwrap.dedent
    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: render_options.update
    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: line.render
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - values
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 6
    functionName: pip._vendor.rich._loop.loop_first
    functionSourceFile: pip._vendor.rich._loop
    functionUses: 3
    functionsReached:
    - <builtin>.next
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: match.start
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - newlines_offsets
    - position
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 804
    functionName: pip._vendor.rich.syntax._get_code_index_for_syntax_position
    functionSourceFile: pip._vendor.rich.syntax
    functionUses: 4
    functionsReached:
    - <builtin>.len
    - <builtin>.min
    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: code.endswith
    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: textwrap.dedent
    functionSourceFile: textwrap
    functionUses: 30
    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: processed_code.expandtabs
    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: argparse.ArgumentParser
    functionSourceFile: argparse
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.add_argument
    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: parser.parse_args
    functionSourceFile: <builtin>
    functionUses: 24
    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.stdin.read
    functionSourceFile: sys
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pygments.styles
    functionSourceFile: pip._vendor.pygments.styles
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 81
    functionName: pip._vendor.pygments.plugin.find_plugin_styles
    functionSourceFile: pip._vendor.pygments.plugin
    functionUses: 45
    functionsReached:
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.ABC.title
    functionSourceFile: abc
    functionUses: 44
    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>.__import__
    functionSourceFile: <builtin>
    functionUses: 118
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 99
    functionName: pip._vendor.pygments.styles.get_all_styles
    functionSourceFile: pip._vendor.pygments.styles
    functionUses: 5
    functionsReached:
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - pip._vendor.pygments.plugin.find_plugin_styles
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.util
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30e079bdf0>
    - <ast.Constant object at 0x7f30e079b400>
    argNames:
    - options
    - optname
    - allowed
    - default
    - normcase
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: pip._vendor.pygments.util.get_choice_opt
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 9
    functionsReached:
    - options.get
    - string.lower
    linkageType: pythonLinkage
    raised:
    - OptionError
    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: options.get
    functionSourceFile: <builtin>
    functionUses: 43
    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: string.lower
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8be8670>
    argNames:
    - options
    - optname
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: pip._vendor.pygments.util.get_bool_opt
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 23
    functionsReached:
    - <builtin>.bool
    - <builtin>.isinstance
    - options.get
    - string.lower
    linkageType: pythonLinkage
    raised:
    - OptionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e57f6670>
    argNames:
    - options
    - optname
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 85
    functionName: pip._vendor.pygments.util.get_int_opt
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 15
    functionsReached:
    - options.get
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - OptionError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca81d700>
    argNames:
    - options
    - optname
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 99
    functionName: pip._vendor.pygments.util.get_list_opt
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 11
    functionsReached:
    - val.split
    - <builtin>.list
    - <builtin>.isinstance
    - options.get
    linkageType: pythonLinkage
    raised:
    - OptionError
    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: val.split
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 116
    functionName: pip._vendor.pygments.util.docstring_headline
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 5
    functionsReached:
    - obj.__doc__.strip
    - res.append
    - 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: obj.__doc__.strip
    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: line.strip
    functionSourceFile: <builtin>
    functionUses: 109
    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: res.append
    functionSourceFile: <builtin>
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 128
    functionName: pip._vendor.pygments.util.make_analysator
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 1
    functionsReached:
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 130
    functionName: pip._vendor.pygments.util.make_analysator.text_analyse
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 0
    functionsReached:
    - <builtin>.float
    - <builtin>.max
    - <builtin>.min
    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>.float
    functionSourceFile: <builtin>
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - text
    - regex
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 145
    functionName: pip._vendor.pygments.util.shebang_matches
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 3
    functionsReached:
    - text.find
    - text.lower
    - x.startswith
    - re.compile
    - first_line.startswith
    - regex.search
    - split_path_re.split
    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.find
    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: text.lower
    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: first_line.startswith
    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: split_path_re.split
    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: x.startswith
    functionSourceFile: <builtin>
    functionUses: 18
    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: regex.search
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - text
    - regex
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 190
    functionName: pip._vendor.pygments.util.doctype_matches
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 1
    functionsReached:
    - doctype.strip
    - m.group
    - re.compile
    - doctype_lookup_re.search
    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: doctype_lookup_re.search
    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: m.group
    functionSourceFile: <builtin>
    functionUses: 113
    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: doctype.strip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 203
    functionName: pip._vendor.pygments.util.html_doctype_matches
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 0
    functionsReached:
    - doctype.strip
    - m.group
    - re.compile
    - pip._vendor.pygments.util.doctype_matches
    - doctype_lookup_re.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 211
    functionName: pip._vendor.pygments.util.looks_like_xml
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 0
    functionsReached:
    - tag_re.search
    - <builtin>.hash
    - doctype_lookup_re.search
    - xml_decl_re.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xml_decl_re.match
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tag_re.search
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - c
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 227
    functionName: pip._vendor.pygments.util.surrogatepair
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d568b2e0>
    - <ast.Constant object at 0x7f30d568b340>
    argNames:
    - var_name
    - seq
    - raw
    - indent_level
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 236
    functionName: pip._vendor.pygments.util.format_lines
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 0
    functionsReached:
    - lines.append
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Tuple object at 0x7f30d8c01880>
    argNames:
    - it
    - already_seen
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 255
    functionName: pip._vendor.pygments.util.duplicates_removed
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - seen.add
    - lst.append
    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: lst.append
    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: seen.add
    functionSourceFile: <builtin>
    functionUses: 69
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 277
    functionName: pip._vendor.pygments.util.Future.get
    functionSourceFile: pip._vendor.pygments.util
    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:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 281
    functionName: pip._vendor.pygments.util.guess_decode
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 10
    functionsReached:
    - text.decode
    - locale.getpreferredencoding
    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.decode
    functionSourceFile: <builtin>
    functionUses: 11
    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: locale.getpreferredencoding
    functionSourceFile: locale
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - text
    - term
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 302
    functionName: pip._vendor.pygments.util.guess_decode_from_terminal
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 3
    functionsReached:
    - text.decode
    - <builtin>.getattr
    - locale.getpreferredencoding
    - pip._vendor.pygments.util.guess_decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - term
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 319
    functionName: pip._vendor.pygments.util.terminal_encoding
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 3
    functionsReached:
    - <builtin>.getattr
    - locale.getpreferredencoding
    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: 329
    functionName: pip._vendor.pygments.util.UnclosingTextIOWrapper.close
    functionSourceFile: pip._vendor.pygments.util
    functionUses: 3
    functionsReached:
    - io.TextIOWrapper.flush
    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: io.TextIOWrapper.flush
    functionSourceFile: io
    functionUses: 11
    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: pip._vendor.pygments.plugin
    functionSourceFile: pip._vendor.pygments.plugin
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - group_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 47
    functionName: pip._vendor.pygments.plugin.iter_entry_points
    functionSourceFile: pip._vendor.pygments.plugin
    functionUses: 77
    functionsReached:
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - importlib_metadata.entry_points
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.metadata.entry_points
    functionSourceFile: importlib
    functionUses: 78
    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: importlib_metadata.entry_points
    functionSourceFile: importlib_metadata
    functionUses: 78
    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: importlib.metadata.entry_points.select
    functionSourceFile: importlib
    functionUses: 78
    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: importlib.metadata.entry_points.get
    functionSourceFile: importlib
    functionUses: 78
    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: 2
    functionLinenumber: 71
    functionName: pip._vendor.pygments.plugin.find_plugin_lexers
    functionSourceFile: pip._vendor.pygments.plugin
    functionUses: 25
    functionsReached:
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entrypoint.load
    functionSourceFile: <builtin>
    functionUses: 77
    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: 2
    functionLinenumber: 76
    functionName: pip._vendor.pygments.plugin.find_plugin_formatters
    functionSourceFile: pip._vendor.pygments.plugin
    functionUses: 10
    functionsReached:
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    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: 2
    functionLinenumber: 86
    functionName: pip._vendor.pygments.plugin.find_plugin_filters
    functionSourceFile: pip._vendor.pygments.plugin
    functionUses: 14
    functionsReached:
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.pkg_resources
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - dists.append
    - pip._vendor.pkg_resources._call_aside
    - pip._vendor.pkg_resources.Environment.scan
    - ws.add
    - darwinVersionString.match
    - <builtin>.__import__
    - dist.activate
    - operator.attrgetter
    - ws.resolve
    - re.compile
    - dists.sort
    - provDarwin.group
    - _canonicalize_regex.sub
    - pip._vendor.pkg_resources.register_finder
    - pip._vendor.pkg_resources._always_object
    - keys2.append
    - pip._vendor.pkg_resources._initialize
    - <builtin>.locals
    - pip._vendor.pkg_resources.Environment.add
    - keys.append
    - warnings.filterwarnings
    - ws.add_entry
    - pip._vendor.pkg_resources.WorkingSet._build_from_requirements
    - item.endswith
    - pip._vendor.pkg_resources._declare_state
    - <builtin>.tuple
    - <builtin>.globals
    - dist.insert_on
    - pip._vendor.pkg_resources.register_namespace_handler
    - ws.require
    - <builtin>.list
    - pip._vendor.pkg_resources.register_loader_type
    - pip._vendor.pkg_resources._initialize_master_working_set
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.map
    - pip._vendor.pkg_resources.WorkingSet.add
    - pip._vendor.pkg_resources.Environment.can_add
    - <builtin>.iter
    - pip._vendor.pkg_resources.EmptyProvider.__init__
    - <builtin>.next
    - g.update
    - <builtin>.type
    - pip._vendor.pkg_resources.find_distributions
    - typing.cast
    - pip._vendor.pkg_resources.WorkingSet.__init__
    - pip._internal.utils._jaraco_text.join_continuation
    - pkgutil.get_importer
    - itertools.chain.from_iterable
    - dist.has_version
    - pip._vendor.pkg_resources.DefaultProvider._register
    - reqMac.group
    - <builtin>.int
    - name.startswith
    - pip._internal.utils._jaraco_text.yield_lines
    - <builtin>.hasattr
    - dict.fromkeys
    - warnings.warn
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.compatible_platforms
    - pip._vendor.pkg_resources.Environment.__init__
    - macosVersionString.match
    - provMac.group
    - <builtin>.getattr
    - pip._vendor.pkg_resources.WorkingSet.add_entry
    - _state_vars.update
    - <builtin>.dir
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - pip._vendor.pkg_resources.ResourceManager.__init__
    - pip._vendor.pkg_resources.WorkingSet._build_master
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - vartype
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 142
    functionName: pip._vendor.pkg_resources._declare_state
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 3
    functionsReached:
    - <builtin>.globals
    - dict.fromkeys
    - _state_vars.update
    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>.globals
    functionSourceFile: <builtin>
    functionUses: 56
    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: dict.fromkeys
    functionSourceFile: <builtin>
    functionUses: 11
    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: _state_vars.update
    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: 1
    functionLinenumber: 147
    functionName: pip._vendor.pkg_resources.__getstate__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - _state_vars.items
    - <builtin>.globals
    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: _state_vars.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 155
    functionName: pip._vendor.pkg_resources.__setstate__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - state.items
    - <builtin>.globals
    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: state.items
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 162
    functionName: pip._vendor.pkg_resources._sget_dict
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - val.copy
    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: val.copy
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - key
    - ob
    - state
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 166
    functionName: pip._vendor.pkg_resources._sset_dict
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - ob.clear
    - ob.update
    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: ob.clear
    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: ob.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 171
    functionName: pip._vendor.pkg_resources._sget_object
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - val.__getstate__
    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: val.__getstate__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - key
    - ob
    - state
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 175
    functionName: pip._vendor.pkg_resources._sset_object
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - ob.__setstate__
    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: ob.__setstate__
    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: pip._vendor.pkg_resources.<lambda1>
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 182
    functionName: pip._vendor.pkg_resources.get_supported_platform
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - sysconfig.get_platform.startswith
    - sysconfig.get_platform
    - plistlib.readPlist
    - <builtin>.int
    - pip._vendor.pkg_resources._macos_arch
    - _cache.append
    - pip._vendor.pkg_resources.get_build_platform
    - os.path.exists
    - pip._vendor.pkg_resources._macos_vers
    - platform.mac_ver
    - macosVersionString.match
    - m.group
    - version.split
    - os.uname
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 430
    functionName: pip._vendor.pkg_resources.get_build_platform
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - sysconfig.get_platform.startswith
    - plistlib.readPlist
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.pkg_resources._macos_arch
    - _cache.append
    - os.path.exists
    - pip._vendor.pkg_resources._macos_vers
    - platform.mac_ver
    - version.split
    - os.uname
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: macosVersionString.match
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues:
    - <ast.List object at 0x7f30ca81d5b0>
    argNames:
    - _cache
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 410
    functionName: pip._vendor.pkg_resources._macos_vers
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - plistlib.readPlist
    - _cache.append
    - os.path.exists
    - platform.mac_ver
    - version.split
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 295
    functionName: pip._vendor.pkg_resources.ResolutionError.__repr__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 310
    functionName: pip._vendor.pkg_resources.VersionConflict.dist
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 314
    functionName: pip._vendor.pkg_resources.VersionConflict.req
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 317
    functionName: pip._vendor.pkg_resources.VersionConflict.report
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.locals
    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>.locals
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - required_by
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 320
    functionName: pip._vendor.pkg_resources.VersionConflict.with_context
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 340
    functionName: pip._vendor.pkg_resources.ContextualVersionConflict.required_by
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 353
    functionName: pip._vendor.pkg_resources.DistributionNotFound.req
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 357
    functionName: pip._vendor.pkg_resources.DistributionNotFound.requirers
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 361
    functionName: pip._vendor.pkg_resources.DistributionNotFound.requirers_str
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 366
    functionName: pip._vendor.pkg_resources.DistributionNotFound.report
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - <builtin>.locals
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 369
    functionName: pip._vendor.pkg_resources.DistributionNotFound.__str__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.locals
    - pip._vendor.pkg_resources.DistributionNotFound.report
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - loader_type
    - provider_factory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 387
    functionName: pip._vendor.pkg_resources.register_loader_type
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - moduleOrReq
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 397
    functionName: pip._vendor.pkg_resources.get_provider
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 10
    functionsReached:
    - inspect.getmro
    - working_set.find
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.__import__
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.getattr
    - pip._vendor.pkg_resources._always_object
    - <builtin>.type
    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: working_set.find
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - registry
    - ob
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3229
    functionName: pip._vendor.pkg_resources._find_adapter
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 39
    functionsReached:
    - inspect.getmro
    - <builtin>.getattr
    - pip._vendor.pkg_resources._always_object
    - <builtin>.type
    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: platform.mac_ver
    functionSourceFile: platform
    functionUses: 65
    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: 210
    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: plistlib.readPlist
    functionSourceFile: plistlib
    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: version.split
    functionSourceFile: <builtin>
    functionUses: 17
    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: _cache.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - machine
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 426
    functionName: pip._vendor.pkg_resources._macos_arch
    functionSourceFile: pip._vendor.pkg_resources
    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: sysconfig.get_platform
    functionSourceFile: sysconfig
    functionUses: 43
    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: sysconfig.get_platform.startswith
    functionSourceFile: sysconfig
    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: os.uname
    functionSourceFile: os
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - provided
    - required
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 461
    functionName: pip._vendor.pkg_resources.compatible_platforms
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 16
    functionsReached:
    - reqMac.group
    - <builtin>.int
    - darwinVersionString.match
    - macosVersionString.match
    - provMac.group
    - provDarwin.group
    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: darwinVersionString.match
    functionSourceFile: <builtin>
    functionUses: 17
    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: provDarwin.group
    functionSourceFile: <builtin>
    functionUses: 17
    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: reqMac.group
    functionSourceFile: <builtin>
    functionUses: 17
    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: provMac.group
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - dist_spec
    - script_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 510
    functionName: pip._vendor.pkg_resources.run_script
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - sys._getframe
    - ns.clear
    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: ns.clear
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - dist
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 523
    functionName: pip._vendor.pkg_resources.get_distribution
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 3
    functionsReached:
    - inspect.getmro
    - working_set.find
    - <builtin>.isinstance
    - <builtin>.__import__
    - pip._vendor.pkg_resources._always_object
    - <builtin>.str
    - item.endswith
    - pip._vendor.pkg_resources.Requirement.parse
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.map
    - <builtin>.iter
    - <builtin>.next
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.get_provider
    - pip._vendor.pkg_resources.parse_requirements
    - <builtin>.getattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3214
    functionName: pip._vendor.pkg_resources.Requirement.parse
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 13
    functionsReached:
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._internal.utils._jaraco_text.yield_lines
    - <builtin>.map
    - pip._vendor.pkg_resources.parse_requirements
    - item.endswith
    - <builtin>.iter
    - <builtin>.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - dist
    - group
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 534
    functionName: pip._vendor.pkg_resources.load_entry_point
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - working_set.find
    - <builtin>.isinstance
    - <builtin>.__import__
    - pip._vendor.pkg_resources._always_object
    - <builtin>.str
    - item.endswith
    - pip._vendor.pkg_resources.Requirement.parse
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.map
    - <builtin>.iter
    - <builtin>.next
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._vendor.pkg_resources.get_distribution
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.get_provider
    - pip._vendor.pkg_resources.parse_requirements
    - <builtin>.getattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f211d9a0>
    argNames:
    - dist
    - group
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 539
    functionName: pip._vendor.pkg_resources.get_entry_map
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - working_set.find
    - <builtin>.isinstance
    - <builtin>.__import__
    - pip._vendor.pkg_resources._always_object
    - <builtin>.str
    - item.endswith
    - pip._vendor.pkg_resources.Requirement.parse
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.map
    - <builtin>.iter
    - <builtin>.next
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._vendor.pkg_resources.get_distribution
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.get_provider
    - pip._vendor.pkg_resources.parse_requirements
    - <builtin>.getattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - dist
    - group
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 544
    functionName: pip._vendor.pkg_resources.get_entry_info
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - working_set.find
    - <builtin>.isinstance
    - <builtin>.__import__
    - pip._vendor.pkg_resources._always_object
    - <builtin>.str
    - item.endswith
    - pip._vendor.pkg_resources.Requirement.parse
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.map
    - <builtin>.iter
    - <builtin>.next
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._vendor.pkg_resources.get_distribution
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.get_provider
    - pip._vendor.pkg_resources.parse_requirements
    - <builtin>.getattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 550
    functionName: pip._vendor.pkg_resources.IMetadataProvider.has_metadata
    functionSourceFile: pip._vendor.pkg_resources
    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:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 553
    functionName: pip._vendor.pkg_resources.IMetadataProvider.get_metadata
    functionSourceFile: pip._vendor.pkg_resources
    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:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 556
    functionName: pip._vendor.pkg_resources.IMetadataProvider.get_metadata_lines
    functionSourceFile: pip._vendor.pkg_resources
    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:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 562
    functionName: pip._vendor.pkg_resources.IMetadataProvider.metadata_isdir
    functionSourceFile: pip._vendor.pkg_resources
    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:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 565
    functionName: pip._vendor.pkg_resources.IMetadataProvider.metadata_listdir
    functionSourceFile: pip._vendor.pkg_resources
    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:
    - script_name
    - namespace
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 568
    functionName: pip._vendor.pkg_resources.IMetadataProvider.run_script
    functionSourceFile: pip._vendor.pkg_resources
    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:
    - manager
    - resource_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 575
    functionName: pip._vendor.pkg_resources.IResourceProvider.get_resource_filename
    functionSourceFile: pip._vendor.pkg_resources
    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:
    - manager
    - resource_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 580
    functionName: pip._vendor.pkg_resources.IResourceProvider.get_resource_stream
    functionSourceFile: pip._vendor.pkg_resources
    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:
    - manager
    - resource_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 585
    functionName: pip._vendor.pkg_resources.IResourceProvider.get_resource_string
    functionSourceFile: pip._vendor.pkg_resources
    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:
    - resource_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 590
    functionName: pip._vendor.pkg_resources.IResourceProvider.has_resource
    functionSourceFile: pip._vendor.pkg_resources
    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:
    - resource_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 593
    functionName: pip._vendor.pkg_resources.IResourceProvider.resource_isdir
    functionSourceFile: pip._vendor.pkg_resources
    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:
    - resource_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 596
    functionName: pip._vendor.pkg_resources.IResourceProvider.resource_listdir
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f211c2e0>
    argNames:
    - self
    - entries
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 603
    functionName: pip._vendor.pkg_resources.WorkingSet.__init__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 11
    functionsReached:
    - inspect.getmro
    - pkgutil.get_importer
    - keys2.append
    - _canonicalize_regex.sub
    - keys.append
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.WorkingSet.add
    - typing.cast
    - pip._vendor.pkg_resources.WorkingSet.add_entry
    - <builtin>.getattr
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - dist.insert_on
    - pip._vendor.pkg_resources.find_distributions
    - pip._vendor.pkg_resources._always_object
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - entry
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 659
    functionName: pip._vendor.pkg_resources.WorkingSet.add_entry
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 12
    functionsReached:
    - inspect.getmro
    - pkgutil.get_importer
    - keys2.append
    - _canonicalize_regex.sub
    - keys.append
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.WorkingSet.add
    - typing.cast
    - <builtin>.getattr
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - dist.insert_on
    - pip._vendor.pkg_resources.find_distributions
    - pip._vendor.pkg_resources._always_object
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 618
    functionName: pip._vendor.pkg_resources.WorkingSet._build_master
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 3
    functionsReached:
    - inspect.getmro
    - dists.append
    - pip._vendor.pkg_resources.Environment.scan
    - ws.add
    - darwinVersionString.match
    - operator.attrgetter
    - ws.resolve
    - dists.sort
    - _canonicalize_regex.sub
    - pip._vendor.pkg_resources._always_object
    - provDarwin.group
    - keys2.append
    - pip._vendor.pkg_resources.Environment.add
    - keys.append
    - ws.add_entry
    - pip._vendor.pkg_resources.WorkingSet._build_from_requirements
    - item.endswith
    - dist.insert_on
    - ws.require
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.map
    - pip._vendor.pkg_resources.WorkingSet.add
    - pip._vendor.pkg_resources.Environment.can_add
    - <builtin>.iter
    - <builtin>.type
    - <builtin>.next
    - pip._vendor.pkg_resources.find_distributions
    - typing.cast
    - pip._vendor.pkg_resources.WorkingSet.__init__
    - pip._internal.utils._jaraco_text.join_continuation
    - pkgutil.get_importer
    - itertools.chain.from_iterable
    - dist.has_version
    - reqMac.group
    - <builtin>.int
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.compatible_platforms
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.Environment.__init__
    - macosVersionString.match
    - provMac.group
    - <builtin>.getattr
    - pip._vendor.pkg_resources.WorkingSet.add_entry
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - pip._vendor.packaging.utils.canonicalize_name
    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: ws.require
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - req_spec
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 638
    functionName: pip._vendor.pkg_resources.WorkingSet._build_from_requirements
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 4
    functionsReached:
    - inspect.getmro
    - dists.append
    - pip._vendor.pkg_resources.Environment.scan
    - ws.add
    - darwinVersionString.match
    - operator.attrgetter
    - ws.resolve
    - dists.sort
    - pip._vendor.pkg_resources._always_object
    - provDarwin.group
    - pip._vendor.packaging.utils.canonicalize_name
    - _canonicalize_regex.sub
    - keys2.append
    - pip._vendor.pkg_resources.Environment.add
    - keys.append
    - ws.add_entry
    - item.endswith
    - dist.insert_on
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.map
    - pip._vendor.pkg_resources.WorkingSet.add
    - pip._vendor.pkg_resources.Environment.can_add
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.pkg_resources.find_distributions
    - typing.cast
    - pip._vendor.pkg_resources.WorkingSet.__init__
    - pip._internal.utils._jaraco_text.join_continuation
    - pkgutil.get_importer
    - itertools.chain.from_iterable
    - dist.has_version
    - reqMac.group
    - <builtin>.int
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.compatible_platforms
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.Environment.__init__
    - macosVersionString.match
    - provMac.group
    - <builtin>.getattr
    - pip._vendor.pkg_resources.WorkingSet.add_entry
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - strs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3158
    functionName: pip._vendor.pkg_resources.parse_requirements
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 26
    functionsReached:
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._internal.utils._jaraco_text.yield_lines
    - <builtin>.map
    - item.endswith
    - <builtin>.iter
    - <builtin>.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1fdb8b0>
    - <ast.Call object at 0x7f30f1fdb8e0>
    - <ast.Name object at 0x7f30f1fdb940>
    argNames:
    - self
    - search_path
    - platform
    - python
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1034
    functionName: pip._vendor.pkg_resources.Environment.__init__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 11
    functionsReached:
    - inspect.getmro
    - dists.append
    - pip._vendor.pkg_resources.Environment.scan
    - darwinVersionString.match
    - operator.attrgetter
    - dists.sort
    - provDarwin.group
    - pip._vendor.pkg_resources._always_object
    - pip._vendor.pkg_resources.Environment.add
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.Environment.can_add
    - pip._vendor.pkg_resources.find_distributions
    - pkgutil.get_importer
    - reqMac.group
    - dist.has_version
    - <builtin>.int
    - pip._vendor.pkg_resources.compatible_platforms
    - macosVersionString.match
    - provMac.group
    - <builtin>.getattr
    - <builtin>.type
    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: ws.resolve
    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: ws.add
    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: ws.add_entry
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f204f940>
    argNames:
    - path_item
    - only
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2073
    functionName: pip._vendor.pkg_resources.find_distributions
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 23
    functionsReached:
    - inspect.getmro
    - pkgutil.get_importer
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.getattr
    - pip._vendor.pkg_resources._always_object
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2111a60>
    - <ast.Constant object at 0x7f30f2111a30>
    - <ast.Constant object at 0x7f30f2111a00>
    argNames:
    - self
    - dist
    - entry
    - insert
    - replace
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 741
    functionName: pip._vendor.pkg_resources.WorkingSet.add
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 13
    functionsReached:
    - keys2.append
    - keys.append
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - dist.insert_on
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 674
    functionName: pip._vendor.pkg_resources.WorkingSet.__contains__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 678
    functionName: pip._vendor.pkg_resources.WorkingSet.find
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - VersionConflict
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f21191f0>
    argNames:
    - self
    - group
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 702
    functionName: pip._vendor.pkg_resources.WorkingSet.iter_entry_points
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - dist.get_entry_map
    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: dist.get_entry_map
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - requires
    - script_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 716
    functionName: pip._vendor.pkg_resources.WorkingSet.run_script
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - dists.append
    - pip._vendor.pkg_resources.Environment.scan
    - darwinVersionString.match
    - required_by.get
    - operator.attrgetter
    - pip._vendor.pkg_resources.WorkingSet.__init__
    - dists.sort
    - pip._vendor.pkg_resources.WorkingSet.resolve
    - _canonicalize_regex.sub
    - pip._vendor.pkg_resources._always_object
    - provDarwin.group
    - collections.defaultdict
    - keys2.append
    - pip._vendor.pkg_resources.Environment.add
    - keys.append
    - pip._vendor.pkg_resources.WorkingSet._resolve_dist
    - requirements.pop
    - ns.clear
    - pip._vendor.pkg_resources.WorkingSet.require
    - item.endswith
    - dist.insert_on
    - sys._getframe
    - <builtin>.list
    - pip._vendor.pkg_resources.WorkingSet.find
    - best.get
    - <builtin>.any
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.map
    - pip._vendor.pkg_resources.WorkingSet.add
    - pip._vendor.pkg_resources.Environment.can_add
    - <builtin>.iter
    - <builtin>.type
    - <builtin>.next
    - pip._vendor.pkg_resources._ReqExtras.markers_pass
    - typing.cast
    - pip._vendor.pkg_resources.find_distributions
    - req.marker.evaluate
    - requirements.extend
    - pip._internal.utils._jaraco_text.join_continuation
    - pip._vendor.pkg_resources.Environment.best_match
    - itertools.chain.from_iterable
    - dist.has_version
    - reqMac.group
    - pkgutil.get_importer
    - to_activate.append
    - <builtin>.int
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.Environment.obtain
    - pip._vendor.pkg_resources.compatible_platforms
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.Environment.__init__
    - macosVersionString.match
    - provMac.group
    - <builtin>.getattr
    - pip._vendor.pkg_resources.WorkingSet.add_entry
    - dist.requires
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - requirements
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 959
    functionName: pip._vendor.pkg_resources.WorkingSet.require
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - inspect.getmro
    - dists.append
    - pip._vendor.pkg_resources.Environment.scan
    - darwinVersionString.match
    - required_by.get
    - operator.attrgetter
    - dists.sort
    - pip._vendor.pkg_resources.WorkingSet.resolve
    - provDarwin.group
    - pip._vendor.pkg_resources._always_object
    - pip._vendor.packaging.utils.canonicalize_name
    - collections.defaultdict
    - keys2.append
    - pip._vendor.pkg_resources.Environment.add
    - _canonicalize_regex.sub
    - pip._vendor.pkg_resources.WorkingSet._resolve_dist
    - keys.append
    - requirements.pop
    - item.endswith
    - dist.insert_on
    - <builtin>.list
    - pip._vendor.pkg_resources.WorkingSet.find
    - best.get
    - <builtin>.any
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.map
    - pip._vendor.pkg_resources.WorkingSet.add
    - pip._vendor.pkg_resources.Environment.can_add
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.pkg_resources._ReqExtras.markers_pass
    - pip._vendor.pkg_resources.find_distributions
    - typing.cast
    - req.marker.evaluate
    - pip._vendor.pkg_resources.WorkingSet.__init__
    - pip._internal.utils._jaraco_text.join_continuation
    - pip._vendor.pkg_resources.Environment.best_match
    - requirements.extend
    - itertools.chain.from_iterable
    - dist.has_version
    - reqMac.group
    - to_activate.append
    - <builtin>.int
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.Environment.obtain
    - pkgutil.get_importer
    - pip._vendor.pkg_resources.compatible_platforms
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.Environment.__init__
    - macosVersionString.match
    - provMac.group
    - pip._vendor.pkg_resources.WorkingSet.add_entry
    - <builtin>.getattr
    - dist.requires
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 724
    functionName: pip._vendor.pkg_resources.WorkingSet.__iter__
    functionSourceFile: pip._vendor.pkg_resources
    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: dist.insert_on
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: pip._vendor.packaging.utils.canonicalize_name
    functionSourceFile: pip._vendor.packaging.utils
    functionUses: 136
    functionsReached:
    - typing.cast
    - _canonicalize_regex.sub
    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: keys.append
    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: keys2.append
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 989
    functionName: pip._vendor.pkg_resources.WorkingSet._added_new
    functionSourceFile: ''
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f210f490>
    - <ast.Constant object at 0x7f30f210f460>
    - <ast.Constant object at 0x7f30f210f430>
    - <ast.Constant object at 0x7f30f210f400>
    argNames:
    - self
    - requirements
    - env
    - installer
    - replace_conflicting
    - extras
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 773
    functionName: pip._vendor.pkg_resources.WorkingSet.resolve
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 3
    functionsReached:
    - inspect.getmro
    - dists.append
    - pip._vendor.pkg_resources.Environment.scan
    - darwinVersionString.match
    - required_by.get
    - operator.attrgetter
    - dists.sort
    - _canonicalize_regex.sub
    - pip._vendor.pkg_resources._always_object
    - provDarwin.group
    - collections.defaultdict
    - keys2.append
    - pip._vendor.pkg_resources.Environment.add
    - pip._vendor.pkg_resources.WorkingSet._resolve_dist
    - keys.append
    - requirements.pop
    - dist.insert_on
    - <builtin>.list
    - pip._vendor.pkg_resources.WorkingSet.find
    - best.get
    - <builtin>.any
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.WorkingSet.add
    - pip._vendor.pkg_resources.Environment.can_add
    - <builtin>.type
    - pip._vendor.pkg_resources._ReqExtras.markers_pass
    - pip._vendor.pkg_resources.find_distributions
    - typing.cast
    - req.marker.evaluate
    - requirements.extend
    - pip._vendor.pkg_resources.WorkingSet.__init__
    - pip._vendor.pkg_resources.Environment.best_match
    - reqMac.group
    - dist.has_version
    - pkgutil.get_importer
    - to_activate.append
    - <builtin>.int
    - pip._vendor.pkg_resources.Environment.obtain
    - pip._vendor.pkg_resources.compatible_platforms
    - pip._vendor.pkg_resources.Environment.__init__
    - macosVersionString.match
    - provMac.group
    - <builtin>.getattr
    - pip._vendor.pkg_resources.WorkingSet.add_entry
    - dist.requires
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - pip._vendor.packaging.utils.canonicalize_name
    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: requirements.pop
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1fd8fd0>
    argNames:
    - self
    - req
    - extras
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1016
    functionName: pip._vendor.pkg_resources._ReqExtras.markers_pass
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 4
    functionsReached:
    - <builtin>.any
    - req.marker.evaluate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - req
    - best
    - replace_conflicting
    - env
    - installer
    - required_by
    - to_activate
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 847
    functionName: pip._vendor.pkg_resources.WorkingSet._resolve_dist
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 4
    functionsReached:
    - inspect.getmro
    - dists.append
    - pip._vendor.pkg_resources.Environment.scan
    - darwinVersionString.match
    - required_by.get
    - operator.attrgetter
    - dists.sort
    - _canonicalize_regex.sub
    - provDarwin.group
    - pip._vendor.pkg_resources._always_object
    - keys2.append
    - pip._vendor.pkg_resources.Environment.add
    - keys.append
    - dist.insert_on
    - pip._vendor.pkg_resources.WorkingSet.find
    - best.get
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.WorkingSet.add
    - pip._vendor.pkg_resources.Environment.can_add
    - <builtin>.type
    - pip._vendor.pkg_resources.find_distributions
    - typing.cast
    - pip._vendor.pkg_resources.WorkingSet.__init__
    - pip._vendor.pkg_resources.Environment.best_match
    - reqMac.group
    - dist.has_version
    - pkgutil.get_importer
    - to_activate.append
    - <builtin>.int
    - pip._vendor.pkg_resources.Environment.obtain
    - pip._vendor.pkg_resources.compatible_platforms
    - pip._vendor.pkg_resources.Environment.__init__
    - macosVersionString.match
    - provMac.group
    - <builtin>.getattr
    - pip._vendor.pkg_resources.WorkingSet.add_entry
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - DistributionNotFound
    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: dist.requires
    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: requirements.extend
    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: best.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f20a04f0>
    - <ast.Constant object at 0x7f30f20a04c0>
    argNames:
    - self
    - req
    - working_set
    - installer
    - replace_conflicting
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1110
    functionName: pip._vendor.pkg_resources.Environment.best_match
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 5
    functionsReached:
    - pip._vendor.pkg_resources.Environment.obtain
    - pip._vendor.pkg_resources.WorkingSet.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: required_by.get
    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: to_activate.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1fa7640>
    - <ast.Constant object at 0x7f30f1fa7610>
    - <ast.Constant object at 0x7f30f1fa75e0>
    argNames:
    - self
    - plugin_env
    - full_env
    - installer
    - fallback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 878
    functionName: pip._vendor.pkg_resources.WorkingSet.find_plugins
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - dists.append
    - pip._vendor.pkg_resources.Environment.scan
    - darwinVersionString.match
    - plugin_projects.sort
    - operator.attrgetter
    - distributions.update
    - dists.sort
    - provDarwin.group
    - pip._vendor.pkg_resources._always_object
    - pip._vendor.pkg_resources.Environment.add
    - <builtin>.list
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.map
    - pip._vendor.pkg_resources.Environment.can_add
    - pip._vendor.pkg_resources.find_distributions
    - pkgutil.get_importer
    - reqMac.group
    - dist.has_version
    - shadow_set.resolve
    - <builtin>.int
    - dict.fromkeys
    - pip._vendor.pkg_resources.compatible_platforms
    - distributions.sort
    - pip._vendor.pkg_resources.Environment.__init__
    - macosVersionString.match
    - provMac.group
    - <builtin>.getattr
    - <builtin>.type
    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: plugin_projects.sort
    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>.map
    functionSourceFile: <builtin>
    functionUses: 162
    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: shadow_set.resolve
    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: distributions.update
    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: distributions.sort
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1fd57f0>
    argNames:
    - self
    - callback
    - existing
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 975
    functionName: pip._vendor.pkg_resources.WorkingSet.subscribe
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._vendor.pkg_resources.WorkingSet.__iter__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 993
    functionName: pip._vendor.pkg_resources.WorkingSet.__getstate__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - e_k_b_n_c
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1002
    functionName: pip._vendor.pkg_resources.WorkingSet.__setstate__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - normalized_to_canonical_keys.copy
    - by_key.copy
    - keys.copy
    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: keys.copy
    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: by_key.copy
    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: normalized_to_canonical_keys.copy
    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: req.marker.evaluate
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1fde7f0>
    argNames:
    - self
    - search_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1076
    functionName: pip._vendor.pkg_resources.Environment.scan
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 12
    functionsReached:
    - inspect.getmro
    - dists.append
    - darwinVersionString.match
    - operator.attrgetter
    - dists.sort
    - provDarwin.group
    - pip._vendor.pkg_resources._always_object
    - pip._vendor.pkg_resources.Environment.add
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.Environment.can_add
    - pip._vendor.pkg_resources.find_distributions
    - pkgutil.get_importer
    - reqMac.group
    - dist.has_version
    - <builtin>.int
    - pip._vendor.pkg_resources.compatible_platforms
    - macosVersionString.match
    - provMac.group
    - <builtin>.getattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1058
    functionName: pip._vendor.pkg_resources.Environment.can_add
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 15
    functionsReached:
    - reqMac.group
    - <builtin>.int
    - darwinVersionString.match
    - pip._vendor.pkg_resources.compatible_platforms
    - macosVersionString.match
    - provMac.group
    - provDarwin.group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1072
    functionName: pip._vendor.pkg_resources.Environment.remove
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1102
    functionName: pip._vendor.pkg_resources.Environment.add
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 14
    functionsReached:
    - dists.append
    - reqMac.group
    - dist.has_version
    - <builtin>.int
    - darwinVersionString.match
    - pip._vendor.pkg_resources.compatible_platforms
    - operator.attrgetter
    - macosVersionString.match
    - pip._vendor.pkg_resources.Environment.can_add
    - provMac.group
    - dists.sort
    - provDarwin.group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - project_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1091
    functionName: pip._vendor.pkg_resources.Environment.__getitem__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - project_name.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: project_name.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dist.has_version
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dists.append
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dists.sort
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f209da90>
    argNames:
    - self
    - requirement
    - installer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1137
    functionName: pip._vendor.pkg_resources.Environment.obtain
    functionSourceFile: ''
    functionUses: 6
    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: 0
    functionLinenumber: 1149
    functionName: pip._vendor.pkg_resources.Environment.__iter__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1155
    functionName: pip._vendor.pkg_resources.Environment.__iadd__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - dists.append
    - pip._vendor.pkg_resources.Environment.add
    - dist.has_version
    - reqMac.group
    - <builtin>.isinstance
    - <builtin>.int
    - darwinVersionString.match
    - pip._vendor.pkg_resources.compatible_platforms
    - operator.attrgetter
    - macosVersionString.match
    - pip._vendor.pkg_resources.Environment.can_add
    - provMac.group
    - dists.sort
    - provDarwin.group
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1167
    functionName: pip._vendor.pkg_resources.Environment.__add__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1200
    functionName: pip._vendor.pkg_resources.ResourceManager.__init__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - package_or_requirement
    - resource_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1203
    functionName: pip._vendor.pkg_resources.ResourceManager.resource_exists
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - working_set.find
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pkg_resources.get_provider
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.__import__
    - <builtin>.getattr
    - pip._vendor.pkg_resources._always_object
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - package_or_requirement
    - resource_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1207
    functionName: pip._vendor.pkg_resources.ResourceManager.resource_isdir
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - working_set.find
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pkg_resources.get_provider
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.__import__
    - <builtin>.getattr
    - pip._vendor.pkg_resources._always_object
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - package_or_requirement
    - resource_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1211
    functionName: pip._vendor.pkg_resources.ResourceManager.resource_filename
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - working_set.find
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pkg_resources.get_provider
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.__import__
    - <builtin>.getattr
    - pip._vendor.pkg_resources._always_object
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - package_or_requirement
    - resource_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1217
    functionName: pip._vendor.pkg_resources.ResourceManager.resource_stream
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - working_set.find
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pkg_resources.get_provider
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.__import__
    - <builtin>.getattr
    - pip._vendor.pkg_resources._always_object
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - package_or_requirement
    - resource_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1223
    functionName: pip._vendor.pkg_resources.ResourceManager.resource_string
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - working_set.find
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pkg_resources.get_provider
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.__import__
    - <builtin>.getattr
    - pip._vendor.pkg_resources._always_object
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - package_or_requirement
    - resource_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1229
    functionName: pip._vendor.pkg_resources.ResourceManager.resource_listdir
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - working_set.find
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pkg_resources.get_provider
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.__import__
    - <builtin>.getattr
    - pip._vendor.pkg_resources._always_object
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1233
    functionName: pip._vendor.pkg_resources.ResourceManager.extraction_error
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - tmpl.format
    - <builtin>.locals
    - textwrap.dedent
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - sys.exc_info
    - os.environ.get
    - pip._vendor.platformdirs.user_cache_dir
    - pip._vendor.pkg_resources.get_default_cache
    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.exc_info
    functionSourceFile: sys
    functionUses: 28
    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: 2
    functionLinenumber: 1373
    functionName: pip._vendor.pkg_resources.get_default_cache
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.environ.get
    - pip._vendor.platformdirs.user_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: tmpl.format
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Tuple object at 0x7f30f2094400>
    argNames:
    - self
    - archive_name
    - names
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1263
    functionName: pip._vendor.pkg_resources.ResourceManager.get_cache_path
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - tmpl.format
    - path.startswith
    - os.stat
    - <builtin>.locals
    - pip._vendor.pkg_resources.ResourceManager.extraction_error
    - pip._vendor.pkg_resources.ResourceManager._warn_unsafe_extraction_path
    - warnings.warn
    - textwrap.dedent
    - pip._vendor.pkg_resources._bypass_ensure_directory
    - os.mkdir
    - os.path.join
    - os.path.isdir
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.split
    - sys.exc_info
    - os.environ.get
    - pip._vendor.platformdirs.user_cache_dir
    - pip._vendor.pkg_resources.get_default_cache
    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: 439
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3243
    functionName: pip._vendor.pkg_resources._bypass_ensure_directory
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - pip._vendor.pkg_resources._bypass_ensure_directory
    - os.mkdir
    - os.path.isdir
    - os.path.split
    linkageType: pythonLinkage
    raised:
    - IOError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1289
    functionName: pip._vendor.pkg_resources.ResourceManager._warn_unsafe_extraction_path
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - path.startswith
    - os.stat
    - <builtin>.locals
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.startswith
    functionSourceFile: <builtin>
    functionUses: 59
    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.stat
    functionSourceFile: os
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tempname
    - filename
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1315
    functionName: pip._vendor.pkg_resources.ResourceManager.postprocess
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - os.stat
    - os.chmod
    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.chmod
    functionSourceFile: os
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1335
    functionName: pip._vendor.pkg_resources.ResourceManager.set_extraction_path
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f20775b0>
    argNames:
    - self
    - force
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1359
    functionName: pip._vendor.pkg_resources.ResourceManager.cleanup_resources
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.environ.get
    functionSourceFile: os
    functionUses: 137
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30e0ce33a0>
    - <ast.Constant object at 0x7f30e0ce3670>
    - <ast.Constant object at 0x7f30e0ce3a60>
    - <ast.Constant object at 0x7f30e0ce3b20>
    - <ast.Constant object at 0x7f30e0ce3bb0>
    argNames:
    - appname
    - appauthor
    - version
    - opinion
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: pip._vendor.platformdirs.user_cache_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 5
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1384
    functionName: pip._vendor.pkg_resources.safe_name
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 19
    functionsReached:
    - re.sub
    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.sub
    functionSourceFile: re
    functionUses: 72
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1392
    functionName: pip._vendor.pkg_resources.safe_version
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 22
    functionsReached:
    - re.sub
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.reversed
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.int
    - part.isdigit
    - match.group
    - letter.lower
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.tuple
    - <builtin>.list
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - itertools.dropwhile
    - pip._vendor.packaging.version._parse_letter_version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 261
    functionName: pip._vendor.packaging.version.Version.__init__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 175
    functionsReached:
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.isinstance
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    - letter.lower
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.tuple
    - <builtin>.list
    - part.lower
    - itertools.dropwhile
    - pip._vendor.packaging.version._parse_letter_version
    linkageType: pythonLinkage
    raised:
    - InvalidVersion
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1404
    functionName: pip._vendor.pkg_resources._forgiving_version
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - pip._vendor.pkg_resources._safe_segment
    - <builtin>.len
    - re.sub
    - _PEP440_FALLBACK.search
    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: _PEP440_FALLBACK.search
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - segment
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1429
    functionName: pip._vendor.pkg_resources._safe_segment
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - re.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - extra
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1436
    functionName: pip._vendor.pkg_resources.safe_extra
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 9
    functionsReached:
    - re.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1445
    functionName: pip._vendor.pkg_resources.to_filename
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 1453
    functionName: pip._vendor.pkg_resources.invalid_marker
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - _operators.get
    - <builtin>.isinstance
    - pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version
    - pip._vendor.packaging.markers.format_full_version
    - part.startswith
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.markers._eval_op
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - environment.get
    - _legacy_version_component_re.split
    - <builtin>.str
    - platform.python_implementation
    - pip._vendor.packaging.version._legacy_cmpkey
    - letter.lower
    - platform.release
    - op.serialize
    - <builtin>.tuple
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - platform.python_version_tuple
    - <builtin>.any
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - platform.machine
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.markers._evaluate_markers
    - platform.version
    - platform.system
    - pip._vendor.packaging.specifiers._IndividualSpecifier.contains
    - platform.python_version
    - parts.pop
    - groups.append
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.pkg_resources.evaluate_marker
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - match.group
    - part.isdigit
    - warnings.warn
    - _legacy_version_replacement_map.get
    - pip._vendor.packaging.markers.Marker.evaluate
    - pip._vendor.packaging.markers.default_environment
    - current_environment.update
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.packaging.markers._get_env
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f206da60>
    argNames:
    - text
    - extra
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1467
    functionName: pip._vendor.pkg_resources.evaluate_marker
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 3
    functionsReached:
    - _operators.get
    - <builtin>.isinstance
    - pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version
    - pip._vendor.packaging.markers.format_full_version
    - part.startswith
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.markers._eval_op
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - environment.get
    - _legacy_version_component_re.split
    - <builtin>.str
    - platform.python_implementation
    - pip._vendor.packaging.version._legacy_cmpkey
    - letter.lower
    - platform.release
    - op.serialize
    - <builtin>.tuple
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - platform.python_version_tuple
    - <builtin>.any
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - platform.machine
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.markers._evaluate_markers
    - platform.version
    - platform.system
    - pip._vendor.packaging.specifiers._IndividualSpecifier.contains
    - platform.python_version
    - parts.pop
    - groups.append
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging.markers._coerce_parse_result
    - <builtin>.int
    - part.isdigit
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.markers.Marker.evaluate
    - pip._vendor.packaging.markers.default_environment
    - current_environment.update
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.packaging.markers._get_env
    linkageType: pythonLinkage
    raised:
    - SyntaxError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - marker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 276
    functionName: pip._vendor.packaging.markers.Marker.__init__
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 34
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - <builtin>.isinstance
    - pip._vendor.packaging.markers._coerce_parse_result
    linkageType: pythonLinkage
    raised:
    - InvalidMarker
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30dc425190>
    argNames:
    - self
    - environment
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 291
    functionName: pip._vendor.packaging.markers.Marker.evaluate
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 5
    functionsReached:
    - _operators.get
    - <builtin>.isinstance
    - pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version
    - pip._vendor.packaging.markers.format_full_version
    - part.startswith
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.markers._eval_op
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - environment.get
    - _legacy_version_component_re.split
    - <builtin>.str
    - platform.python_implementation
    - pip._vendor.packaging.version._legacy_cmpkey
    - letter.lower
    - platform.release
    - op.serialize
    - <builtin>.tuple
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - platform.python_version_tuple
    - <builtin>.any
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - platform.machine
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.markers._evaluate_markers
    - platform.version
    - platform.system
    - pip._vendor.packaging.specifiers._IndividualSpecifier.contains
    - platform.python_version
    - parts.pop
    - groups.append
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.markers.default_environment
    - current_environment.update
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.packaging.markers._get_env
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - module
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1489
    functionName: pip._vendor.pkg_resources.NullProvider.__init__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - os.path.dirname
    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: 129
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - manager
    - resource_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1493
    functionName: pip._vendor.pkg_resources.NullProvider.get_resource_filename
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - warnings.warn
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - base
    - resource_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1589
    functionName: pip._vendor.pkg_resources.NullProvider._fn
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 27
    functionsReached:
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - warnings.warn
    - pip._vendor.pkg_resources.issue_warning
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - manager
    - resource_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1496
    functionName: pip._vendor.pkg_resources.NullProvider.get_resource_stream
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - <builtin>.hasattr
    - warnings.warn
    - pip._vendor.pkg_resources.EmptyProvider._get
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.NullProvider.get_resource_string
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    - pip._vendor.pkg_resources.NullProvider._get
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - manager
    - resource_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1499
    functionName: pip._vendor.pkg_resources.NullProvider.get_resource_string
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - warnings.warn
    - pip._vendor.pkg_resources.EmptyProvider._get
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    - pip._vendor.pkg_resources.NullProvider._get
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO
    functionSourceFile: io
    functionUses: 75
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1751
    functionName: pip._vendor.pkg_resources.EmptyProvider._get
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1669
    functionName: pip._vendor.pkg_resources.NullProvider._get
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 7
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1502
    functionName: pip._vendor.pkg_resources.NullProvider.has_resource
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - warnings.warn
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - pip._vendor.pkg_resources.NullProvider._has
    - sys._getframe
    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: pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    functionSourceFile: ''
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1574
    functionName: pip._vendor.pkg_resources.NullProvider._has
    functionSourceFile: ''
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1505
    functionName: pip._vendor.pkg_resources.NullProvider._get_metadata_path
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 15
    functionsReached:
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - warnings.warn
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1508
    functionName: pip._vendor.pkg_resources.NullProvider.has_metadata
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 12
    functionsReached:
    - sys._getframe
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - warnings.warn
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - pip._vendor.pkg_resources.NullProvider._has
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1994
    functionName: pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    functionSourceFile: ''
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1515
    functionName: pip._vendor.pkg_resources.NullProvider.get_metadata
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 4
    functionsReached:
    - value.decode
    - sys._getframe
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - warnings.warn
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.EmptyProvider._get
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pip._vendor.pkg_resources.NullProvider._get
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.decode
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1528
    functionName: pip._vendor.pkg_resources.NullProvider.get_metadata_lines
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - value.decode
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.NullProvider._fn
    - io.open
    - path.split
    - tmpl.format
    - <builtin>.locals
    - pip._vendor.pkg_resources.EmptyProvider._get
    - pip._vendor.pkg_resources.issue_warning
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    - pip._vendor.pkg_resources.FileMetadata._warn_on_replacement
    - ntpath.isabs
    - <builtin>.map
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pip._vendor.pkg_resources.NullProvider._get
    - itertools.chain.from_iterable
    - pip._vendor.pkg_resources.NullProvider.get_metadata
    - pip._internal.utils._jaraco_text.yield_lines
    - posixpath.isabs
    - warnings.warn
    - f.read
    - pip._vendor.pkg_resources.FileMetadata.get_metadata
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2000
    functionName: pip._vendor.pkg_resources.FileMetadata.get_metadata
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 5
    functionsReached:
    - tmpl.format
    - pip._vendor.pkg_resources.FileMetadata._warn_on_replacement
    - <builtin>.locals
    - warnings.warn
    - f.read
    - io.open
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - iterable
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: pip._internal.utils._jaraco_text.yield_lines
    functionSourceFile: pip._internal.utils._jaraco_text
    functionUses: 32
    functionsReached:
    - itertools.chain.from_iterable
    - <builtin>.map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1531
    functionName: pip._vendor.pkg_resources.NullProvider.resource_isdir
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._isdir
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - warnings.warn
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1579
    functionName: pip._vendor.pkg_resources.NullProvider._isdir
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1534
    functionName: pip._vendor.pkg_resources.NullProvider.metadata_isdir
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._isdir
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - warnings.warn
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1537
    functionName: pip._vendor.pkg_resources.NullProvider.resource_listdir
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 9
    functionsReached:
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - pip._vendor.pkg_resources.NullProvider._listdir
    - warnings.warn
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.EmptyProvider._listdir
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1584
    functionName: pip._vendor.pkg_resources.NullProvider._listdir
    functionSourceFile: ''
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1754
    functionName: pip._vendor.pkg_resources.EmptyProvider._listdir
    functionSourceFile: ''
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1540
    functionName: pip._vendor.pkg_resources.NullProvider.metadata_listdir
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - pip._vendor.pkg_resources.NullProvider._listdir
    - warnings.warn
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.EmptyProvider._listdir
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - script_name
    - namespace
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1545
    functionName: pip._vendor.pkg_resources.NullProvider.run_script
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.exec
    - script_text.split
    - value.decode
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - fid.read
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.NullProvider._fn
    - path.split
    - io.open
    - tmpl.format
    - <builtin>.locals
    - pip._vendor.pkg_resources.EmptyProvider._get
    - pip._vendor.pkg_resources.issue_warning
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - pip._vendor.pkg_resources.NullProvider._has
    - sys._getframe
    - pip._vendor.pkg_resources.NullProvider.has_metadata
    - pip._vendor.pkg_resources.FileMetadata._warn_on_replacement
    - os.path.isfile
    - <builtin>.len
    - ntpath.isabs
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pip._vendor.pkg_resources.NullProvider._get
    - <builtin>.compile
    - pip._vendor.pkg_resources.NullProvider.get_metadata
    - posixpath.isabs
    - os.path.exists
    - warnings.warn
    - <builtin>.open
    - script_text.replace
    - pip._vendor.pkg_resources.FileMetadata.has_metadata
    - f.read
    - pip._vendor.pkg_resources.FileMetadata.get_metadata
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ResolutionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1997
    functionName: pip._vendor.pkg_resources.FileMetadata.has_metadata
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 12
    functionsReached:
    - os.path.isfile
    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: script_text.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fid.read
    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>.compile
    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>.exec
    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: script_text.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1596
    functionName: pip._vendor.pkg_resources.NullProvider._validate_resource_path
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 28
    functionsReached:
    - path.split
    - posixpath.isabs
    - ntpath.isabs
    - warnings.warn
    - pip._vendor.pkg_resources.issue_warning
    - <builtin>.globals
    - sys._getframe
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: resource_name.split
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.split
    functionSourceFile: <builtin>
    functionUses: 108
    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: posixpath.isabs
    functionSourceFile: posixpath
    functionUses: 29
    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: ntpath.isabs
    functionSourceFile: ntpath
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3145
    functionName: pip._vendor.pkg_resources.issue_warning
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 33
    functionsReached:
    - sys._getframe
    - warnings.warn
    - <builtin>.globals
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1680
    functionName: pip._vendor.pkg_resources._parents
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 12
    functionsReached:
    - os.path.split
    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.split
    functionSourceFile: os
    functionUses: 102
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - module
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1694
    functionName: pip._vendor.pkg_resources.EggProvider.__init__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.pkg_resources.EggProvider._set_egg
    - os.path.basename
    - pip._vendor.pkg_resources.EggProvider._setup_prefix
    - <builtin>.filter
    - pip._vendor.pkg_resources._parents
    - os.path.join
    - <builtin>.next
    - os.path.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1698
    functionName: pip._vendor.pkg_resources.EggProvider._setup_prefix
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 11
    functionsReached:
    - pip._vendor.pkg_resources.EggProvider._set_egg
    - os.path.basename
    - <builtin>.filter
    - pip._vendor.pkg_resources._parents
    - os.path.join
    - <builtin>.next
    - os.path.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1705
    functionName: pip._vendor.pkg_resources.EggProvider._set_egg
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 12
    functionsReached:
    - os.path.join
    - os.path.basename
    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.basename
    functionSourceFile: os
    functionUses: 135
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1714
    functionName: pip._vendor.pkg_resources.DefaultProvider._has
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - os.path.exists
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1717
    functionName: pip._vendor.pkg_resources.DefaultProvider._isdir
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - os.path.isdir
    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.isdir
    functionSourceFile: os
    functionUses: 138
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1720
    functionName: pip._vendor.pkg_resources.DefaultProvider._listdir
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - os.listdir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - manager
    - resource_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1723
    functionName: pip._vendor.pkg_resources.DefaultProvider.get_resource_stream
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - path.split
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - warnings.warn
    - <builtin>.open
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1726
    functionName: pip._vendor.pkg_resources.DefaultProvider._get
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - stream.read
    - <builtin>.open
    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: stream.read
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1731
    functionName: pip._vendor.pkg_resources.DefaultProvider._register
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    - pip._vendor.pkg_resources.register_loader_type
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1757
    functionName: pip._vendor.pkg_resources.EmptyProvider.__init__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1770
    functionName: pip._vendor.pkg_resources.ZipManifests.build
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - name.replace
    - zipfile.ZipFile
    - <builtin>.dict
    - zfile.namelist
    - zfile.getinfo
    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: zipfile.ZipFile
    functionSourceFile: zipfile
    functionUses: 48
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.replace
    functionSourceFile: <builtin>
    functionUses: 52
    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: zfile.getinfo
    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: zfile.namelist
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.pkg_resources.MemoizedZipManifests
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - collections.namedtuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1798
    functionName: pip._vendor.pkg_resources.MemoizedZipManifests.load
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - name.replace
    - os.stat
    - zipfile.ZipFile
    - pip._vendor.pkg_resources.ZipManifests.build
    - os.path.normpath
    - <builtin>.dict
    - zfile.namelist
    - zfile.getinfo
    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.normpath
    functionSourceFile: os
    functionUses: 162
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - module
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1818
    functionName: pip._vendor.pkg_resources.ZipProvider.__init__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fspath
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1822
    functionName: pip._vendor.pkg_resources.ZipProvider._zipinfo_name
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 6
    functionsReached:
    - fspath.startswith
    - <builtin>.len
    - fspath.rstrip
    linkageType: pythonLinkage
    raised:
    - AssertionError
    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: fspath.rstrip
    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: fspath.startswith
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - zip_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1832
    functionName: pip._vendor.pkg_resources.ZipProvider._parts
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - fspath.startswith
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1841
    functionName: pip._vendor.pkg_resources.ZipProvider.zipinfo
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - name.replace
    - os.stat
    - pip._vendor.pkg_resources.MemoizedZipManifests.load
    - zipfile.ZipFile
    - pip._vendor.pkg_resources.ZipManifests.build
    - os.path.normpath
    - <builtin>.dict
    - zfile.namelist
    - zfile.getinfo
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - manager
    - resource_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1844
    functionName: pip._vendor.pkg_resources.ZipProvider.get_resource_filename
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - value.decode
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - time.mktime
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - pip._vendor.pkg_resources.ZipProvider._is_current
    - manager.extraction_error
    - pip._vendor.pkg_resources.ZipProvider._get_eager_resources
    - pip._vendor.pkg_resources.NullProvider.get_metadata_lines
    - pip._vendor.pkg_resources._mkstemp
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.NullProvider._fn
    - os.rename
    - pip._vendor.pkg_resources.ZipProvider._zipinfo_name
    - path.split
    - io.open
    - os.unlink
    - tmpl.format
    - <builtin>.locals
    - fspath.rstrip
    - pip._vendor.pkg_resources.FileMetadata.get_metadata_lines
    - pip._vendor.pkg_resources.EmptyProvider._get
    - eagers.extend
    - pip._vendor.pkg_resources.issue_warning
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - pip._vendor.pkg_resources.NullProvider._has
    - sys._getframe
    - pip._vendor.pkg_resources.NullProvider.has_metadata
    - fspath.startswith
    - pip._vendor.pkg_resources.ZipProvider._resource_to_zip
    - os.close
    - pip._vendor.pkg_resources.FileMetadata._warn_on_replacement
    - pip._vendor.pkg_resources.ZipProvider._get_date_and_size
    - os.path.isfile
    - ntpath.isabs
    - <builtin>.len
    - os.utime
    - <builtin>.map
    - os.sep.join
    - os.write
    - manager.get_cache_path
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pip._vendor.pkg_resources.NullProvider._get
    - parts.pop
    - os.stat
    - tempfile.mkstemp
    - itertools.chain.from_iterable
    - pip._vendor.pkg_resources.NullProvider.get_metadata
    - pip._internal.utils._jaraco_text.yield_lines
    - posixpath.isabs
    - pip._vendor.pkg_resources.ZipProvider._eager_to_zip
    - os.path.dirname
    - warnings.warn
    - pip._vendor.pkg_resources.ZipProvider._extract_resource
    - <builtin>.open
    - pip._vendor.pkg_resources.ZipProvider._parts
    - pip._vendor.pkg_resources.ZipProvider._index
    - manager.postprocess
    - pip._vendor.pkg_resources.FileMetadata.has_metadata
    - f.read
    - pip._vendor.pkg_resources.FileMetadata.get_metadata
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1972
    functionName: pip._vendor.pkg_resources.ZipProvider._resource_to_zip
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - fspath.startswith
    - path.split
    - fspath.rstrip
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - <builtin>.len
    - warnings.warn
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    - pip._vendor.pkg_resources.ZipProvider._zipinfo_name
    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: 6
    functionLinenumber: 1933
    functionName: pip._vendor.pkg_resources.ZipProvider._get_eager_resources
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - value.decode
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - pip._vendor.pkg_resources.NullProvider.get_metadata_lines
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.NullProvider._fn
    - io.open
    - path.split
    - tmpl.format
    - <builtin>.locals
    - pip._vendor.pkg_resources.FileMetadata.get_metadata_lines
    - pip._vendor.pkg_resources.EmptyProvider._get
    - eagers.extend
    - pip._vendor.pkg_resources.issue_warning
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - pip._vendor.pkg_resources.NullProvider._has
    - sys._getframe
    - pip._vendor.pkg_resources.NullProvider.has_metadata
    - pip._vendor.pkg_resources.FileMetadata._warn_on_replacement
    - os.path.isfile
    - ntpath.isabs
    - <builtin>.map
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pip._vendor.pkg_resources.NullProvider._get
    - itertools.chain.from_iterable
    - pip._vendor.pkg_resources.NullProvider.get_metadata
    - pip._internal.utils._jaraco_text.yield_lines
    - posixpath.isabs
    - warnings.warn
    - pip._vendor.pkg_resources.FileMetadata.has_metadata
    - f.read
    - pip._vendor.pkg_resources.FileMetadata.get_metadata
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1969
    functionName: pip._vendor.pkg_resources.ZipProvider._eager_to_zip
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - fspath.startswith
    - path.split
    - fspath.rstrip
    - posixpath.isabs
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - ntpath.isabs
    - <builtin>.len
    - warnings.warn
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.NullProvider._fn
    - resource_name.split
    - os.path.join
    - <builtin>.globals
    - sys._getframe
    - pip._vendor.pkg_resources.ZipProvider._zipinfo_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - manager
    - zip_path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1867
    functionName: pip._vendor.pkg_resources.ZipProvider._extract_resource
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - time.mktime
    - pip._vendor.pkg_resources.ZipProvider._is_current
    - manager.extraction_error
    - pip._vendor.pkg_resources._mkstemp
    - os.rename
    - os.path.join
    - fspath.startswith
    - os.close
    - pip._vendor.pkg_resources.ZipProvider._get_date_and_size
    - os.path.isfile
    - <builtin>.len
    - os.utime
    - os.sep.join
    - os.write
    - manager.get_cache_path
    - parts.pop
    - os.stat
    - tempfile.mkstemp
    - os.path.dirname
    - pip._vendor.pkg_resources.ZipProvider._extract_resource
    - <builtin>.open
    - pip._vendor.pkg_resources.ZipProvider._index
    - pip._vendor.pkg_resources.ZipProvider._parts
    - manager.postprocess
    - f.read
    - os.unlink
    linkageType: pythonLinkage
    raised:
    - IOError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - zip_stat
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1858
    functionName: pip._vendor.pkg_resources.ZipProvider._get_date_and_size
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 3
    functionsReached:
    - time.mktime
    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: time.mktime
    functionSourceFile: time
    functionUses: 4
    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: 1
    functionLinenumber: 1942
    functionName: pip._vendor.pkg_resources.ZipProvider._index
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 5
    functionsReached:
    - os.sep.join
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: manager.get_cache_path
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - file_path
    - zip_path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1917
    functionName: pip._vendor.pkg_resources.ZipProvider._is_current
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - os.stat
    - pip._vendor.pkg_resources.ZipProvider._get_date_and_size
    - time.mktime
    - os.path.isfile
    - <builtin>.open
    - f.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3282
    functionName: pip._vendor.pkg_resources._mkstemp
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - tempfile.mkstemp
    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.write
    functionSourceFile: os
    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: os.close
    functionSourceFile: os
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.utime
    functionSourceFile: os
    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: manager.postprocess
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.rename
    functionSourceFile: os
    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: os.path.isfile
    functionSourceFile: os
    functionUses: 117
    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.unlink
    functionSourceFile: os
    functionUses: 29
    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: manager.extraction_error
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.read
    functionSourceFile: <builtin>
    functionUses: 135
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2016
    functionName: pip._vendor.pkg_resources.FileMetadata.get_metadata_lines
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - tmpl.format
    - itertools.chain.from_iterable
    - pip._vendor.pkg_resources.FileMetadata._warn_on_replacement
    - <builtin>.locals
    - pip._internal.utils._jaraco_text.yield_lines
    - <builtin>.map
    - warnings.warn
    - f.read
    - io.open
    - pip._vendor.pkg_resources.FileMetadata.get_metadata
    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: eagers.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.sep.join
    functionSourceFile: os
    functionUses: 11
    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: parts.pop
    functionSourceFile: <builtin>
    functionUses: 159
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fspath
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1959
    functionName: pip._vendor.pkg_resources.ZipProvider._has
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - fspath.startswith
    - fspath.rstrip
    - <builtin>.len
    - os.sep.join
    - pip._vendor.pkg_resources.ZipProvider._index
    - pip._vendor.pkg_resources.ZipProvider._zipinfo_name
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fspath
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1963
    functionName: pip._vendor.pkg_resources.ZipProvider._isdir
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - fspath.startswith
    - fspath.rstrip
    - <builtin>.len
    - os.sep.join
    - pip._vendor.pkg_resources.ZipProvider._index
    - pip._vendor.pkg_resources.ZipProvider._zipinfo_name
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fspath
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1966
    functionName: pip._vendor.pkg_resources.ZipProvider._listdir
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - fspath.startswith
    - fspath.rstrip
    - <builtin>.len
    - os.sep.join
    - pip._vendor.pkg_resources.ZipProvider._index
    - pip._vendor.pkg_resources.ZipProvider._zipinfo_name
    - <builtin>.list
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1991
    functionName: pip._vendor.pkg_resources.FileMetadata.__init__
    functionSourceFile: pip._vendor.pkg_resources
    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: io.open
    functionSourceFile: io
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - metadata
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2009
    functionName: pip._vendor.pkg_resources.FileMetadata._warn_on_replacement
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 6
    functionsReached:
    - tmpl.format
    - <builtin>.locals
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - egg_info
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2040
    functionName: pip._vendor.pkg_resources.PathMetadata.__init__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - importer
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2048
    functionName: pip._vendor.pkg_resources.EggMetadata.__init__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 9
    functionsReached:
    - pip._vendor.pkg_resources.EggProvider._set_egg
    - os.path.basename
    - pip._vendor.pkg_resources.EggProvider._setup_prefix
    - pip._vendor.pkg_resources._parents
    - <builtin>.filter
    - os.path.join
    - <builtin>.next
    - os.path.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - importer_type
    - distribution_finder
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2063
    functionName: pip._vendor.pkg_resources.register_finder
    functionSourceFile: pip._vendor.pkg_resources
    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: pkgutil.get_importer
    functionSourceFile: pkgutil
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f204f430>
    argNames:
    - importer
    - path_item
    - only
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2080
    functionName: pip._vendor.pkg_resources.find_eggs_in_zip
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 8
    functionsReached:
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - zipimport.zipimporter
    - importer.archive.endswith
    - pip._vendor.pkg_resources.normalize_path
    - <builtin>.isinstance
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - <builtin>.tuple
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.NullProvider._fn
    - pip._vendor.pkg_resources.find_eggs_in_zip
    - path.split
    - pip._vendor.pkg_resources.Distribution.from_filename
    - pip._vendor.pkg_resources._is_unpacked_egg
    - itertools.dropwhile
    - pip._vendor.pkg_resources.NullProvider.resource_listdir
    - pip._vendor.pkg_resources.EggProvider._set_egg
    - pip._vendor.pkg_resources.safe_name
    - pip._vendor.pkg_resources.EggMetadata.__init__
    - ext.lower
    - subitem.lower
    - <builtin>.str
    - letter.lower
    - pip._vendor.pkg_resources.issue_warning
    - resource_name.split
    - os.path.join
    - os.path.splitext
    - <builtin>.globals
    - os.path.realpath
    - pip._vendor.pkg_resources.EmptyProvider._listdir
    - sys._getframe
    - pip._vendor.pkg_resources.Distribution.__init__
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - pip._vendor.pkg_resources.NullProvider.has_metadata
    - pip._vendor.pkg_resources.NullProvider._has
    - <builtin>.list
    - re.sub
    - os.path.isfile
    - ntpath.isabs
    - pip._vendor.pkg_resources.EggProvider._setup_prefix
    - pip._vendor.pkg_resources._is_egg_path
    - path.lower
    - pip._vendor.pkg_resources._normalize_cached
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - pip._vendor.pkg_resources._cygwin_patch
    - os.path.abspath
    - <builtin>.next
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.pkg_resources.Distribution.from_location
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.pkg_resources.safe_version
    - <builtin>.int
    - os.path.basename
    - posixpath.isabs
    - pip._vendor.pkg_resources._is_zip_egg
    - match.group
    - os.path.normcase
    - pip._vendor.pkg_resources.NullProvider._listdir
    - part.isdigit
    - <builtin>.filter
    - pip._vendor.pkg_resources._parents
    - warnings.warn
    - pip._vendor.pkg_resources.FileMetadata.has_metadata
    - os.path.split
    - _local_version_separators.split
    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: importer.archive.endswith
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1ebd970>
    argNames:
    - cls
    - filename
    - metadata
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2912
    functionName: pip._vendor.pkg_resources.Distribution.from_filename
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 10
    functionsReached:
    - pip._vendor.pkg_resources.normalize_path
    - <builtin>.isinstance
    - itertools.dropwhile
    - pip._vendor.pkg_resources.safe_name
    - ext.lower
    - <builtin>.str
    - letter.lower
    - os.path.splitext
    - <builtin>.tuple
    - pip._vendor.pkg_resources.Distribution.__init__
    - os.path.realpath
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - re.sub
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.pkg_resources._normalize_cached
    - os.path.normpath
    - os.path.abspath
    - pip._vendor.pkg_resources._cygwin_patch
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.pkg_resources.Distribution.from_location
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.pkg_resources.safe_version
    - _local_version_separators.split
    - os.path.basename
    - <builtin>.int
    - part.isdigit
    - match.group
    - os.path.normcase
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2435
    functionName: pip._vendor.pkg_resources._is_egg_path
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 11
    functionsReached:
    - pip._vendor.pkg_resources._is_zip_egg
    - os.path.isfile
    - path.lower
    - os.path.join
    - zipfile.is_zipfile
    - pip._vendor.pkg_resources._is_unpacked_egg
    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: zipimport.zipimporter
    functionSourceFile: zipimport
    functionUses: 18
    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: subitem.lower
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1f0fc40>
    argNames:
    - cls
    - location
    - basename
    - metadata
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 2654
    functionName: pip._vendor.pkg_resources.Distribution.from_location
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 12
    functionsReached:
    - <builtin>.isinstance
    - itertools.dropwhile
    - pip._vendor.pkg_resources.safe_name
    - ext.lower
    - <builtin>.str
    - letter.lower
    - os.path.splitext
    - <builtin>.tuple
    - pip._vendor.pkg_resources.Distribution.__init__
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - re.sub
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.pkg_resources.safe_version
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2046ca0>
    argNames:
    - importer
    - path_item
    - only
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2110
    functionName: pip._vendor.pkg_resources.find_nothing
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f20469d0>
    argNames:
    - importer
    - path_item
    - only
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2117
    functionName: pip._vendor.pkg_resources.find_on_path
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._vendor.pkg_resources.normalize_path
    - <builtin>.isinstance
    - lower.endswith
    - pip._vendor.pkg_resources.Distribution.from_filename
    - pip._vendor.pkg_resources._is_unpacked_egg
    - itertools.dropwhile
    - pip._vendor.pkg_resources.safe_name
    - ext.lower
    - <builtin>.str
    - pip._vendor.pkg_resources.safe_listdir
    - letter.lower
    - os.path.join
    - pip._vendor.pkg_resources.PathMetadata.__init__
    - os.path.splitext
    - os.path.realpath
    - pip._vendor.pkg_resources.Distribution.__init__
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.tuple
    - <builtin>.list
    - re.sub
    - os.path.isfile
    - <builtin>.sorted
    - pip._vendor.pkg_resources._is_egg_path
    - path.lower
    - pip._vendor.pkg_resources._normalize_cached
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.isdir
    - pip._vendor.pkg_resources._cygwin_patch
    - os.path.abspath
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.pkg_resources.dist_factory
    - pip._vendor.pkg_resources.Distribution.from_location
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.pkg_resources.safe_version
    - <builtin>.int
    - os.path.basename
    - _local_version_separators.split
    - pip._vendor.pkg_resources._is_zip_egg
    - os.path.normcase
    - part.isdigit
    - os.listdir
    - match.group
    - entry.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Dict object at 0x7f30f1eea400>
    argNames:
    - filename
    - _cache
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2427
    functionName: pip._vendor.pkg_resources._normalize_cached
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 19
    functionsReached:
    - pip._vendor.pkg_resources.normalize_path
    - os.path.realpath
    - os.path.normcase
    - os.path.abspath
    - os.path.normpath
    - pip._vendor.pkg_resources._cygwin_patch
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2450
    functionName: pip._vendor.pkg_resources._is_unpacked_egg
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 12
    functionsReached:
    - path.lower
    - os.path.isfile
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2173
    functionName: pip._vendor.pkg_resources.safe_listdir
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - os.listdir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - path_item
    - entry
    - only
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2138
    functionName: pip._vendor.pkg_resources.dist_factory
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - pip._vendor.pkg_resources._is_zip_egg
    - os.path.isfile
    - lower.endswith
    - path.lower
    - pip._vendor.pkg_resources._is_egg_path
    - os.path.isdir
    - os.path.join
    - zipfile.is_zipfile
    - entry.lower
    - pip._vendor.pkg_resources._is_unpacked_egg
    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: entry.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lower.endswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2166
    functionName: pip._vendor.pkg_resources.NoDists.__bool__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fullpath
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2169
    functionName: pip._vendor.pkg_resources.NoDists.__call__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2189
    functionName: pip._vendor.pkg_resources.distributions_from_metadata
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - itertools.dropwhile
    - pip._vendor.pkg_resources.safe_name
    - ext.lower
    - <builtin>.str
    - letter.lower
    - os.path.splitext
    - pip._vendor.pkg_resources.PathMetadata.__init__
    - pip._vendor.pkg_resources.Distribution.__init__
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - re.sub
    - <builtin>.len
    - pip._vendor.packaging.version._parse_local_version
    - os.path.isdir
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.pkg_resources.Distribution.from_location
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.pkg_resources.safe_version
    - pip._vendor.pkg_resources.FileMetadata.__init__
    - os.path.basename
    - _local_version_separators.split
    - <builtin>.int
    - match.group
    - part.isdigit
    - os.listdir
    - os.path.dirname
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2207
    functionName: pip._vendor.pkg_resources.non_empty_lines
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - <builtin>.open
    - line.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2218
    functionName: pip._vendor.pkg_resources.resolve_egg_link
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - line.strip
    - <builtin>.map
    - pip._vendor.pkg_resources.non_empty_lines
    - os.path.dirname
    - <builtin>.open
    - os.path.join
    - <builtin>.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - importer_type
    - namespace_handler
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2240
    functionName: pip._vendor.pkg_resources.register_namespace_handler
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - packageName
    - path_item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 2258
    functionName: pip._vendor.pkg_resources._handle_ns
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 3
    functionsReached:
    - inspect.getmro
    - <builtin>.isinstance
    - pip._vendor.pkg_resources.normalize_path
    - pip._vendor.pkg_resources._rebuild_mod_path
    - warnings.catch_warnings
    - pip._vendor.pkg_resources._always_object
    - sys.modules.get
    - warnings.simplefilter
    - os.path.realpath
    - path.append
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.sorted
    - pip._vendor.pkg_resources._normalize_cached
    - types.ModuleType
    - os.path.normpath
    - pip._vendor.pkg_resources._cygwin_patch
    - os.path.abspath
    - pip._vendor.pkg_resources._set_parent_ns
    - pkgutil.get_importer.find_module
    - pkgutil.get_importer.find_spec
    - pkgutil.get_importer
    - parts.pop
    - importlib.import_module
    - packageName.split
    - os.path.normcase
    - <builtin>.setattr
    - <builtin>.getattr
    - <builtin>.hasattr
    - <builtin>.type
    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: pkgutil.get_importer.find_spec
    functionSourceFile: pkgutil
    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: warnings.catch_warnings
    functionSourceFile: warnings
    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: warnings.simplefilter
    functionSourceFile: warnings
    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: pkgutil.get_importer.find_module
    functionSourceFile: pkgutil
    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: sys.modules.get
    functionSourceFile: sys
    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: types.ModuleType
    functionSourceFile: types
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - packageName
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2459
    functionName: pip._vendor.pkg_resources._set_parent_ns
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 4
    functionsReached:
    - packageName.split
    - <builtin>.setattr
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.append
    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: importlib.import_module
    functionSourceFile: importlib
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - orig_path
    - package_name
    - module
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2295
    functionName: pip._vendor.pkg_resources._rebuild_mod_path
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pkg_resources.normalize_path
    - os.path.realpath
    - os.path.normcase
    - <builtin>.sorted
    - os.path.abspath
    - pip._vendor.pkg_resources._normalize_cached
    - os.path.normpath
    - pip._vendor.pkg_resources._cygwin_patch
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - entry
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2302
    functionName: pip._vendor.pkg_resources._rebuild_mod_path.safe_sys_path_index
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - <builtin>.float
    - sys_path.index
    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_path.index
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2311
    functionName: pip._vendor.pkg_resources._rebuild_mod_path.position_in_sys_path
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - package_name.count
    - pip._vendor.pkg_resources._rebuild_mod_path.safe_sys_path_index
    - pip._vendor.pkg_resources.normalize_path
    - sys_path.index
    - os.path.realpath
    - os.path.normcase
    - os.path.abspath
    - <builtin>.float
    - os.sep.join
    - pip._vendor.pkg_resources._normalize_cached
    - os.path.normpath
    - path.split
    - pip._vendor.pkg_resources._cygwin_patch
    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: package_name.count
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 9
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - packageName
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2329
    functionName: pip._vendor.pkg_resources.declare_namespace
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - inspect.getmro
    - <builtin>.isinstance
    - pip._vendor.pkg_resources.normalize_path
    - <builtin>.__import__
    - pip._vendor.pkg_resources._rebuild_mod_path
    - imp.acquire_lock
    - warnings.catch_warnings
    - pip._vendor.pkg_resources._always_object
    - sys.modules.get
    - pip._vendor.pkg_resources.declare_namespace
    - warnings.simplefilter
    - os.path.realpath
    - path.append
    - pip._vendor.pkg_resources._find_adapter
    - packageName.rpartition
    - imp.release_lock
    - <builtin>.sorted
    - _namespace_packages.setdefault
    - pip._vendor.pkg_resources._normalize_cached
    - types.ModuleType
    - os.path.normpath
    - _imp.release_lock
    - pip._vendor.pkg_resources._cygwin_patch
    - pip._vendor.pkg_resources._handle_ns
    - os.path.abspath
    - pip._vendor.pkg_resources._set_parent_ns
    - pkgutil.get_importer.find_module
    - pkgutil.get_importer.find_spec
    - pkgutil.get_importer
    - parts.pop
    - importlib.import_module
    - packageName.split
    - os.path.normcase
    - _imp.acquire_lock
    - warnings.warn
    - <builtin>.setattr
    - <builtin>.getattr
    - <builtin>.hasattr
    - <builtin>.type
    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: _imp.acquire_lock
    functionSourceFile: _imp
    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: imp.acquire_lock
    functionSourceFile: imp
    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: packageName.rpartition
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _namespace_packages.setdefault
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _imp.release_lock
    functionSourceFile: _imp
    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: imp.release_lock
    functionSourceFile: imp
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1ee2460>
    argNames:
    - path_item
    - parent
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2372
    functionName: pip._vendor.pkg_resources.fixup_namespace_packages
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - inspect.getmro
    - <builtin>.isinstance
    - pip._vendor.pkg_resources.normalize_path
    - _namespace_packages.get
    - pip._vendor.pkg_resources._rebuild_mod_path
    - imp.acquire_lock
    - warnings.catch_warnings
    - pip._vendor.pkg_resources._always_object
    - sys.modules.get
    - warnings.simplefilter
    - os.path.realpath
    - path.append
    - pip._vendor.pkg_resources._find_adapter
    - imp.release_lock
    - <builtin>.sorted
    - pip._vendor.pkg_resources._normalize_cached
    - pip._vendor.pkg_resources.fixup_namespace_packages
    - types.ModuleType
    - os.path.normpath
    - _imp.release_lock
    - pip._vendor.pkg_resources._cygwin_patch
    - pip._vendor.pkg_resources._handle_ns
    - os.path.abspath
    - pip._vendor.pkg_resources._set_parent_ns
    - pkgutil.get_importer.find_module
    - pkgutil.get_importer.find_spec
    - pkgutil.get_importer
    - parts.pop
    - importlib.import_module
    - packageName.split
    - os.path.normcase
    - _imp.acquire_lock
    - <builtin>.setattr
    - <builtin>.getattr
    - <builtin>.hasattr
    - <builtin>.type
    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: _namespace_packages.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - importer
    - path_item
    - packageName
    - module
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2384
    functionName: pip._vendor.pkg_resources.file_ns_handler
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._vendor.pkg_resources.normalize_path
    - packageName.split
    - os.path.realpath
    - os.path.normcase
    - os.path.abspath
    - pip._vendor.pkg_resources._normalize_cached
    - os.path.normpath
    - os.path.join
    - pip._vendor.pkg_resources._cygwin_patch
    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: packageName.split
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - importer
    - path_item
    - packageName
    - module
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2404
    functionName: pip._vendor.pkg_resources.null_ns_handler
    functionSourceFile: pip._vendor.pkg_resources
    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:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2411
    functionName: pip._vendor.pkg_resources.normalize_path
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 21
    functionsReached:
    - os.path.realpath
    - os.path.normcase
    - os.path.abspath
    - os.path.normpath
    - pip._vendor.pkg_resources._cygwin_patch
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2416
    functionName: pip._vendor.pkg_resources._cygwin_patch
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 22
    functionsReached:
    - os.path.abspath
    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.realpath
    functionSourceFile: os
    functionUses: 88
    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.normcase
    functionSourceFile: os
    functionUses: 115
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2442
    functionName: pip._vendor.pkg_resources._is_zip_egg
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 12
    functionsReached:
    - zipfile.is_zipfile
    - path.lower
    - os.path.isfile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.lower
    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: zipfile.is_zipfile
    functionSourceFile: zipfile
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Tuple object at 0x7f30f1ef4070>
    - <ast.Tuple object at 0x7f30f1ef40a0>
    - <ast.Constant object at 0x7f30f1ef40d0>
    argNames:
    - self
    - name
    - module_name
    - attrs
    - extras
    - dist
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2485
    functionName: pip._vendor.pkg_resources.EntryPoint.__init__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 7
    functionsReached:
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2494
    functionName: pip._vendor.pkg_resources.EntryPoint.__str__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2502
    functionName: pip._vendor.pkg_resources.EntryPoint.__repr__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1ef9220>
    argNames:
    - self
    - require
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2505
    functionName: pip._vendor.pkg_resources.EntryPoint.load
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - re.sub
    - pip._vendor.pkg_resources.EntryPoint.require
    - functools.reduce
    - working_set.resolve
    - <builtin>.__import__
    - <builtin>.map
    - warnings.warn
    - pip._vendor.pkg_resources.EntryPoint.resolve
    - pip._vendor.pkg_resources.safe_extra
    - pip._vendor.pkg_resources.Distribution.requires
    - deps.extend
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1efd0a0>
    - <ast.Constant object at 0x7f30f1efd0d0>
    argNames:
    - self
    - env
    - installer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2530
    functionName: pip._vendor.pkg_resources.EntryPoint.require
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - re.sub
    - working_set.resolve
    - <builtin>.map
    - pip._vendor.pkg_resources.safe_extra
    - pip._vendor.pkg_resources.Distribution.requires
    - deps.extend
    - <builtin>.list
    linkageType: pythonLinkage
    raised:
    - UnknownExtra
    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: 2520
    functionName: pip._vendor.pkg_resources.EntryPoint.resolve
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - <builtin>.__import__
    - functools.reduce
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Tuple object at 0x7f30f1eaaeb0>
    argNames:
    - self
    - extras
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2820
    functionName: pip._vendor.pkg_resources.Distribution.requires
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 3
    functionsReached:
    - pip._vendor.pkg_resources.safe_extra
    - re.sub
    - deps.extend
    linkageType: pythonLinkage
    raised:
    - UnknownExtra
    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: working_set.resolve
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pkg_resources.EntryPoint
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1efda90>
    argNames:
    - cls
    - src
    - dist
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 2553
    functionName: pip._vendor.pkg_resources.EntryPoint.parse
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 6
    functionsReached:
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._vendor.pkg_resources.EntryPoint.__init__
    - cls.pattern.match
    - pip._vendor.pkg_resources.Requirement.parse
    - pip._internal.utils._jaraco_text.yield_lines
    - m.groupdict
    - <builtin>.map
    - pip._vendor.pkg_resources.parse_requirements
    - item.endswith
    - <builtin>.iter
    - pip._vendor.pkg_resources.EntryPoint._parse_extras
    - <builtin>.tuple
    - <builtin>.next
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: cls.pattern.match
    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: m.groupdict
    functionSourceFile: <builtin>
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - extras_spec
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2573
    functionName: pip._vendor.pkg_resources.EntryPoint._parse_extras
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 7
    functionsReached:
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._vendor.pkg_resources.Requirement.parse
    - pip._internal.utils._jaraco_text.yield_lines
    - <builtin>.map
    - pip._vendor.pkg_resources.parse_requirements
    - item.endswith
    - <builtin>.iter
    - <builtin>.next
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1f02d30>
    argNames:
    - cls
    - group
    - lines
    - dist
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2582
    functionName: pip._vendor.pkg_resources.EntryPoint.parse_group
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 5
    functionsReached:
    - pip._vendor.pkg_resources.EntryPoint.parse
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - cls.pattern.match
    - pip._vendor.pkg_resources.EntryPoint.__init__
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.Requirement.parse
    - m.groupdict
    - <builtin>.map
    - pip._vendor.pkg_resources.parse_requirements
    - item.endswith
    - <builtin>.iter
    - pip._vendor.pkg_resources.EntryPoint._parse_extras
    - <builtin>.tuple
    - <builtin>.next
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1f06820>
    argNames:
    - cls
    - data
    - dist
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2595
    functionName: pip._vendor.pkg_resources.EntryPoint.parse_map
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 4
    functionsReached:
    - line.startswith
    - content.append
    - <builtin>.isinstance
    - cls.pattern.match
    - pip._vendor.pkg_resources.EntryPoint._parse_extras
    - line.endswith
    - item.endswith
    - <builtin>.tuple
    - pip._vendor.pkg_resources.EntryPoint.parse
    - pip._vendor.pkg_resources.EntryPoint.__init__
    - pip._vendor.pkg_resources.Requirement.parse
    - <builtin>.map
    - <builtin>.iter
    - data.items
    - group.strip
    - <builtin>.next
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.split_sections
    - m.groupdict
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.EntryPoint.parse_group
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3256
    functionName: pip._vendor.pkg_resources.split_sections
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 7
    functionsReached:
    - line.startswith
    - itertools.chain.from_iterable
    - content.append
    - pip._internal.utils._jaraco_text.yield_lines
    - <builtin>.map
    - line.endswith
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: group.strip
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - lines
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2614
    functionName: pip._vendor.pkg_resources._version_from_file
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - itertools.dropwhile
    - <builtin>.str
    - letter.lower
    - value.strip
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - re.sub
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.pkg_resources.safe_version
    - <builtin>.int
    - _local_version_separators.split
    - part.isdigit
    - match.group
    - <builtin>.filter
    - line.partition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2620
    functionName: pip._vendor.pkg_resources._version_from_file.is_version_line
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - line.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.lower
    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: line.partition
    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: value.strip
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1f0f220>
    - <ast.Constant object at 0x7f30f1f0f250>
    - <ast.Constant object at 0x7f30f1f0f280>
    - <ast.Constant object at 0x7f30f1f0f2b0>
    - <ast.Name object at 0x7f30f1f0f2e0>
    - <ast.Constant object at 0x7f30f1f0f310>
    - <ast.Name object at 0x7f30f1f0f340>
    argNames:
    - self
    - location
    - metadata
    - project_name
    - version
    - py_version
    - platform
    - precedence
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2634
    functionName: pip._vendor.pkg_resources.Distribution.__init__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 17
    functionsReached:
    - <builtin>.isinstance
    - itertools.dropwhile
    - pip._vendor.pkg_resources.safe_name
    - <builtin>.str
    - letter.lower
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - re.sub
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.pkg_resources.safe_version
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    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: ext.lower
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2675
    functionName: pip._vendor.pkg_resources.Distribution._reload_version
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2679
    functionName: pip._vendor.pkg_resources.Distribution.hashcmp
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2689
    functionName: pip._vendor.pkg_resources.Distribution.__hash__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2692
    functionName: pip._vendor.pkg_resources.Distribution.__lt__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2695
    functionName: pip._vendor.pkg_resources.Distribution.__le__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2698
    functionName: pip._vendor.pkg_resources.Distribution.__gt__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2701
    functionName: pip._vendor.pkg_resources.Distribution.__ge__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2704
    functionName: pip._vendor.pkg_resources.Distribution.__eq__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2710
    functionName: pip._vendor.pkg_resources.Distribution.__ne__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2718
    functionName: pip._vendor.pkg_resources.Distribution.key
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    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: 2726
    functionName: pip._vendor.pkg_resources.Distribution.parsed_version
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.isinstance
    - <builtin>.int
    - _local_version_separators.split
    - part.isdigit
    - match.group
    - ex.add_note
    - letter.lower
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.tuple
    - <builtin>.list
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - itertools.dropwhile
    - <builtin>.hasattr
    - pip._vendor.packaging.version._parse_letter_version
    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: ex.add_note
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2740
    functionName: pip._vendor.pkg_resources.Distribution._forgiving_parsed_version
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - itertools.dropwhile
    - pip._vendor.pkg_resources._forgiving_version
    - <builtin>.str
    - letter.lower
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - re.sub
    - <builtin>.len
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.pkg_resources._safe_segment
    - _PEP440_FALLBACK.search
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    - warnings.warn
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2766
    functionName: pip._vendor.pkg_resources.Distribution.version
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - itertools.dropwhile
    - <builtin>.str
    - letter.lower
    - value.strip
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.pkg_resources.Distribution._get_metadata
    - part.lower
    - <builtin>.list
    - re.sub
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.iter
    - pip._vendor.pkg_resources.Distribution._get_version
    - <builtin>.next
    - pip._vendor.packaging.version._parse_letter_version
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.pkg_resources.safe_version
    - <builtin>.reversed
    - <builtin>.int
    - part.isdigit
    - pip._vendor.pkg_resources.Distribution._get_metadata_path_for_display
    - match.group
    - <builtin>.filter
    - pip._vendor.pkg_resources._version_from_file
    - line.partition
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 2856
    functionName: pip._vendor.pkg_resources.Distribution._get_version
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - itertools.dropwhile
    - <builtin>.str
    - letter.lower
    - value.strip
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.pkg_resources.Distribution._get_metadata
    - part.lower
    - <builtin>.list
    - re.sub
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.packaging.version._parse_letter_version
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.pkg_resources.safe_version
    - <builtin>.reversed
    - <builtin>.int
    - part.isdigit
    - match.group
    - <builtin>.filter
    - pip._vendor.pkg_resources._version_from_file
    - line.partition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2834
    functionName: pip._vendor.pkg_resources.Distribution._get_metadata_path_for_display
    functionSourceFile: ''
    functionUses: 1
    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: 13
    functionLinenumber: 2781
    functionName: pip._vendor.pkg_resources.Distribution._dep_map
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._vendor.pkg_resources.Distribution._filter_extras
    - pip._vendor.packaging.markers._eval_op
    - itertools.dropwhile
    - <builtin>.str
    - op.serialize
    - <builtin>.tuple
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - re.sub
    - pip._vendor.packaging.markers._evaluate_markers
    - pip._internal.utils._jaraco_text.join_continuation
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.split_sections
    - <builtin>.filter
    - content.append
    - pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version
    - pip._vendor.packaging.markers.format_full_version
    - part.startswith
    - environment.get
    - platform.python_implementation
    - item.endswith
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - <builtin>.map
    - <builtin>.iter
    - platform.version
    - itertools.chain.from_iterable
    - pip._vendor.pkg_resources.evaluate_marker
    - pip._vendor.packaging.markers.Marker.__init__
    - match.group
    - warnings.warn
    - pip._vendor.packaging.markers.default_environment
    - current_environment.update
    - pip._vendor.pkg_resources.safe_extra
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._vendor.pkg_resources.invalid_marker
    - line.startswith
    - <builtin>.isinstance
    - version.lower
    - part.zfill
    - platform.release
    - pip._vendor.pkg_resources.Distribution._get_metadata
    - <builtin>.list
    - <builtin>.any
    - platform.machine
    - platform.system
    - platform.python_version
    - parts.pop
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - _legacy_version_replacement_map.get
    - pip._vendor.packaging.markers.Marker.evaluate
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.packaging.markers._get_env
    - _operators.get
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - letter.lower
    - line.endswith
    - platform.python_version_tuple
    - pip._vendor.pkg_resources.Distribution._build_dep_map
    - pip._vendor.packaging.version._parse_local_version
    - extra.partition
    - dm.pop
    - <builtin>.next
    - pip._vendor.packaging.specifiers._IndividualSpecifier.contains
    - groups.append
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._vendor.pkg_resources.parse_requirements
    - dm.setdefault
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2813
    functionName: pip._vendor.pkg_resources.Distribution._build_dep_map
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - pip._internal.utils._jaraco_text.join_continuation
    - line.startswith
    - content.append
    - itertools.chain.from_iterable
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.split_sections
    - <builtin>.map
    - pip._vendor.pkg_resources.parse_requirements
    - line.endswith
    - item.endswith
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.pkg_resources.Distribution._get_metadata
    - dm.setdefault
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - dm
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 2793
    functionName: pip._vendor.pkg_resources.Distribution._filter_extras
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - _operators.get
    - <builtin>.isinstance
    - pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version
    - pip._vendor.packaging.markers.format_full_version
    - part.startswith
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.markers._eval_op
    - itertools.dropwhile
    - version.lower
    - part.zfill
    - environment.get
    - _legacy_version_component_re.split
    - <builtin>.str
    - platform.python_implementation
    - pip._vendor.packaging.version._legacy_cmpkey
    - letter.lower
    - platform.release
    - op.serialize
    - <builtin>.tuple
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - platform.python_version_tuple
    - <builtin>.any
    - re.sub
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - platform.machine
    - pip._vendor.packaging.version._parse_local_version
    - extra.partition
    - dm.pop
    - pip._vendor.packaging.markers._evaluate_markers
    - platform.version
    - platform.system
    - pip._vendor.packaging.specifiers._IndividualSpecifier.contains
    - platform.python_version
    - pip._vendor.packaging.version._parse_letter_version
    - parts.pop
    - groups.append
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.pkg_resources.evaluate_marker
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - match.group
    - part.isdigit
    - <builtin>.filter
    - warnings.warn
    - _legacy_version_replacement_map.get
    - pip._vendor.packaging.markers.Marker.evaluate
    - pip._vendor.packaging.markers.default_environment
    - current_environment.update
    - pip._vendor.pkg_resources.safe_extra
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.packaging.markers._get_env
    - pip._vendor.pkg_resources.invalid_marker
    - dm.setdefault
    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: dm.pop
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: extra.partition
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dm.setdefault
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2851
    functionName: pip._vendor.pkg_resources.Distribution._get_metadata
    functionSourceFile: ''
    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: deps.extend
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1eb44f0>
    - <ast.Constant object at 0x7f30f1eb4520>
    argNames:
    - self
    - path
    - replace
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 2862
    functionName: pip._vendor.pkg_resources.Distribution.activate
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - pip._vendor.pkg_resources.normalize_path
    - <builtin>.isinstance
    - pip._vendor.pkg_resources.Distribution.check_version_conflict
    - _namespace_packages.get
    - <builtin>.__import__
    - sys.path.insert
    - pip._vendor.pkg_resources._rebuild_mod_path
    - imp.acquire_lock
    - warnings.catch_warnings
    - pip._vendor.pkg_resources._always_object
    - sys.modules.get
    - pip._vendor.pkg_resources.declare_namespace
    - warnings.simplefilter
    - <builtin>.enumerate
    - pip._vendor.pkg_resources.issue_warning
    - <builtin>.globals
    - os.path.realpath
    - pip._vendor.pkg_resources.Distribution._get_metadata
    - sys._getframe
    - npath.index
    - pip._vendor.pkg_resources.Distribution.insert_on
    - path.append
    - pip._vendor.pkg_resources._find_adapter
    - packageName.rpartition
    - imp.release_lock
    - <builtin>.sorted
    - _namespace_packages.setdefault
    - pip._vendor.pkg_resources._normalize_cached
    - pip._vendor.pkg_resources.fixup_namespace_packages
    - npath.insert
    - os.path.normpath
    - types.ModuleType
    - pip._vendor.pkg_resources._cygwin_patch
    - _imp.release_lock
    - os.path.abspath
    - pip._vendor.pkg_resources._handle_ns
    - pip._vendor.pkg_resources._set_parent_ns
    - pkgutil.get_importer.find_module
    - pkgutil.get_importer.find_spec
    - pkgutil.get_importer
    - parts.pop
    - importlib.import_module
    - fn.startswith
    - packageName.split
    - os.path.normcase
    - _imp.acquire_lock
    - os.path.dirname
    - dict.fromkeys
    - warnings.warn
    - <builtin>.setattr
    - <builtin>.getattr
    - <builtin>.hasattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 4
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1ec66a0>
    - <ast.Constant object at 0x7f30f1ec66d0>
    argNames:
    - self
    - path
    - loc
    - replace
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2950
    functionName: pip._vendor.pkg_resources.Distribution.insert_on
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - pip._vendor.pkg_resources.normalize_path
    - pip._vendor.pkg_resources.Distribution.check_version_conflict
    - sys.path.insert
    - <builtin>.enumerate
    - pip._vendor.pkg_resources.issue_warning
    - <builtin>.globals
    - os.path.realpath
    - pip._vendor.pkg_resources.Distribution._get_metadata
    - sys._getframe
    - npath.index
    - pip._vendor.pkg_resources._normalize_cached
    - npath.insert
    - os.path.normpath
    - os.path.abspath
    - pip._vendor.pkg_resources._cygwin_patch
    - fn.startswith
    - os.path.normcase
    - os.path.dirname
    - dict.fromkeys
    - warnings.warn
    - <builtin>.getattr
    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: 1
    functionLinenumber: 2873
    functionName: pip._vendor.pkg_resources.Distribution.egg_name
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._vendor.pkg_resources.to_filename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2885
    functionName: pip._vendor.pkg_resources.Distribution.__repr__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2891
    functionName: pip._vendor.pkg_resources.Distribution.__str__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - attr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2899
    functionName: pip._vendor.pkg_resources.Distribution.__getattr__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - attr.startswith
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2905
    functionName: pip._vendor.pkg_resources.Distribution.__dir__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - attr.startswith
    - <builtin>.list
    - <builtin>.set
    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: 4
    functionLinenumber: 2917
    functionName: pip._vendor.pkg_resources.Distribution.as_requirement
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - <builtin>.isinstance
    - pip._vendor.pkg_resources.Requirement.parse
    - pip._internal.utils._jaraco_text.yield_lines
    - <builtin>.map
    - pip._vendor.pkg_resources.parse_requirements
    - item.endswith
    - <builtin>.iter
    - <builtin>.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - group
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 2926
    functionName: pip._vendor.pkg_resources.Distribution.load_entry_point
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - line.startswith
    - content.append
    - <builtin>.isinstance
    - cls.pattern.match
    - pip._vendor.pkg_resources.EntryPoint._parse_extras
    - pip._vendor.pkg_resources.Distribution.get_entry_info
    - line.endswith
    - item.endswith
    - <builtin>.tuple
    - pip._vendor.pkg_resources.Distribution._get_metadata
    - ep_map.get
    - pip._vendor.pkg_resources.EntryPoint.parse
    - pip._vendor.pkg_resources.Distribution.get_entry_map
    - pip._vendor.pkg_resources.EntryPoint.__init__
    - pip._vendor.pkg_resources.Requirement.parse
    - <builtin>.map
    - <builtin>.iter
    - data.items
    - group.strip
    - <builtin>.next
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.split_sections
    - m.groupdict
    - ep.load
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.EntryPoint.parse_map
    - pip._vendor.pkg_resources.EntryPoint.parse_group
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - group
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2945
    functionName: pip._vendor.pkg_resources.Distribution.get_entry_info
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - line.startswith
    - content.append
    - <builtin>.isinstance
    - cls.pattern.match
    - pip._vendor.pkg_resources.EntryPoint._parse_extras
    - line.endswith
    - item.endswith
    - <builtin>.tuple
    - pip._vendor.pkg_resources.Distribution._get_metadata
    - ep_map.get
    - pip._vendor.pkg_resources.EntryPoint.parse
    - pip._vendor.pkg_resources.Distribution.get_entry_map
    - pip._vendor.pkg_resources.EntryPoint.__init__
    - pip._vendor.pkg_resources.Requirement.parse
    - <builtin>.map
    - <builtin>.iter
    - data.items
    - group.strip
    - <builtin>.next
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.split_sections
    - m.groupdict
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.EntryPoint.parse_map
    - pip._vendor.pkg_resources.EntryPoint.parse_group
    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: ep.load
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1ec1b20>
    argNames:
    - self
    - group
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2933
    functionName: pip._vendor.pkg_resources.Distribution.get_entry_map
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 3
    functionsReached:
    - line.startswith
    - content.append
    - <builtin>.isinstance
    - cls.pattern.match
    - pip._vendor.pkg_resources.EntryPoint._parse_extras
    - line.endswith
    - item.endswith
    - <builtin>.tuple
    - pip._vendor.pkg_resources.Distribution._get_metadata
    - ep_map.get
    - pip._vendor.pkg_resources.EntryPoint.parse
    - pip._vendor.pkg_resources.EntryPoint.__init__
    - pip._vendor.pkg_resources.Requirement.parse
    - <builtin>.map
    - <builtin>.iter
    - data.items
    - group.strip
    - <builtin>.next
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources.split_sections
    - m.groupdict
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.EntryPoint.parse_map
    - pip._vendor.pkg_resources.EntryPoint.parse_group
    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: ep_map.get
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3018
    functionName: pip._vendor.pkg_resources.Distribution.check_version_conflict
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - pip._vendor.pkg_resources.normalize_path
    - fn.startswith
    - os.path.normcase
    - os.path.realpath
    - dict.fromkeys
    - warnings.warn
    - os.path.abspath
    - pip._vendor.pkg_resources.issue_warning
    - <builtin>.getattr
    - os.path.normpath
    - <builtin>.globals
    - pip._vendor.pkg_resources._cygwin_patch
    - pip._vendor.pkg_resources.Distribution._get_metadata
    - sys._getframe
    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.path.insert
    functionSourceFile: sys
    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: npath.insert
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: npath.index
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fn.startswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3044
    functionName: pip._vendor.pkg_resources.Distribution.has_version
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.globals
    - warnings.warn
    - pip._vendor.pkg_resources.issue_warning
    - <builtin>.repr
    - sys._getframe
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3055
    functionName: pip._vendor.pkg_resources.Distribution.clone
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - names.split
    - <builtin>.getattr
    - kw.setdefault
    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: names.split
    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: kw.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3064
    functionName: pip._vendor.pkg_resources.Distribution.extras
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    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: 6
    functionLinenumber: 3069
    functionName: pip._vendor.pkg_resources.EggInfoDistribution._reload_version
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - itertools.dropwhile
    - <builtin>.str
    - letter.lower
    - value.strip
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.pkg_resources.Distribution._get_metadata
    - part.lower
    - <builtin>.list
    - re.sub
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.iter
    - pip._vendor.pkg_resources.Distribution._get_version
    - <builtin>.next
    - pip._vendor.packaging.version._parse_letter_version
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.pkg_resources.safe_version
    - <builtin>.reversed
    - <builtin>.int
    - part.isdigit
    - match.group
    - <builtin>.filter
    - pip._vendor.pkg_resources._version_from_file
    - line.partition
    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: pip._vendor.pkg_resources.DistInfoDistribution
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - re.compile
    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: 3097
    functionName: pip._vendor.pkg_resources.DistInfoDistribution._parsed_pkg_info
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - email.parser.Parser
    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: email.parser.Parser
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 3107
    functionName: pip._vendor.pkg_resources.DistInfoDistribution._dep_map
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._internal.utils._jaraco_text.join_continuation
    - pip._vendor.pkg_resources.DistInfoDistribution._compute_dependencies.reqs_for_extra
    - re.sub
    - extra.strip
    - itertools.chain.from_iterable
    - pip._internal.utils._jaraco_text.yield_lines
    - reqs.extend
    - dict.fromkeys
    - <builtin>.map
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.safe_extra
    - pip._vendor.pkg_resources.DistInfoDistribution._compute_dependencies
    - item.endswith
    - types.MappingProxyType
    - <builtin>.iter
    - <builtin>.next
    - req.marker.evaluate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3114
    functionName: pip._vendor.pkg_resources.DistInfoDistribution._compute_dependencies
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - pip._internal.utils._jaraco_text.join_continuation
    - pip._vendor.pkg_resources.DistInfoDistribution._compute_dependencies.reqs_for_extra
    - re.sub
    - extra.strip
    - itertools.chain.from_iterable
    - pip._internal.utils._jaraco_text.yield_lines
    - reqs.extend
    - dict.fromkeys
    - <builtin>.map
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.safe_extra
    - item.endswith
    - <builtin>.iter
    - types.MappingProxyType
    - <builtin>.next
    - req.marker.evaluate
    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: reqs.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - extra
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3123
    functionName: pip._vendor.pkg_resources.DistInfoDistribution._compute_dependencies.reqs_for_extra
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - req.marker.evaluate
    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: types.MappingProxyType
    functionSourceFile: types
    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: extra.strip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - lines
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: pip._internal.utils._jaraco_text.join_continuation
    functionSourceFile: pip._internal.utils._jaraco_text
    functionUses: 27
    functionsReached:
    - <builtin>.next
    - item.endswith
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - requirement_string
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3172
    functionName: pip._vendor.pkg_resources.Requirement.__init__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - re.sub
    - pip._vendor.pkg_resources.safe_name
    - <builtin>.str
    - <builtin>.map
    - <builtin>.frozenset
    - <builtin>.tuple
    - project_name.lower
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3189
    functionName: pip._vendor.pkg_resources.Requirement.__eq__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3192
    functionName: pip._vendor.pkg_resources.Requirement.__ne__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3195
    functionName: pip._vendor.pkg_resources.Requirement.__contains__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3207
    functionName: pip._vendor.pkg_resources.Requirement.__hash__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3210
    functionName: pip._vendor.pkg_resources.Requirement.__repr__
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - classes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3219
    functionName: pip._vendor.pkg_resources._always_object
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 40
    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: inspect.getmro
    functionSourceFile: inspect
    functionUses: 40
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3237
    functionName: pip._vendor.pkg_resources.ensure_directory
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - os.path.dirname
    - os.makedirs
    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: 49
    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.mkdir
    functionSourceFile: os
    functionUses: 44
    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.startswith
    functionSourceFile: <builtin>
    functionUses: 65
    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.endswith
    functionSourceFile: <builtin>
    functionUses: 64
    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: content.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: tempfile.mkstemp
    functionSourceFile: tempfile
    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: warnings.filterwarnings
    functionSourceFile: warnings
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - f
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3301
    functionName: pip._vendor.pkg_resources._call_aside
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 1
    functionsReached:
    - inspect.getmro
    - dists.append
    - pip._vendor.pkg_resources.Environment.scan
    - ws.add
    - darwinVersionString.match
    - dist.activate
    - operator.attrgetter
    - ws.resolve
    - dists.sort
    - _canonicalize_regex.sub
    - provDarwin.group
    - pip._vendor.pkg_resources._always_object
    - keys2.append
    - <builtin>.locals
    - pip._vendor.pkg_resources._initialize
    - pip._vendor.pkg_resources.Environment.add
    - keys.append
    - ws.add_entry
    - pip._vendor.pkg_resources.WorkingSet._build_from_requirements
    - item.endswith
    - <builtin>.tuple
    - pip._vendor.pkg_resources._declare_state
    - <builtin>.globals
    - dist.insert_on
    - <builtin>.list
    - ws.require
    - pip._vendor.pkg_resources._initialize_master_working_set
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.map
    - pip._vendor.pkg_resources.WorkingSet.add
    - pip._vendor.pkg_resources.Environment.can_add
    - <builtin>.iter
    - <builtin>.type
    - <builtin>.next
    - g.update
    - pip._vendor.pkg_resources.find_distributions
    - typing.cast
    - pip._vendor.pkg_resources.WorkingSet.__init__
    - pip._internal.utils._jaraco_text.join_continuation
    - pkgutil.get_importer
    - itertools.chain.from_iterable
    - dist.has_version
    - reqMac.group
    - <builtin>.int
    - name.startswith
    - pip._internal.utils._jaraco_text.yield_lines
    - dict.fromkeys
    - pip._vendor.pkg_resources.compatible_platforms
    - pip._vendor.pkg_resources.parse_requirements
    - _state_vars.update
    - pip._vendor.pkg_resources.Environment.__init__
    - macosVersionString.match
    - provMac.group
    - <builtin>.getattr
    - pip._vendor.pkg_resources.WorkingSet.add_entry
    - <builtin>.dir
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - pip._vendor.pkg_resources.ResourceManager.__init__
    - pip._vendor.pkg_resources.WorkingSet._build_master
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Call object at 0x7f30f1e3bd60>
    argNames:
    - g
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3307
    functionName: pip._vendor.pkg_resources._initialize
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - name.startswith
    - <builtin>.getattr
    - <builtin>.dir
    - g.update
    - pip._vendor.pkg_resources.ResourceManager.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 3328
    functionName: pip._vendor.pkg_resources._initialize_master_working_set
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 2
    functionsReached:
    - inspect.getmro
    - dists.append
    - pip._vendor.pkg_resources.Environment.scan
    - ws.add
    - darwinVersionString.match
    - dist.activate
    - operator.attrgetter
    - ws.resolve
    - dists.sort
    - pip._vendor.pkg_resources._always_object
    - _canonicalize_regex.sub
    - provDarwin.group
    - keys2.append
    - <builtin>.locals
    - pip._vendor.pkg_resources.Environment.add
    - keys.append
    - ws.add_entry
    - pip._vendor.pkg_resources.WorkingSet._build_from_requirements
    - item.endswith
    - pip._vendor.pkg_resources._declare_state
    - <builtin>.tuple
    - <builtin>.globals
    - dist.insert_on
    - <builtin>.list
    - ws.require
    - pip._vendor.pkg_resources._find_adapter
    - <builtin>.map
    - pip._vendor.pkg_resources.WorkingSet.add
    - pip._vendor.pkg_resources.Environment.can_add
    - <builtin>.iter
    - <builtin>.type
    - <builtin>.next
    - pip._vendor.pkg_resources.find_distributions
    - typing.cast
    - pip._vendor.pkg_resources.WorkingSet.__init__
    - pip._internal.utils._jaraco_text.join_continuation
    - pkgutil.get_importer
    - itertools.chain.from_iterable
    - dist.has_version
    - reqMac.group
    - <builtin>.int
    - pip._internal.utils._jaraco_text.yield_lines
    - dict.fromkeys
    - pip._vendor.pkg_resources.compatible_platforms
    - _state_vars.update
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.Environment.__init__
    - macosVersionString.match
    - provMac.group
    - pip._vendor.pkg_resources.WorkingSet.add_entry
    - <builtin>.getattr
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - pip._vendor.pkg_resources.WorkingSet._build_master
    - pip._vendor.packaging.utils.canonicalize_name
    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>.dir
    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: name.startswith
    functionSourceFile: <builtin>
    functionUses: 60
    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: g.update
    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: dist.activate
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.pkg_resources._initialize_master_working_set.<lambda1>
    functionSourceFile: pip._vendor.pkg_resources
    functionUses: 0
    functionsReached:
    - dist.activate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.utils._jaraco_text
    functionSourceFile: pip._internal.utils._jaraco_text
    functionUses: 0
    functionsReached:
    - functools.singledispatch
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - str
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: pip._internal.utils._jaraco_text._nonblank
    functionSourceFile: pip._internal.utils._jaraco_text
    functionUses: 0
    functionsReached:
    - str.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: str.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: functools.singledispatch
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 60
    functionName: pip._internal.utils._jaraco_text._
    functionSourceFile: pip._internal.utils._jaraco_text
    functionUses: 0
    functionsReached:
    - <builtin>.map
    - <builtin>.filter
    - text.splitlines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    functionName: pip._internal.utils._jaraco_text.drop_comment
    functionSourceFile: pip._internal.utils._jaraco_text
    functionUses: 0
    functionsReached:
    - line.partition
    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: item.endswith
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.packaging
    functionSourceFile: pip._vendor.packaging
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.packaging.__about__
    functionSourceFile: pip._vendor.packaging.__about__
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: pip._vendor.platformdirs
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - sys.path.split
    - pattern.match
    - jnius.autoclass
    - jnius.autoclass.getFilesDir
    - re.compile
    - pip._vendor.platformdirs.android._android_folder
    - os.getenv
    - pip._vendor.platformdirs._set_platform_dir_class
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 24
    functionName: pip._vendor.platformdirs._set_platform_dir_class
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 1
    functionsReached:
    - sys.path.split
    - pattern.match
    - jnius.autoclass
    - jnius.autoclass.getFilesDir
    - re.compile
    - pip._vendor.platformdirs.android._android_folder
    - os.getenv
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 108
    functionName: pip._vendor.platformdirs.android._android_folder
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 5
    functionsReached:
    - sys.path.split
    - pattern.match
    - jnius.autoclass
    - re.compile
    - jnius.autoclass.getFilesDir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d04ce040>
    - <ast.Constant object at 0x7f30f20a1fd0>
    - <ast.Constant object at 0x7f30f20a1fa0>
    - <ast.Constant object at 0x7f30f20a1f70>
    - <ast.Constant object at 0x7f30f20a1f40>
    argNames:
    - appname
    - appauthor
    - version
    - roaming
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: pip._vendor.platformdirs.user_data_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 11
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30f20a1670>
    - <ast.Constant object at 0x7f30f20a16a0>
    - <ast.Constant object at 0x7f30f20a11f0>
    - <ast.Constant object at 0x7f30f20a1130>
    - <ast.Constant object at 0x7f30f20a1220>
    - <ast.Constant object at 0x7f30f20a15b0>
    - <ast.Constant object at 0x7f30f20a1580>
    argNames:
    - self
    - appname
    - appauthor
    - version
    - roaming
    - multipath
    - opinion
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 21
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    functionSourceFile: ''
    functionUses: 54
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f20a16d0>
    - <ast.Constant object at 0x7f30f20a16a0>
    - <ast.Constant object at 0x7f30f20a1670>
    - <ast.Constant object at 0x7f30f20a1640>
    - <ast.Constant object at 0x7f30f20a1610>
    argNames:
    - appname
    - appauthor
    - version
    - multipath
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 74
    functionName: pip._vendor.platformdirs.site_data_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 10
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2114cd0>
    - <ast.Constant object at 0x7f30f2114ca0>
    - <ast.Constant object at 0x7f30f2114bb0>
    - <ast.Constant object at 0x7f30f2114b80>
    - <ast.Constant object at 0x7f30f21144c0>
    argNames:
    - appname
    - appauthor
    - version
    - roaming
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 98
    functionName: pip._vendor.platformdirs.user_config_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 10
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca81d220>
    - <ast.Constant object at 0x7f30ca81da30>
    - <ast.Constant object at 0x7f30ca81d6d0>
    - <ast.Constant object at 0x7f30ca81db50>
    - <ast.Constant object at 0x7f30ca81d4c0>
    argNames:
    - appname
    - appauthor
    - version
    - multipath
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 122
    functionName: pip._vendor.platformdirs.site_config_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 10
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f114f7f0>
    - <ast.Constant object at 0x7f30f114faf0>
    - <ast.Constant object at 0x7f30f114f970>
    - <ast.Constant object at 0x7f30f114fdf0>
    - <ast.Constant object at 0x7f30f114fbb0>
    argNames:
    - appname
    - appauthor
    - version
    - opinion
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 170
    functionName: pip._vendor.platformdirs.site_cache_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30dbadee50>
    - <ast.Constant object at 0x7f30dbade520>
    - <ast.Constant object at 0x7f30dbade640>
    - <ast.Constant object at 0x7f30dbadefd0>
    - <ast.Constant object at 0x7f30dbadef70>
    argNames:
    - appname
    - appauthor
    - version
    - roaming
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 194
    functionName: pip._vendor.platformdirs.user_state_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8bf3c70>
    - <ast.Constant object at 0x7f30d8bf3dc0>
    - <ast.Constant object at 0x7f30d8bf3a30>
    - <ast.Constant object at 0x7f30d8bf3760>
    - <ast.Constant object at 0x7f30d8bf3730>
    argNames:
    - appname
    - appauthor
    - version
    - opinion
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 218
    functionName: pip._vendor.platformdirs.user_log_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 242
    functionName: pip._vendor.platformdirs.user_documents_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 247
    functionName: pip._vendor.platformdirs.user_downloads_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 252
    functionName: pip._vendor.platformdirs.user_pictures_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 257
    functionName: pip._vendor.platformdirs.user_videos_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 262
    functionName: pip._vendor.platformdirs.user_music_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd6bb0>
    - <ast.Constant object at 0x7f30f6bd6310>
    - <ast.Constant object at 0x7f30f6bd6970>
    - <ast.Constant object at 0x7f30f6bd6280>
    - <ast.Constant object at 0x7f30f6bd6370>
    argNames:
    - appname
    - appauthor
    - version
    - opinion
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 267
    functionName: pip._vendor.platformdirs.user_runtime_dir
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bc6970>
    - <ast.Constant object at 0x7f30f6bc6f40>
    - <ast.Constant object at 0x7f30f6bc6c40>
    - <ast.Constant object at 0x7f30f6bc66d0>
    - <ast.Constant object at 0x7f30f6bc69d0>
    argNames:
    - appname
    - appauthor
    - version
    - roaming
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 291
    functionName: pip._vendor.platformdirs.user_data_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30c8d15370>
    - <ast.Constant object at 0x7f30c8d15550>
    - <ast.Constant object at 0x7f30c8d15f10>
    - <ast.Constant object at 0x7f30c8d15eb0>
    - <ast.Constant object at 0x7f30c8d15ee0>
    argNames:
    - appname
    - appauthor
    - version
    - multipath
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 315
    functionName: pip._vendor.platformdirs.site_data_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6b6e9d0>
    - <ast.Constant object at 0x7f30f6b6e370>
    - <ast.Constant object at 0x7f30f6b6e550>
    - <ast.Constant object at 0x7f30f6b6e4c0>
    - <ast.Constant object at 0x7f30f6b6e640>
    argNames:
    - appname
    - appauthor
    - version
    - roaming
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 339
    functionName: pip._vendor.platformdirs.user_config_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30ef5d34c0>
    - <ast.Constant object at 0x7f30ef5d3100>
    - <ast.Constant object at 0x7f30ef5d3040>
    - <ast.Constant object at 0x7f30ef5d3ca0>
    - <ast.Constant object at 0x7f30ef5d3d60>
    argNames:
    - appname
    - appauthor
    - version
    - multipath
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 363
    functionName: pip._vendor.platformdirs.site_config_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30db499b80>
    - <ast.Constant object at 0x7f30db499e50>
    - <ast.Constant object at 0x7f30db4992e0>
    - <ast.Constant object at 0x7f30db499400>
    - <ast.Constant object at 0x7f30db499730>
    argNames:
    - appname
    - appauthor
    - version
    - opinion
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 387
    functionName: pip._vendor.platformdirs.site_cache_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d04dbf70>
    - <ast.Constant object at 0x7f30d04dbf40>
    - <ast.Constant object at 0x7f30d04dbf10>
    - <ast.Constant object at 0x7f30d04dbee0>
    - <ast.Constant object at 0x7f30d04dbeb0>
    argNames:
    - appname
    - appauthor
    - version
    - opinion
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 411
    functionName: pip._vendor.platformdirs.user_cache_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d04db640>
    - <ast.Constant object at 0x7f30d04db610>
    - <ast.Constant object at 0x7f30d04db5e0>
    - <ast.Constant object at 0x7f30d04db5b0>
    - <ast.Constant object at 0x7f30d04db580>
    argNames:
    - appname
    - appauthor
    - version
    - roaming
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 435
    functionName: pip._vendor.platformdirs.user_state_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d04dacd0>
    - <ast.Constant object at 0x7f30d04daca0>
    - <ast.Constant object at 0x7f30d04dac70>
    - <ast.Constant object at 0x7f30d04dac40>
    - <ast.Constant object at 0x7f30d04dac10>
    argNames:
    - appname
    - appauthor
    - version
    - opinion
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 459
    functionName: pip._vendor.platformdirs.user_log_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 483
    functionName: pip._vendor.platformdirs.user_documents_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 488
    functionName: pip._vendor.platformdirs.user_downloads_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 493
    functionName: pip._vendor.platformdirs.user_pictures_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 498
    functionName: pip._vendor.platformdirs.user_videos_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 503
    functionName: pip._vendor.platformdirs.user_music_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d04d9910>
    - <ast.Constant object at 0x7f30d04d98e0>
    - <ast.Constant object at 0x7f30d04d98b0>
    - <ast.Constant object at 0x7f30d04d9880>
    - <ast.Constant object at 0x7f30d04d9850>
    argNames:
    - appname
    - appauthor
    - version
    - opinion
    - ensure_exists
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 508
    functionName: pip._vendor.platformdirs.user_runtime_path
    functionSourceFile: pip._vendor.platformdirs
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    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: pip._vendor.platformdirs.unix
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 13
    functionName: pip._vendor.platformdirs.unix.getuid
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: 3
    functionLinenumber: 35
    functionName: pip._vendor.platformdirs.unix.Unix.user_data_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - os.path.expanduser
    - params.append
    - os.path.join
    - os.environ.get
    - path.strip
    - <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: path.strip
    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: os.path.expanduser
    functionSourceFile: os
    functionUses: 101
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - base
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 71
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 18
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.join
    - <builtin>.list
    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: 4
    functionLinenumber: 46
    functionName: pip._vendor.platformdirs.unix.Unix.site_data_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - os.pathsep.join
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - os.path.expanduser
    - params.append
    - pip._vendor.platformdirs.unix.Unix._with_multi_path
    - os.path.join
    - os.environ.get
    - path.split
    - path.strip
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 58
    functionName: pip._vendor.platformdirs.unix.Unix._with_multi_path
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 2
    functionsReached:
    - os.pathsep.join
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.join
    - path.split
    - os.path.expanduser
    - <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: os.pathsep.join
    functionSourceFile: os
    functionUses: 17
    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: 3
    functionLinenumber: 66
    functionName: pip._vendor.platformdirs.unix.Unix.user_config_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - os.path.expanduser
    - params.append
    - os.path.join
    - os.environ.get
    - path.strip
    - <builtin>.list
    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: 4
    functionLinenumber: 77
    functionName: pip._vendor.platformdirs.unix.Unix.site_config_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - os.pathsep.join
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - os.path.expanduser
    - params.append
    - pip._vendor.platformdirs.unix.Unix._with_multi_path
    - os.path.join
    - os.environ.get
    - path.split
    - path.strip
    - <builtin>.list
    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: 3
    functionLinenumber: 90
    functionName: pip._vendor.platformdirs.unix.Unix.user_cache_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - os.path.expanduser
    - params.append
    - os.path.join
    - os.environ.get
    - path.strip
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 101
    functionName: pip._vendor.platformdirs.unix.Unix.site_cache_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.join
    - <builtin>.list
    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: 3
    functionLinenumber: 106
    functionName: pip._vendor.platformdirs.unix.Unix.user_state_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - os.path.expanduser
    - params.append
    - os.path.join
    - os.environ.get
    - path.strip
    - <builtin>.list
    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: 1
    functionLinenumber: 117
    functionName: pip._vendor.platformdirs.unix.Unix.user_log_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 125
    functionName: pip._vendor.platformdirs.unix.Unix.user_documents_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - stream.read
    - configparser.ConfigParser.read_string
    - configparser.ConfigParser
    - pip._vendor.platformdirs.unix._get_user_media_dir
    - pathlib.Path
    - pathlib.Path.open
    - path.replace
    - pip._vendor.platformdirs.unix._get_user_dirs_folder
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.expanduser
    - os.environ.get
    - pathlib.Path.exists
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - env_var
    - fallback_tilde_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 191
    functionName: pip._vendor.platformdirs.unix._get_user_media_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 5
    functionsReached:
    - stream.read
    - configparser.ConfigParser.read_string
    - configparser.ConfigParser
    - pathlib.Path
    - pathlib.Path.open
    - path.replace
    - pip._vendor.platformdirs.unix._get_user_dirs_folder
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.expanduser
    - os.environ.get
    - pathlib.Path.exists
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 130
    functionName: pip._vendor.platformdirs.unix.Unix.user_downloads_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - stream.read
    - configparser.ConfigParser.read_string
    - configparser.ConfigParser
    - pip._vendor.platformdirs.unix._get_user_media_dir
    - pathlib.Path
    - pathlib.Path.open
    - path.replace
    - pip._vendor.platformdirs.unix._get_user_dirs_folder
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.expanduser
    - os.environ.get
    - pathlib.Path.exists
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 135
    functionName: pip._vendor.platformdirs.unix.Unix.user_pictures_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - stream.read
    - configparser.ConfigParser.read_string
    - configparser.ConfigParser
    - pip._vendor.platformdirs.unix._get_user_media_dir
    - pathlib.Path
    - pathlib.Path.open
    - path.replace
    - pip._vendor.platformdirs.unix._get_user_dirs_folder
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.expanduser
    - os.environ.get
    - pathlib.Path.exists
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 140
    functionName: pip._vendor.platformdirs.unix.Unix.user_videos_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - stream.read
    - configparser.ConfigParser.read_string
    - configparser.ConfigParser
    - pip._vendor.platformdirs.unix._get_user_media_dir
    - pathlib.Path
    - pathlib.Path.open
    - path.replace
    - pip._vendor.platformdirs.unix._get_user_dirs_folder
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.expanduser
    - os.environ.get
    - pathlib.Path.exists
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 145
    functionName: pip._vendor.platformdirs.unix.Unix.user_music_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - stream.read
    - configparser.ConfigParser.read_string
    - configparser.ConfigParser
    - pip._vendor.platformdirs.unix._get_user_media_dir
    - pathlib.Path
    - pathlib.Path.open
    - path.replace
    - pip._vendor.platformdirs.unix._get_user_dirs_folder
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.expanduser
    - os.environ.get
    - pathlib.Path.exists
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 150
    functionName: pip._vendor.platformdirs.unix.Unix.user_runtime_dir
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - os.getuid
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.join
    - sys.platform.startswith
    - os.environ.get
    - path.strip
    - <builtin>.list
    - pathlib.Path.exists
    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.platform.startswith
    functionSourceFile: sys
    functionUses: 36
    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.getuid
    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: pathlib.Path.exists
    functionSourceFile: pathlib
    functionUses: 13
    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: 2
    functionLinenumber: 170
    functionName: pip._vendor.platformdirs.unix.Unix.site_data_path
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.unix.Unix._first_item_as_path_if_multipath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - directory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 184
    functionName: pip._vendor.platformdirs.unix.Unix._first_item_as_path_if_multipath
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 3
    functionsReached:
    - pathlib.Path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 175
    functionName: pip._vendor.platformdirs.unix.Unix.site_config_path
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.unix.Unix._first_item_as_path_if_multipath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 180
    functionName: pip._vendor.platformdirs.unix.Unix.site_cache_path
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.unix.Unix._first_item_as_path_if_multipath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - key
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 201
    functionName: pip._vendor.platformdirs.unix._get_user_dirs_folder
    functionSourceFile: pip._vendor.platformdirs.unix
    functionUses: 6
    functionsReached:
    - stream.read
    - configparser.ConfigParser.read_string
    - configparser.ConfigParser
    - pathlib.Path
    - pathlib.Path.open
    - path.replace
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.expanduser
    - pathlib.Path.exists
    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: pathlib.Path.open
    functionSourceFile: pathlib
    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: configparser.ConfigParser.read_string
    functionSourceFile: configparser
    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: path.replace
    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: pip._vendor.platformdirs.version
    functionSourceFile: pip._vendor.platformdirs.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.platformdirs.api
    functionSourceFile: pip._vendor.platformdirs.api
    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
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 81
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 26
    functionsReached:
    - pathlib.Path.mkdir
    - pathlib.Path
    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: pathlib.Path.mkdir
    functionSourceFile: pathlib
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_data_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 92
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.site_data_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 97
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_config_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 102
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.site_config_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 107
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_cache_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 112
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.site_cache_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 117
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_state_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 122
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_log_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 127
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_documents_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 132
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_downloads_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 137
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_pictures_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 142
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_videos_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 147
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_music_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 152
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_runtime_dir
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 156
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_data_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 161
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.site_data_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 166
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_config_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 171
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.site_config_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 176
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_cache_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 181
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.site_cache_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 186
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_state_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 191
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_log_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 196
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_documents_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 201
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_downloads_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 206
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_pictures_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 211
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_videos_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 216
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_music_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 221
    functionName: pip._vendor.platformdirs.api.PlatformDirsABC.user_runtime_path
    functionSourceFile: pip._vendor.platformdirs.api
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.platformdirs.windows
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    - functools.lru_cache
    - pip._vendor.platformdirs.windows._pick_get_win_folder
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 30
    functionName: pip._vendor.platformdirs.windows.Windows.user_data_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.windows.Windows._append_parts
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.normpath
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - opinion_value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 40
    functionName: pip._vendor.platformdirs.windows.Windows._append_parts
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 5
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 56
    functionName: pip._vendor.platformdirs.windows.Windows.site_data_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.windows.Windows._append_parts
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.normpath
    - os.path.join
    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: 62
    functionName: pip._vendor.platformdirs.windows.Windows.user_config_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 67
    functionName: pip._vendor.platformdirs.windows.Windows.site_config_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 72
    functionName: pip._vendor.platformdirs.windows.Windows.user_cache_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.windows.Windows._append_parts
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.normpath
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 81
    functionName: pip._vendor.platformdirs.windows.Windows.site_cache_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.windows.Windows._append_parts
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.normpath
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: pip._vendor.platformdirs.windows.Windows.user_state_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    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: 2
    functionLinenumber: 92
    functionName: pip._vendor.platformdirs.windows.Windows.user_log_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - os.path.join
    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: 101
    functionName: pip._vendor.platformdirs.windows.Windows.user_documents_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - os.path.normpath
    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: 106
    functionName: pip._vendor.platformdirs.windows.Windows.user_downloads_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - os.path.normpath
    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: 111
    functionName: pip._vendor.platformdirs.windows.Windows.user_pictures_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - os.path.normpath
    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: 116
    functionName: pip._vendor.platformdirs.windows.Windows.user_videos_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - os.path.normpath
    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: 121
    functionName: pip._vendor.platformdirs.windows.Windows.user_music_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - os.path.normpath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 126
    functionName: pip._vendor.platformdirs.windows.Windows.user_runtime_dir
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.windows.Windows._append_parts
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.normpath
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - csidl_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 135
    functionName: pip._vendor.platformdirs.windows.get_win_folder_from_env_vars
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.windows.get_win_folder_if_csidl_name_not_env_var
    - os.environ.get
    - os.path.join
    - os.path.normpath
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - csidl_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 156
    functionName: pip._vendor.platformdirs.windows.get_win_folder_if_csidl_name_not_env_var
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 1
    functionsReached:
    - os.path.normpath
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - csidl_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 175
    functionName: pip._vendor.platformdirs.windows.get_win_folder_from_registry
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - winreg.QueryValueEx
    - <builtin>.str
    - winreg.OpenKey
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: winreg.OpenKey
    functionSourceFile: winreg
    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: winreg.QueryValueEx
    functionSourceFile: winreg
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - csidl_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 204
    functionName: pip._vendor.platformdirs.windows.get_win_folder_via_ctypes
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 0
    functionsReached:
    - ctypes.create_unicode_buffer
    - <builtin>.any
    - windll.shell32.SHGetFolderPathW
    - <builtin>.getattr
    - windll.kernel32.GetShortPathNameW
    - os.path.join
    - <builtin>.ord
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: ctypes.create_unicode_buffer
    functionSourceFile: ctypes
    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: windll.shell32.SHGetFolderPathW
    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: windll.kernel32.GetShortPathNameW
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 240
    functionName: pip._vendor.platformdirs.windows._pick_get_win_folder
    functionSourceFile: pip._vendor.platformdirs.windows
    functionUses: 1
    functionsReached:
    - <builtin>.hasattr
    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: pip._vendor.platformdirs.macos
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 19
    functionName: pip._vendor.platformdirs.macos.MacOS.user_data_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.join
    - os.path.expanduser
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 24
    functionName: pip._vendor.platformdirs.macos.MacOS.site_data_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.join
    - <builtin>.list
    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: 29
    functionName: pip._vendor.platformdirs.macos.MacOS.user_config_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 34
    functionName: pip._vendor.platformdirs.macos.MacOS.site_config_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 39
    functionName: pip._vendor.platformdirs.macos.MacOS.user_cache_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.join
    - os.path.expanduser
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 44
    functionName: pip._vendor.platformdirs.macos.MacOS.site_cache_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.join
    - <builtin>.list
    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: 49
    functionName: pip._vendor.platformdirs.macos.MacOS.user_state_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 54
    functionName: pip._vendor.platformdirs.macos.MacOS.user_log_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.join
    - os.path.expanduser
    - <builtin>.list
    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: 59
    functionName: pip._vendor.platformdirs.macos.MacOS.user_documents_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached:
    - os.path.expanduser
    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: 64
    functionName: pip._vendor.platformdirs.macos.MacOS.user_downloads_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached:
    - os.path.expanduser
    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: 69
    functionName: pip._vendor.platformdirs.macos.MacOS.user_pictures_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached:
    - os.path.expanduser
    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: 74
    functionName: pip._vendor.platformdirs.macos.MacOS.user_videos_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached:
    - os.path.expanduser
    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: 79
    functionName: pip._vendor.platformdirs.macos.MacOS.user_music_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached:
    - os.path.expanduser
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 84
    functionName: pip._vendor.platformdirs.macos.MacOS.user_runtime_dir
    functionSourceFile: pip._vendor.platformdirs.macos
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - os.path.join
    - os.path.expanduser
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.platformdirs.android
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached:
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 22
    functionName: pip._vendor.platformdirs.android.Android.user_data_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - sys.path.split
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - jnius.autoclass
    - jnius.autoclass.getFilesDir
    - pattern.match
    - os.path.join
    - re.compile
    - pip._vendor.platformdirs.android._android_folder
    - typing.cast
    - <builtin>.list
    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: 27
    functionName: pip._vendor.platformdirs.android.Android.site_data_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 32
    functionName: pip._vendor.platformdirs.android.Android.user_config_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - sys.path.split
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - jnius.autoclass
    - jnius.autoclass.getFilesDir
    - pattern.match
    - os.path.join
    - re.compile
    - pip._vendor.platformdirs.android._android_folder
    - typing.cast
    - <builtin>.list
    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: 40
    functionName: pip._vendor.platformdirs.android.Android.site_config_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 45
    functionName: pip._vendor.platformdirs.android.Android.user_cache_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version
    - sys.path.split
    - pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory
    - pathlib.Path.mkdir
    - params.append
    - jnius.autoclass
    - jnius.autoclass.getFilesDir
    - pattern.match
    - os.path.join
    - re.compile
    - pip._vendor.platformdirs.android._android_folder
    - typing.cast
    - <builtin>.list
    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: 50
    functionName: pip._vendor.platformdirs.android.Android.site_cache_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 55
    functionName: pip._vendor.platformdirs.android.Android.user_state_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    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: 1
    functionLinenumber: 60
    functionName: pip._vendor.platformdirs.android.Android.user_log_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached:
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 71
    functionName: pip._vendor.platformdirs.android.Android.user_documents_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.android._android_documents_folder
    - jnius.autoclass
    - jnius.autoclass.getExternalFilesDir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 129
    functionName: pip._vendor.platformdirs.android._android_documents_folder
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 1
    functionsReached:
    - jnius.autoclass
    - jnius.autoclass.getExternalFilesDir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 76
    functionName: pip._vendor.platformdirs.android.Android.user_downloads_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached:
    - jnius.autoclass
    - pip._vendor.platformdirs.android._android_downloads_folder
    - jnius.autoclass.getExternalFilesDir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 145
    functionName: pip._vendor.platformdirs.android._android_downloads_folder
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 1
    functionsReached:
    - jnius.autoclass
    - jnius.autoclass.getExternalFilesDir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 81
    functionName: pip._vendor.platformdirs.android.Android.user_pictures_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached:
    - jnius.autoclass
    - pip._vendor.platformdirs.android._android_pictures_folder
    - jnius.autoclass.getExternalFilesDir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 161
    functionName: pip._vendor.platformdirs.android._android_pictures_folder
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 1
    functionsReached:
    - jnius.autoclass
    - jnius.autoclass.getExternalFilesDir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 86
    functionName: pip._vendor.platformdirs.android.Android.user_videos_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached:
    - jnius.autoclass
    - pip._vendor.platformdirs.android._android_videos_folder
    - jnius.autoclass.getExternalFilesDir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 177
    functionName: pip._vendor.platformdirs.android._android_videos_folder
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 1
    functionsReached:
    - jnius.autoclass
    - jnius.autoclass.getExternalFilesDir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 91
    functionName: pip._vendor.platformdirs.android.Android.user_music_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached:
    - jnius.autoclass
    - pip._vendor.platformdirs.android._android_music_folder
    - jnius.autoclass.getExternalFilesDir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 193
    functionName: pip._vendor.platformdirs.android._android_music_folder
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 1
    functionsReached:
    - jnius.autoclass
    - jnius.autoclass.getExternalFilesDir
    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: 1
    functionLinenumber: 96
    functionName: pip._vendor.platformdirs.android.Android.user_runtime_dir
    functionSourceFile: pip._vendor.platformdirs.android
    functionUses: 0
    functionsReached:
    - 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: jnius.autoclass
    functionSourceFile: jnius
    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: jnius.autoclass.getFilesDir
    functionSourceFile: jnius
    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: pattern.match
    functionSourceFile: <builtin>
    functionUses: 50
    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.path.split
    functionSourceFile: sys
    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: jnius.autoclass.getExternalFilesDir
    functionSourceFile: jnius
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.lexers
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 0
    functionsReached:
    - types.ModuleType.__dict__.update
    - types.ModuleType.__init__
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - fn
    - glob
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: pip._vendor.pygments.lexers._fn_matches
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 12
    functionsReached:
    - fnmatch.translate
    - pattern.match
    - re.compile
    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: fnmatch.translate
    functionSourceFile: fnmatch
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - module_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: pip._vendor.pygments.lexers._load_lexers
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 23
    functionsReached:
    - <builtin>.__import__
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30da58c550>
    argNames:
    - plugins
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 50
    functionName: pip._vendor.pygments.lexers.get_all_lexers
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 5
    functionsReached:
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - LEXERS.values
    - pip._vendor.pygments.plugin.iter_entry_points
    - importlib_metadata.entry_points
    - importlib.metadata.entry_points
    - entrypoint.load
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: LEXERS.values
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 64
    functionName: pip._vendor.pygments.lexers.find_lexer_class
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 2
    functionsReached:
    - importlib.metadata.entry_points.select
    - <builtin>.__import__
    - importlib.metadata.entry_points.get
    - LEXERS.values
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - importlib.metadata.entry_points
    - entrypoint.load
    - pip._vendor.pygments.lexers._load_lexers
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - _alias
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 82
    functionName: pip._vendor.pygments.lexers.find_lexer_class_by_name
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 0
    functionsReached:
    - importlib.metadata.entry_points.select
    - _alias.lower
    - <builtin>.__import__
    - importlib.metadata.entry_points.get
    - LEXERS.values
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - importlib.metadata.entry_points
    - entrypoint.load
    - pip._vendor.pygments.lexers._load_lexers
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ClassNotFound
    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: _alias.lower
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c014c0>
    argNames:
    - filename
    - lexername
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 134
    functionName: pip._vendor.pygments.lexers.load_lexer_from_file
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 3
    functionsReached:
    - <builtin>.exec
    - <builtin>.open
    - f.read
    linkageType: pythonLinkage
    raised:
    - ClassNotFound
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e78333d0>
    argNames:
    - _fn
    - code
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 169
    functionName: pip._vendor.pygments.lexers.find_lexer_class_for_filename
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.__import__
    - LEXERS.values
    - pattern.match
    - re.compile
    - pip._vendor.pygments.util.guess_decode
    - entrypoint.load
    - pip._vendor.pygments.lexers._load_lexers
    - matches.sort
    - locale.getpreferredencoding
    - pip._vendor.pygments.lexers._fn_matches
    - matches.append
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - os.path.basename
    - importlib.metadata.entry_points.get
    - fnmatch.translate
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - text.decode
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: matches.append
    functionSourceFile: <builtin>
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - info
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 194
    functionName: pip._vendor.pygments.lexers.find_lexer_class_for_filename.get_rating
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 0
    functionsReached:
    - cls.analyse_text
    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: cls.analyse_text
    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: matches.sort
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd65b0>
    argNames:
    - _fn
    - code
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 212
    functionName: pip._vendor.pygments.lexers.get_lexer_for_filename
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.__import__
    - LEXERS.values
    - pattern.match
    - re.compile
    - pip._vendor.pygments.util.guess_decode
    - entrypoint.load
    - pip._vendor.pygments.lexers._load_lexers
    - matches.sort
    - pip._vendor.pygments.lexers.find_lexer_class_for_filename
    - locale.getpreferredencoding
    - pip._vendor.pygments.lexers._fn_matches
    - matches.append
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - os.path.basename
    - importlib.metadata.entry_points.get
    - fnmatch.translate
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - text.decode
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ClassNotFound
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - _mime
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 231
    functionName: pip._vendor.pygments.lexers.get_lexer_for_mimetype
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 0
    functionsReached:
    - importlib.metadata.entry_points.select
    - <builtin>.__import__
    - importlib.metadata.entry_points.get
    - LEXERS.values
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - importlib.metadata.entry_points
    - entrypoint.load
    - pip._vendor.pygments.lexers._load_lexers
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ClassNotFound
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30f21129d0>
    argNames:
    - plugins
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 250
    functionName: pip._vendor.pygments.lexers._iter_lexerclasses
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 11
    functionsReached:
    - importlib.metadata.entry_points.select
    - <builtin>.__import__
    - importlib.metadata.entry_points.get
    - <builtin>.sorted
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - importlib.metadata.entry_points
    - entrypoint.load
    - pip._vendor.pygments.lexers._load_lexers
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: matching_lexers.add
    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: matching_lexers.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: lexer.analyse_text
    functionSourceFile: <builtin>
    functionUses: 11
    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.append
    functionSourceFile: <builtin>
    functionUses: 144
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - t
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 292
    functionName: pip._vendor.pygments.lexers.guess_lexer_for_filename.type_sort
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.sort
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - _text
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 304
    functionName: pip._vendor.pygments.lexers.guess_lexer
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.__import__
    - LEXERS.values
    - pip._vendor.pygments.lexers.get_lexer_by_name
    - pip._vendor.pygments.util.guess_decode
    - entrypoint.load
    - pip._vendor.pygments.lexers._load_lexers
    - pip._vendor.pygments.modeline.get_filetype_from_line
    - options.get
    - buf.splitlines
    - locale.getpreferredencoding
    - m.group
    - _text.decode
    - <builtin>.len
    - pip._vendor.pygments.modeline.get_filetype_from_buffer
    - <builtin>.sorted
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - _alias.lower
    - importlib.metadata.entry_points.get
    - lexer.analyse_text
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - pip._vendor.pygments.lexers._iter_lexerclasses
    - text.decode
    - modeline_re.search
    - <builtin>.hasattr
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - ClassNotFound
    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.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd9790>
    argNames:
    - buf
    - max_lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 28
    functionName: pip._vendor.pygments.modeline.get_filetype_from_buffer
    functionSourceFile: pip._vendor.pygments.modeline
    functionUses: 4
    functionsReached:
    - pip._vendor.pygments.modeline.get_filetype_from_line
    - buf.splitlines
    - <builtin>.len
    - m.group
    - modeline_re.search
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 346
    functionName: pip._vendor.pygments.lexers._automodule.__getattr__
    functionSourceFile: pip._vendor.pygments.lexers
    functionUses: 0
    functionsReached:
    - LEXERS.get
    - <builtin>.__import__
    - <builtin>.setattr
    - <builtin>.getattr
    - pip._vendor.pygments.lexers._load_lexers
    linkageType: pythonLinkage
    raised:
    - AttributeError
    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: LEXERS.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: types.ModuleType.__init__
    functionSourceFile: ''
    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: types.ModuleType.__dict__.update
    functionSourceFile: types
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.modeline
    functionSourceFile: pip._vendor.pygments.modeline
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - l
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 22
    functionName: pip._vendor.pygments.modeline.get_filetype_from_line
    functionSourceFile: pip._vendor.pygments.modeline
    functionUses: 5
    functionsReached:
    - m.group
    - modeline_re.search
    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: modeline_re.search
    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: buf.splitlines
    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: pip._vendor.pygments.lexers._mapping
    functionSourceFile: pip._vendor.pygments.lexers._mapping
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.containers
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d0b2b9a0>
    argNames:
    - self
    - renderables
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 33
    functionName: pip._vendor.rich.containers.Renderables.__init__
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 1
    functionsReached:
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 40
    functionName: pip._vendor.rich.containers.Renderables.__rich_console__
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 46
    functionName: pip._vendor.rich.containers.Renderables.__rich_measure__
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - open_tag.parameters.strip
    - style_definition.split
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - <builtin>.type
    - RE_HANDLER.match
    - typing.cast
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - color_rgb.split
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - renderable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 59
    functionName: pip._vendor.rich.containers.Renderables.append
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: pip._vendor.rich.containers.Renderables.__iter__
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 72
    functionName: pip._vendor.rich.containers.Lines.__repr__
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.containers.Lines
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.overload
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 86
    functionName: pip._vendor.rich.containers.Lines.__getitem__
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - index
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 89
    functionName: pip._vendor.rich.containers.Lines.__setitem__
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 93
    functionName: pip._vendor.rich.containers.Lines.__len__
    functionSourceFile: pip._vendor.rich.containers
    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
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 96
    functionName: pip._vendor.rich.containers.Lines.__rich_console__
    functionSourceFile: pip._vendor.rich.containers
    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
    - line
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 102
    functionName: pip._vendor.rich.containers.Lines.append
    functionSourceFile: pip._vendor.rich.containers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.rstrip
    functionSourceFile: <builtin>
    functionUses: 141
    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.pad_left
    functionSourceFile: <builtin>
    functionUses: 58
    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.pad_right
    functionSourceFile: <builtin>
    functionUses: 58
    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: itertools.zip_longest
    functionSourceFile: itertools
    functionUses: 71
    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: tokens.append
    functionSourceFile: <builtin>
    functionUses: 62
    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: word.get_style_at_offset
    functionSourceFile: <builtin>
    functionUses: 58
    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: next_word.get_style_at_offset
    functionSourceFile: <builtin>
    functionUses: 58
    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: pip._vendor.pygments
    functionSourceFile: pip._vendor.pygments
    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:
    - code
    - lexer
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 35
    functionName: pip._vendor.pygments.lex
    functionSourceFile: pip._vendor.pygments
    functionUses: 4
    functionsReached:
    - text.expandtabs
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - pip._vendor.pygments.util.guess_decode
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - locale.getpreferredencoding
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.chardet.detect
    - enc.get
    - coding_sm.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens_unprocessed
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - pip._vendor.pygments.filter.apply_filters._apply
    - coding_sm.get_coding_state_machine
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - text.startswith
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed
    - pip._vendor.chardet.universaldetector.UniversalDetector.close
    - text.partition
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.feed
    - prober.get_confidence
    - text.endswith
    - <builtin>.super
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - logging.getLogger
    - <builtin>.iter
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - <builtin>.bytearray
    - <builtin>.max
    - <builtin>.issubclass
    - <builtin>.isinstance
    - lower_charset_name.startswith
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.pygments.lexer.Lexer.get_tokens.streamer
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_escape_tokens
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - text.strip
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - filter_.filter
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - <builtin>.len
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - max_prober.get_confidence
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._filter_to
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - group_prober.get_confidence
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.pygments.lexer.Lexer.get_tokens_unprocessed
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - coding_sm.next_state
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - charset_name.lower
    - pip._vendor.pygments.lexer.Lexer.get_tokens
    - prober.feed
    - <builtin>.next
    - pip._vendor.pygments.filter.apply_filters
    - insertions.append
    - insertion_buf.append
    - pip._vendor.pygments.lexer.do_insertions
    - text.replace
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - text.decode
    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: pip._vendor.pygments.lexers.special.TextLexer.get_tokens
    functionSourceFile: pip
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 1
    IfCount: 12
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2a9a220>
    argNames:
    - self
    - text
    - unfiltered
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 193
    functionName: pip._vendor.pygments.lexer.Lexer.get_tokens
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 5
    functionsReached:
    - text.expandtabs
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - pip._vendor.pygments.util.guess_decode
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - locale.getpreferredencoding
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.chardet.detect
    - enc.get
    - coding_sm.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens_unprocessed
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - pip._vendor.pygments.filter.apply_filters._apply
    - coding_sm.get_coding_state_machine
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - text.startswith
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed
    - text.partition
    - pip._vendor.chardet.universaldetector.UniversalDetector.close
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.feed
    - prober.get_confidence
    - text.endswith
    - <builtin>.super
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - logging.getLogger
    - <builtin>.iter
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - <builtin>.bytearray
    - <builtin>.max
    - <builtin>.isinstance
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - lower_charset_name.startswith
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.pygments.lexer.Lexer.get_tokens.streamer
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_escape_tokens
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - text.strip
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - filter_.filter
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - <builtin>.len
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - max_prober.get_confidence
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._filter_to
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - group_prober.get_confidence
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.pygments.lexer.Lexer.get_tokens_unprocessed
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - coding_sm.next_state
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - charset_name.lower
    - prober.feed
    - <builtin>.next
    - pip._vendor.pygments.filter.apply_filters
    - insertions.append
    - insertion_buf.append
    - pip._vendor.pygments.lexer.do_insertions
    - text.replace
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - text.decode
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30da58c550>
    argNames:
    - tokens
    - formatter
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 52
    functionName: pip._vendor.pygments.format
    functionSourceFile: pip._vendor.pygments
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format_unencoded
    - pip._vendor.pygments.console.ansiformat
    - value.split
    - value.splitlines
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._write_lineno
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format
    - line.rstrip
    - <builtin>.str
    - io.StringIO
    - line.endswith
    - <builtin>.issubclass
    - outfile.write
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format_unencoded
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._write_lineno
    - realoutfile.getvalue
    - codecs.lookup
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format
    - <builtin>.getattr
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._get_color
    - pip._vendor.pygments.formatter.Formatter.format
    - result.append
    - io.BytesIO
    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: io.StringIO
    functionSourceFile: io
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 249
    functionName: pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 6
    functionsReached:
    - codecs.lookup
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._write_lineno
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._write_lineno
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format_unencoded
    - line.rstrip
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format
    - pip._vendor.pygments.console.ansiformat
    - <builtin>.str
    - value.split
    - outfile.write
    - line.endswith
    - value.splitlines
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._get_color
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format_unencoded
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format
    - pip._vendor.pygments.formatter.Formatter.format
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 91
    functionName: pip._vendor.pygments.formatters.terminal.TerminalFormatter.format
    functionSourceFile: pip._vendor.pygments.formatters.terminal
    functionUses: 6
    functionsReached:
    - codecs.lookup
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._write_lineno
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._write_lineno
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format_unencoded
    - line.rstrip
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format
    - pip._vendor.pygments.console.ansiformat
    - <builtin>.str
    - value.split
    - outfile.write
    - line.endswith
    - value.splitlines
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._get_color
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format_unencoded
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format
    - pip._vendor.pygments.formatter.Formatter.format
    - result.append
    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: realoutfile.getvalue
    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 0x7f30df0f27c0>
    argNames:
    - code
    - lexer
    - formatter
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 77
    functionName: pip._vendor.pygments.highlight
    functionSourceFile: pip._vendor.pygments
    functionUses: 3
    functionsReached:
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format_unencoded
    - text.expandtabs
    - value.split
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - pip._vendor.pygments.util.guess_decode
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._write_lineno
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format
    - <builtin>.str
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - locale.getpreferredencoding
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.chardet.detect
    - enc.get
    - coding_sm.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.pygments.console.ansiformat
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens_unprocessed
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - pip._vendor.pygments.filter.apply_filters._apply
    - coding_sm.get_coding_state_machine
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - text.startswith
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed
    - pip._vendor.chardet.universaldetector.UniversalDetector.close
    - text.partition
    - io.StringIO
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.feed
    - prober.get_confidence
    - text.endswith
    - <builtin>.super
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - outfile.write
    - logging.getLogger
    - <builtin>.iter
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._write_lineno
    - realoutfile.getvalue
    - codecs.lookup
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.pygments.formatter.Formatter.format
    - <builtin>.issubclass
    - <builtin>.isinstance
    - lower_charset_name.startswith
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.pygments.lexer.Lexer.get_tokens.streamer
    - pip._vendor.pygments.format
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - value.splitlines
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_escape_tokens
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - line.rstrip
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - text.strip
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - filter_.filter
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - <builtin>.len
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - max_prober.get_confidence
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    - <builtin>.getattr
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._get_color
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._filter_to
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - result.append
    - group_prober.get_confidence
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.pygments.lexer.Lexer.get_tokens_unprocessed
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - coding_sm.next_state
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - line.endswith
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.pygments.lex
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - charset_name.lower
    - pip._vendor.pygments.lexer.Lexer.get_tokens
    - prober.feed
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format_unencoded
    - <builtin>.next
    - pip._vendor.pygments.filter.apply_filters
    - insertions.append
    - insertion_buf.append
    - pip._vendor.pygments.lexer.do_insertions
    - text.replace
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - text.decode
    - io.BytesIO
    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: pip._vendor.pygments.formatter
    functionSourceFile: pip._vendor.pygments.formatter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - style
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 19
    functionName: pip._vendor.pygments.formatter._lookup_style
    functionSourceFile: pip._vendor.pygments.formatter
    functionUses: 17
    functionsReached:
    - abc.ABC.title
    - importlib.metadata.entry_points.select
    - <builtin>.isinstance
    - <builtin>.__import__
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - pip._vendor.pygments.plugin.find_plugin_styles
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 83
    functionName: pip._vendor.pygments.formatter.Formatter.__init__
    functionSourceFile: pip._vendor.pygments.formatter
    functionUses: 16
    functionsReached:
    - abc.ABC.title
    - pip._vendor.pygments.formatter._lookup_style
    - importlib.metadata.entry_points.select
    - <builtin>.isinstance
    - options.get
    - string.lower
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - <builtin>.__import__
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - pip._vendor.pygments.plugin.find_plugin_styles
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bc6910>
    argNames:
    - self
    - arg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 99
    functionName: pip._vendor.pygments.formatter.Formatter.get_style_defs
    functionSourceFile: pip._vendor.pygments.formatter
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 114
    functionName: pip._vendor.pygments.formatter.Formatter.format
    functionSourceFile: pip._vendor.pygments.formatter
    functionUses: 7
    functionsReached:
    - codecs.lookup
    - line.rstrip
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format_unencoded
    - pip._vendor.pygments.console.ansiformat
    - <builtin>.str
    - value.split
    - outfile.write
    - line.endswith
    - value.splitlines
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._get_color
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._write_lineno
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format_unencoded
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._write_lineno
    - result.append
    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: codecs.lookup
    functionSourceFile: codecs
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 108
    functionName: pip._vendor.pygments.formatters.terminal.TerminalFormatter.format_unencoded
    functionSourceFile: pip._vendor.pygments.formatters.terminal
    functionUses: 8
    functionsReached:
    - line.rstrip
    - pip._vendor.pygments.console.ansiformat
    - outfile.write
    - line.endswith
    - value.splitlines
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._get_color
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._write_lineno
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 7
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 252
    functionName: pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format_unencoded
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 8
    functionsReached:
    - outfile.write
    - value.split
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._write_lineno
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.lexer
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    - re.compile
    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: pip._vendor.pygments.lexer.<lambda1>
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - mcs
    - name
    - bases
    - d
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 43
    functionName: pip._vendor.pygments.lexer.LexerMeta.__new__
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.util.make_analysator
    - type.__new__
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 131
    functionName: pip._vendor.pygments.lexer.Lexer.__init__
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - options.get
    - pip._vendor.pygments.filters.find_filter_class
    - val.split
    - <builtin>.list
    - pip._vendor.pygments.lexer.Lexer.add_filter
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - pip._vendor.pygments.filters.get_filter_by_name
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - pip._vendor.pygments.util.get_list_opt
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.find_plugin_filters
    - pip._vendor.pygments.plugin.iter_entry_points
    - importlib_metadata.entry_points
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - filter_
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 168
    functionName: pip._vendor.pygments.lexer.Lexer.add_filter
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 7
    functionsReached:
    - importlib.metadata.entry_points.select
    - <builtin>.isinstance
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.find_plugin_filters
    - pip._vendor.pygments.plugin.iter_entry_points
    - pip._vendor.pygments.filters.find_filter_class
    - importlib_metadata.entry_points
    - entrypoint.load
    - pip._vendor.pygments.filters.get_filter_by_name
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 161
    functionName: pip._vendor.pygments.lexer.Lexer.__repr__
    functionSourceFile: pip._vendor.pygments.lexer
    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:
    - filtername
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 32
    functionName: pip._vendor.pygments.filters.get_filter_by_name
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 8
    functionsReached:
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.find_plugin_filters
    - pip._vendor.pygments.plugin.iter_entry_points
    - pip._vendor.pygments.filters.find_filter_class
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ClassNotFound
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 176
    functionName: pip._vendor.pygments.lexer.Lexer.analyse_text
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.startswith
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f21129a0>
    argNames:
    - byte_str
    - should_rename_legacy
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 30
    functionName: pip._vendor.chardet.detect
    functionSourceFile: pip._vendor.chardet
    functionUses: 7
    functionsReached:
    - group_prober.get_confidence
    - <builtin>.isinstance
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - lower_charset_name.startswith
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - coding_sm.get_coding_state_machine
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - coding_sm.next_state
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.close
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - pip._vendor.chardet.universaldetector.UniversalDetector.feed
    - prober.get_confidence
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - <builtin>.super
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - charset_name.lower
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - <builtin>.len
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - max_prober.get_confidence
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - logging.getLogger
    - prober.feed
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - <builtin>.max
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    - coding_sm.reset
    - <builtin>.bytearray
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    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: enc.get
    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: text.strip
    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: text.expandtabs
    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: text.endswith
    functionSourceFile: <builtin>
    functionUses: 6
    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: 4
    functionLinenumber: 249
    functionName: pip._vendor.pygments.lexer.Lexer.get_tokens.streamer
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 6
    functionsReached:
    - pip._vendor.pygments.lexer.Lexer.get_tokens_unprocessed
    - pip._vendor.pygments.lexer.do_insertions
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens
    - <builtin>.len
    - insertions.append
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens_unprocessed
    - text.partition
    - <builtin>.iter
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._filter_to
    - <builtin>.next
    - insertion_buf.append
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_escape_tokens
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 257
    functionName: pip._vendor.pygments.lexer.Lexer.get_tokens_unprocessed
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 457
    functionName: pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 8
    functionsReached:
    - pip._vendor.pygments.lexer.do_insertions
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens
    - <builtin>.len
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens_unprocessed
    - text.partition
    - <builtin>.iter
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_escape_tokens
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._filter_to
    - <builtin>.next
    - insertion_buf.append
    - insertions.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f333afa0>
    argNames:
    - stream
    - filters
    - lexer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 12
    functionName: pip._vendor.pygments.filter.apply_filters
    functionSourceFile: pip._vendor.pygments.filter
    functionUses: 6
    functionsReached:
    - pip._vendor.pygments.filter.apply_filters._apply
    - filter_.filter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Name object at 0x7f30ca81d520>
    argNames:
    - self
    - _root_lexer
    - _language_lexer
    - _needle
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 279
    functionName: pip._vendor.pygments.lexer.DelegatingLexer.__init__
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - options.get
    - pip._vendor.pygments.lexer.Lexer.__init__
    - pip._vendor.pygments.filters.find_filter_class
    - val.split
    - <builtin>.list
    - pip._vendor.pygments.lexer.Lexer.add_filter
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - pip._vendor.pygments.filters.get_filter_by_name
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - pip._vendor.pygments.util.get_list_opt
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.find_plugin_filters
    - pip._vendor.pygments.plugin.iter_entry_points
    - importlib_metadata.entry_points
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 285
    functionName: pip._vendor.pygments.lexer.DelegatingLexer.get_tokens_unprocessed
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.lexer.do_insertions
    - <builtin>.len
    - <builtin>.iter
    - <builtin>.next
    - insertions.append
    - lng_buffer.append
    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: insertions.append
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lng_buffer.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - insertions
    - tokens
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 831
    functionName: pip._vendor.pygments.lexer.do_insertions
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 10
    functionsReached:
    - <builtin>.next
    - <builtin>.len
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 319
    functionName: pip._vendor.pygments.lexer._inherit.__repr__
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 330
    functionName: pip._vendor.pygments.lexer.combined.__new__
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - tuple.__new__
    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: tuple.__new__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 333
    functionName: pip._vendor.pygments.lexer.combined.__init__
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - start
    - text
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 343
    functionName: pip._vendor.pygments.lexer._PseudoMatch.__init__
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e4d3d430>
    argNames:
    - self
    - arg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 347
    functionName: pip._vendor.pygments.lexer._PseudoMatch.start
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e7833850>
    argNames:
    - self
    - arg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 350
    functionName: pip._vendor.pygments.lexer._PseudoMatch.end
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e78331c0>
    argNames:
    - self
    - arg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 353
    functionName: pip._vendor.pygments.lexer._PseudoMatch.group
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - IndexError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 358
    functionName: pip._vendor.pygments.lexer._PseudoMatch.groups
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 361
    functionName: pip._vendor.pygments.lexer._PseudoMatch.groupdict
    functionSourceFile: pip._vendor.pygments.lexer
    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:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 365
    functionName: pip._vendor.pygments.lexer.bygroups
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8be89a0>
    argNames:
    - lexer
    - match
    - ctx
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 369
    functionName: pip._vendor.pygments.lexer.bygroups.callback
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - match.group
    - match.start
    - <builtin>.enumerate
    - pip._vendor.pygments.lexer._PseudoMatch.__init__
    - <builtin>.type
    - match.end
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - _other
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 400
    functionName: pip._vendor.pygments.lexer.using
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 3
    functionsReached:
    - kwargs.pop
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.pop
    functionSourceFile: <builtin>
    functionUses: 47
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f114fa90>
    argNames:
    - lexer
    - match
    - ctx
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 437
    functionName: pip._vendor.pygments.lexer.using.callback
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - options.get
    - kwargs.update
    - pip._vendor.pygments.lexer.Lexer.__init__
    - pip._vendor.pygments.filters.find_filter_class
    - val.split
    - <builtin>.list
    - pip._vendor.pygments.lexer.Lexer.add_filter
    - match.end
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - pip._vendor.pygments.filters.get_filter_by_name
    - lexer.__class__
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - pip._vendor.pygments.util.get_list_opt
    - match.group
    - match.start
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.find_plugin_filters
    - pip._vendor.pygments.plugin.iter_entry_points
    - importlib_metadata.entry_points
    - lx.get_tokens_unprocessed
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.update
    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: lexer.__class__
    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: lx.get_tokens_unprocessed
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 458
    functionName: pip._vendor.pygments.lexer.default.__init__
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f25c24f0>
    - <ast.Constant object at 0x7f30f25c2520>
    argNames:
    - self
    - words
    - prefix
    - suffix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 469
    functionName: pip._vendor.pygments.lexer.words.__init__
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 474
    functionName: pip._vendor.pygments.lexer.words.get
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - CS_ESCAPE.sub
    - pip._vendor.pygments.regexopt.regex_opt_inner
    - rest.append
    - <builtin>.len
    - <builtin>.sorted
    - itertools.groupby
    - pip._vendor.pygments.regexopt.regex_opt
    - oneletter.append
    - re.escape
    - pip._vendor.pygments.regexopt.make_charset
    - <builtin>.list
    - os.path.commonprefix
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dbade970>
    - <ast.Constant object at 0x7f30dbadea30>
    argNames:
    - strings
    - prefix
    - suffix
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 82
    functionName: pip._vendor.pygments.regexopt.regex_opt
    functionSourceFile: pip._vendor.pygments.regexopt
    functionUses: 2
    functionsReached:
    - CS_ESCAPE.sub
    - pip._vendor.pygments.regexopt.regex_opt_inner
    - rest.append
    - <builtin>.len
    - <builtin>.sorted
    - itertools.groupby
    - oneletter.append
    - re.escape
    - pip._vendor.pygments.regexopt.make_charset
    - <builtin>.list
    - os.path.commonprefix
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - regex
    - rflags
    - state
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 484
    functionName: pip._vendor.pygments.lexer.RegexLexerMeta._process_regex
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - re.compile
    - regex.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: regex.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - token
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 490
    functionName: pip._vendor.pygments.lexer.RegexLexerMeta._process_token
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 4
    functionsReached:
    - <builtin>.callable
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - new_state
    - unprocessed
    - processed
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 496
    functionName: pip._vendor.pygments.lexer.RegexLexerMeta._process_new_state
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.int
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_regex
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_new_state
    - <builtin>.len
    - itokens.extend
    - tokens.extend
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_state
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_token
    - <builtin>.callable
    - re.compile
    - tokens.append
    - regex.get
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - unprocessed
    - processed
    - state
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 531
    functionName: pip._vendor.pygments.lexer.RegexLexerMeta._process_state
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.int
    - <builtin>.str
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_new_state
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_regex
    - <builtin>.len
    - itokens.extend
    - tokens.extend
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_token
    - <builtin>.callable
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_state
    - re.compile
    - tokens.append
    - regex.get
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: itokens.extend
    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: tokens.extend
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2a54c40>
    argNames:
    - cls
    - name
    - tokendefs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 575
    functionName: pip._vendor.pygments.lexer.RegexLexerMeta.process_tokendef
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_regex
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_new_state
    - <builtin>.int
    - <builtin>.len
    - itokens.extend
    - tokens.extend
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_state
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_token
    - <builtin>.callable
    - re.compile
    - tokens.append
    - <builtin>.list
    - regex.get
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 583
    functionName: pip._vendor.pygments.lexer.RegexLexerMeta.get_tokendefs
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 1
    functionsReached:
    - tokens.get
    - c.__dict__.get
    - items.index
    - inheritable.pop
    - toks.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: c.__dict__.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: toks.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tokens.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: items.index
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inheritable.pop
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - args
    - kwds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 632
    functionName: pip._vendor.pygments.lexer.RegexLexerMeta.__call__
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_new_state
    - re.compile
    - inheritable.pop
    - toks.items
    - regex.get
    - tokens.get
    - pip._vendor.pygments.lexer.RegexLexerMeta.get_tokendefs
    - <builtin>.str
    - type.__call__
    - items.index
    - pip._vendor.pygments.lexer.RegexLexerMeta.process_tokendef
    - tokens.append
    - <builtin>.list
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_regex
    - <builtin>.len
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_token
    - <builtin>.int
    - itokens.extend
    - c.__dict__.get
    - tokens.extend
    - pip._vendor.pygments.lexer.RegexLexerMeta._process_state
    - <builtin>.callable
    - <builtin>.hasattr
    - <builtin>.type
    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: type.__call__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 7
    IfCount: 11
    argCount: 3
    argDefaultValues:
    - <ast.Tuple object at 0x7f30f2a43370>
    argNames:
    - self
    - text
    - stack
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 681
    functionName: pip._vendor.pygments.lexer.RegexLexer.get_tokens_unprocessed
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 2
    functionsReached:
    - statestack.append
    - <builtin>.isinstance
    - statestack.pop
    - m.end
    - <builtin>.len
    - m.group
    - <builtin>.abs
    - <builtin>.list
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: m.end
    functionSourceFile: <builtin>
    functionUses: 40
    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: statestack.pop
    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: statestack.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.abs
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2a3a700>
    - <ast.Constant object at 0x7f30f2a3a6d0>
    argNames:
    - self
    - text
    - pos
    - stack
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 748
    functionName: pip._vendor.pygments.lexer.LexerContext.__init__
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 1
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 754
    functionName: pip._vendor.pygments.lexer.LexerContext.__repr__
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 7
    IfCount: 13
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2a37d90>
    - <ast.Constant object at 0x7f30f2a37d60>
    argNames:
    - self
    - text
    - context
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 764
    functionName: pip._vendor.pygments.lexer.ExtendedRegexLexer.get_tokens_unprocessed
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.lexer.LexerContext.__init__
    - <builtin>.isinstance
    - m.end
    - <builtin>.len
    - ctx.stack.pop
    - m.group
    - <builtin>.abs
    - ctx.stack.append
    - <builtin>.type
    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: ctx.stack.pop
    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: ctx.stack.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - regex
    - rflags
    - state
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 898
    functionName: pip._vendor.pygments.lexer.ProfilingRegexLexerMeta._process_regex
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - CS_ESCAPE.sub
    - pip._vendor.pygments.regexopt.regex_opt_inner
    - rest.append
    - <builtin>.isinstance
    - <builtin>.len
    - <builtin>.sorted
    - itertools.groupby
    - pip._vendor.pygments.regexopt.regex_opt
    - re.compile
    - oneletter.append
    - re.escape
    - pip._vendor.pygments.regexopt.make_charset
    - <builtin>.list
    - os.path.commonprefix
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7f30f25bdc40>
    argNames:
    - text
    - pos
    - endpos
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 906
    functionName: pip._vendor.pygments.lexer.ProfilingRegexLexerMeta._process_regex.match_func
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - time.time
    - compiled.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.time
    functionSourceFile: time
    functionUses: 62
    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: compiled.match
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 9
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Tuple object at 0x7f30f25baeb0>
    argNames:
    - self
    - text
    - stack
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 923
    functionName: pip._vendor.pygments.lexer.ProfilingRegexLexer.get_tokens_unprocessed
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached:
    - statestack.append
    - <builtin>.isinstance
    - statestack.pop
    - m.end
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.pygments.lexer.RegexLexer.get_tokens_unprocessed
    - <builtin>.sorted
    - <builtin>.print
    - rawdata.items
    - m.group
    - <builtin>.abs
    - <builtin>.repr
    - <builtin>.list
    - <builtin>.type
    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: rawdata.items
    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: pip._vendor.pygments.lexer.ProfilingRegexLexer.get_tokens_unprocessed.<lambda1>
    functionSourceFile: pip._vendor.pygments.lexer
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pygments.filters
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - filtername
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 22
    functionName: pip._vendor.pygments.filters.find_filter_class
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 12
    functionsReached:
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.find_plugin_filters
    - pip._vendor.pygments.plugin.iter_entry_points
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 45
    functionName: pip._vendor.pygments.filters.get_all_filters
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 5
    functionsReached:
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.find_plugin_filters
    - pip._vendor.pygments.plugin.iter_entry_points
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Lambda object at 0x7f30df922070>
    argNames:
    - ttype
    - value
    - regex
    - specialttype
    - replacefunc
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 52
    functionName: pip._vendor.pygments.filters._replace_special
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - match.start
    - pip._vendor.pygments.filters.VisibleWhitespaceFilter.filter.replacefunc
    - regex.finditer
    - pip._vendor.pygments.filters.<lambda1>
    - match.end
    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: regex.finditer
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - wschar
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 843
    functionName: pip._vendor.pygments.filters.VisibleWhitespaceFilter.filter.replacefunc
    functionSourceFile: ''
    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: pip._vendor.pygments.filters.<lambda1>
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 78
    functionName: pip._vendor.pygments.filters.CodeTagFilter.__init__
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - options.get
    - pip._vendor.pygments.util.get_list_opt
    - re.compile
    - <builtin>.list
    - re.escape
    - val.split
    - pip._vendor.pygments.filter.Filter.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 47
    functionName: pip._vendor.pygments.filter.Filter.__init__
    functionSourceFile: ''
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - lexer
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 86
    functionName: pip._vendor.pygments.filters.CodeTagFilter.filter
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - match.start
    - pip._vendor.pygments.filters.VisibleWhitespaceFilter.filter.replacefunc
    - regex.finditer
    - pip._vendor.pygments.filters.<lambda1>
    - pip._vendor.pygments.filters._replace_special
    - match.end
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 673
    functionName: pip._vendor.pygments.filters.SymbolFilter.__init__
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.filter.Filter.__init__
    - string.lower
    - options.get
    - pip._vendor.pygments.util.get_choice_opt
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - lexer
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 679
    functionName: pip._vendor.pygments.filters.SymbolFilter.filter
    functionSourceFile: pip._vendor.pygments.filters
    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
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 701
    functionName: pip._vendor.pygments.filters.KeywordCaseFilter.__init__
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached:
    - options.get
    - string.lower
    - <builtin>.getattr
    - pip._vendor.pygments.util.get_choice_opt
    - pip._vendor.pygments.filter.Filter.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - lexer
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 707
    functionName: pip._vendor.pygments.filters.KeywordCaseFilter.filter
    functionSourceFile: pip._vendor.pygments.filters
    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
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 739
    functionName: pip._vendor.pygments.filters.NameHighlightFilter.__init__
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached:
    - s.split
    - <builtin>.isinstance
    - options.get
    - pip._vendor.pygments.util.get_list_opt
    - <builtin>.set
    - <builtin>.getattr
    - pip._vendor.pygments.token.string_to_tokentype
    - <builtin>.list
    - val.split
    - pip._vendor.pygments.filter.Filter.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 94
    functionName: pip._vendor.pygments.token.string_to_tokentype
    functionSourceFile: pip._vendor.pygments.token
    functionUses: 1
    functionsReached:
    - s.split
    - <builtin>.getattr
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - lexer
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 748
    functionName: pip._vendor.pygments.filters.NameHighlightFilter.filter
    functionSourceFile: pip._vendor.pygments.filters
    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
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 772
    functionName: pip._vendor.pygments.filters.RaiseOnErrorTokenFilter.__init__
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached:
    - options.get
    - pip._vendor.pygments.filter.Filter.__init__
    - <builtin>.issubclass
    linkageType: pythonLinkage
    raised:
    - OptionError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - lexer
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 782
    functionName: pip._vendor.pygments.filters.RaiseOnErrorTokenFilter.filter
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 819
    functionName: pip._vendor.pygments.filters.VisibleWhitespaceFilter.__init__
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.int
    - options.get
    - pip._vendor.pygments.util.get_int_opt
    - pip._vendor.pygments.util.get_bool_opt
    - string.lower
    - <builtin>.bool
    - <builtin>.len
    - <builtin>.setattr
    - pip._vendor.pygments.filter.Filter.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - lexer
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 836
    functionName: pip._vendor.pygments.filters.VisibleWhitespaceFilter.filter
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - match.start
    - pip._vendor.pygments.filters.<lambda1>
    - re.compile
    - pip._vendor.pygments.filters.VisibleWhitespaceFilter.filter.replacefunc
    - regex.finditer
    - value.replace
    - pip._vendor.pygments.filters._replace_special
    - match.end
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.replace
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 882
    functionName: pip._vendor.pygments.filters.GobbleFilter.__init__
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.util.get_int_opt
    - <builtin>.int
    - pip._vendor.pygments.filter.Filter.__init__
    - options.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - value
    - left
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 886
    functionName: pip._vendor.pygments.filters.GobbleFilter.gobble
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 1
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - lexer
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 892
    functionName: pip._vendor.pygments.filters.GobbleFilter.filter
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached:
    - value.split
    - pip._vendor.pygments.filters.GobbleFilter.gobble
    - <builtin>.len
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.split
    functionSourceFile: <builtin>
    functionUses: 64
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 913
    functionName: pip._vendor.pygments.filters.TokenMergeFilter.__init__
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.filter.Filter.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - lexer
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 916
    functionName: pip._vendor.pygments.filters.TokenMergeFilter.filter
    functionSourceFile: pip._vendor.pygments.filters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.pygments.token
    functionSourceFile: pip._vendor.pygments.token
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - pip._vendor.pygments.token._TokenType.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 15
    functionName: pip._vendor.pygments.token._TokenType.split
    functionSourceFile: pip._vendor.pygments.token
    functionUses: 0
    functionsReached:
    - buf.reverse
    - buf.append
    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: buf.append
    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: buf.reverse
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: pip._vendor.pygments.token._TokenType.__init__
    functionSourceFile: pip._vendor.pygments.token
    functionUses: 2
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - val
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: pip._vendor.pygments.token._TokenType.__contains__
    functionSourceFile: pip._vendor.pygments.token
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - val
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 34
    functionName: pip._vendor.pygments.token._TokenType.__getattr__
    functionSourceFile: pip._vendor.pygments.token
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - pip._vendor.pygments.token._TokenType.__init__
    - <builtin>.setattr
    - tuple.__getattribute__
    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: tuple.__getattribute__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 43
    functionName: pip._vendor.pygments.token._TokenType.__repr__
    functionSourceFile: pip._vendor.pygments.token
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: pip._vendor.pygments.token._TokenType.__copy__
    functionSourceFile: pip._vendor.pygments.token
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - memo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 50
    functionName: pip._vendor.pygments.token._TokenType.__deepcopy__
    functionSourceFile: pip._vendor.pygments.token
    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:
    - ttype
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 85
    functionName: pip._vendor.pygments.token.is_token_subtype
    functionSourceFile: pip._vendor.pygments.token
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.split
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pygments.filter
    functionSourceFile: pip._vendor.pygments.filter
    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:
    - filter_
    - stream
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 18
    functionName: pip._vendor.pygments.filter.apply_filters._apply
    functionSourceFile: pip._vendor.pygments.filter
    functionUses: 7
    functionsReached:
    - filter_.filter
    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: filter_.filter
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 25
    functionName: pip._vendor.pygments.filter.simplefilter
    functionSourceFile: pip._vendor.pygments.filter
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - lexer
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 50
    functionName: pip._vendor.pygments.filter.Filter.filter
    functionSourceFile: pip._vendor.pygments.filter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 63
    functionName: pip._vendor.pygments.filter.FunctionFilter.__init__
    functionSourceFile: pip._vendor.pygments.filter
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.filter.Filter.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - lexer
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 69
    functionName: pip._vendor.pygments.filter.FunctionFilter.filter
    functionSourceFile: pip._vendor.pygments.filter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet
    functionSourceFile: pip._vendor.chardet
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bytearray
    functionSourceFile: <builtin>
    functionUses: 100
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7f30f21129a0>
    - <ast.Constant object at 0x7f30f2112250>
    argNames:
    - self
    - lang_filter
    - should_rename_legacy
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 100
    functionName: pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    functionSourceFile: pip._vendor.chardet.universaldetector
    functionUses: 12
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - <builtin>.len
    - prober.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - logging.getLogger
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - coding_sm.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 24
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 35
    ICount: 4
    IfCount: 24
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 154
    functionName: pip._vendor.chardet.universaldetector.UniversalDetector.feed
    functionSourceFile: pip._vendor.chardet.universaldetector
    functionUses: 12
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - <builtin>.bytearray
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - coding_sm.get_coding_state_machine
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - coding_sm.next_state
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - prober.get_confidence
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - <builtin>.super
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - <builtin>.len
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - logging.getLogger
    - prober.feed
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - <builtin>.max
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - coding_sm.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 5
    IfCount: 14
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 285
    functionName: pip._vendor.chardet.universaldetector.UniversalDetector.close
    functionSourceFile: pip._vendor.chardet.universaldetector
    functionUses: 12
    functionsReached:
    - group_prober.get_confidence
    - lower_charset_name.startswith
    - <builtin>.isinstance
    - charset_name.lower
    - max_prober.get_confidence
    - prober.get_confidence
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 6
    IfCount: 8
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f20a1d00>
    - <ast.Constant object at 0x7f30f20a1df0>
    argNames:
    - byte_str
    - ignore_threshold
    - should_rename_legacy
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 53
    functionName: pip._vendor.chardet.detect_all
    functionSourceFile: pip._vendor.chardet
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - <builtin>.sorted
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - coding_sm.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    - results.append
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - coding_sm.get_coding_state_machine
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.close
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - probers.extend
    - pip._vendor.chardet.universaldetector.UniversalDetector.feed
    - prober.get_confidence
    - <builtin>.super
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - logging.getLogger
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - <builtin>.bytearray
    - <builtin>.max
    - lower_charset_name.startswith
    - <builtin>.isinstance
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - <builtin>.len
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - max_prober.get_confidence
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - group_prober.get_confidence
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - coding_sm.next_state
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - probers.append
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - charset_name.lower
    - detector.ISO_WIN_MAP.get
    - prober.feed
    - detector.LEGACY_MAP.get
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    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: probers.extend
    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: probers.append
    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: charset_name.lower
    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: lower_charset_name.startswith
    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: detector.ISO_WIN_MAP.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: detector.LEGACY_MAP.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: results.append
    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: pip._vendor.chardet.detect_all.<lambda1>
    functionSourceFile: pip._vendor.chardet
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.resultdict
    functionSourceFile: pip._vendor.chardet.resultdict
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.chardet.version
    functionSourceFile: pip._vendor.chardet.version
    functionUses: 0
    functionsReached:
    - __version__.split
    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: __version__.split
    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: pip._vendor.chardet.charsetgroupprober
    functionSourceFile: pip._vendor.chardet.charsetgroupprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Attribute object at 0x7f30e57fc310>
    argNames:
    - self
    - lang_filter
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.__init__
    functionSourceFile: pip._vendor.chardet.charsetgroupprober
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    functionSourceFile: pip._vendor.chardet.charsetgroupprober
    functionUses: 15
    functionsReached:
    - <builtin>.super
    - prober.reset
    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: prober.reset
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    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: 2
    functionLinenumber: 51
    functionName: pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.charset_name
    functionSourceFile: pip._vendor.chardet.charsetgroupprober
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.get_confidence
    - prober.get_confidence
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 85
    functionName: pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.get_confidence
    functionSourceFile: pip._vendor.chardet.charsetgroupprober
    functionUses: 2
    functionsReached:
    - prober.get_confidence
    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: 2
    functionLinenumber: 59
    functionName: pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.language
    functionSourceFile: pip._vendor.chardet.charsetgroupprober
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.get_confidence
    - prober.get_confidence
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.feed
    functionSourceFile: pip._vendor.chardet.charsetgroupprober
    functionUses: 0
    functionsReached:
    - prober.feed
    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: prober.feed
    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: prober.get_confidence
    functionSourceFile: <builtin>
    functionUses: 17
    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: pip._vendor.chardet.charsetprober
    functionSourceFile: pip._vendor.chardet.charsetprober
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Attribute object at 0x7f30f21144f0>
    argNames:
    - self
    - lang_filter
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: pip._vendor.chardet.charsetprober.CharSetProber.__init__
    functionSourceFile: pip._vendor.chardet.charsetprober
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 50
    functionName: pip._vendor.chardet.charsetprober.CharSetProber.reset
    functionSourceFile: pip._vendor.chardet.charsetprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 54
    functionName: pip._vendor.chardet.charsetprober.CharSetProber.charset_name
    functionSourceFile: pip._vendor.chardet.charsetprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 58
    functionName: pip._vendor.chardet.charsetprober.CharSetProber.language
    functionSourceFile: pip._vendor.chardet.charsetprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 61
    functionName: pip._vendor.chardet.charsetprober.CharSetProber.feed
    functionSourceFile: pip._vendor.chardet.charsetprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 65
    functionName: pip._vendor.chardet.charsetprober.CharSetProber.state
    functionSourceFile: pip._vendor.chardet.charsetprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 68
    functionName: pip._vendor.chardet.charsetprober.CharSetProber.get_confidence
    functionSourceFile: pip._vendor.chardet.charsetprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - buf
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 72
    functionName: pip._vendor.chardet.charsetprober.CharSetProber.filter_high_byte_only
    functionSourceFile: pip._vendor.chardet.charsetprober
    functionUses: 1
    functionsReached:
    - re.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - buf
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 77
    functionName: pip._vendor.chardet.charsetprober.CharSetProber.filter_international_words
    functionSourceFile: pip._vendor.chardet.charsetprober
    functionUses: 1
    functionsReached:
    - <builtin>.bytearray
    - INTERNATIONAL_WORDS_PATTERN.findall
    - filtered.extend
    - last_char.isalpha
    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: INTERNATIONAL_WORDS_PATTERN.findall
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filtered.extend
    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: last_char.isalpha
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - buf
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 111
    functionName: pip._vendor.chardet.charsetprober.CharSetProber.remove_xml_tags
    functionSourceFile: pip._vendor.chardet.charsetprober
    functionUses: 3
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.memoryview
    - <builtin>.enumerate
    - filtered.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.memoryview
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.enums
    functionSourceFile: pip._vendor.chardet.enums
    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:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 68
    functionName: pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    functionSourceFile: pip._vendor.chardet.enums
    functionUses: 16
    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: pip._vendor.chardet.universaldetector
    functionSourceFile: pip._vendor.chardet.universaldetector
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.chardet.universaldetector.UniversalDetector
    functionSourceFile: pip._vendor.chardet.universaldetector
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 135
    functionName: pip._vendor.chardet.universaldetector.UniversalDetector.reset
    functionSourceFile: pip._vendor.chardet.universaldetector
    functionUses: 13
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    - prober.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - coding_sm.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 124
    functionName: pip._vendor.chardet.universaldetector.UniversalDetector.input_state
    functionSourceFile: pip._vendor.chardet.universaldetector
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 128
    functionName: pip._vendor.chardet.universaldetector.UniversalDetector.has_win_bytes
    functionSourceFile: pip._vendor.chardet.universaldetector
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 132
    functionName: pip._vendor.chardet.universaldetector.UniversalDetector.charset_probers
    functionSourceFile: pip._vendor.chardet.universaldetector
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    functionName: pip._vendor.chardet.escprober.EscCharSetProber.reset
    functionSourceFile: pip._vendor.chardet.escprober
    functionUses: 16
    functionsReached:
    - <builtin>.super
    - coding_sm.reset
    - <builtin>.len
    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: 56
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 16
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 41
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 13
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 187
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 13
    functionsReached:
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 215
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 14
    functionsReached:
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - <builtin>.max
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Attribute object at 0x7f30db49c7c0>
    argNames:
    - self
    - lang_filter
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 48
    functionName: pip._vendor.chardet.escprober.EscCharSetProber.__init__
    functionSourceFile: pip._vendor.chardet.escprober
    functionUses: 13
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - <builtin>.len
    - logging.getLogger
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - coding_sm.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: pip._vendor.chardet.escprober.EscCharSetProber.feed
    functionSourceFile: pip._vendor.chardet.escprober
    functionUses: 13
    functionsReached:
    - coding_sm.get_coding_state_machine
    - coding_sm.next_state
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 81
    functionName: pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    functionSourceFile: ''
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Attribute object at 0x7f30e7833e50>
    argNames:
    - self
    - lang_filter
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 44
    functionName: pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    functionSourceFile: pip._vendor.chardet.mbcsgroupprober
    functionUses: 13
    functionsReached:
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - <builtin>.super
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - logging.getLogger
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - <builtin>.bytearray
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 51
    functionName: pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    functionSourceFile: pip._vendor.chardet.sbcsgroupprober
    functionUses: 13
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - prober.reset
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 101
    functionName: pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    functionSourceFile: pip._vendor.chardet.latin1prober
    functionUses: 13
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 110
    functionName: pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    functionSourceFile: pip._vendor.chardet.macromanprober
    functionUses: 13
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    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: max_prober.get_confidence
    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: group_prober.get_confidence
    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: pip._vendor.chardet.mbcsgroupprober
    functionSourceFile: pip._vendor.chardet.mbcsgroupprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 39
    functionName: pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    functionSourceFile: pip._vendor.chardet.utf8prober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - logging.getLogger
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 39
    functionName: pip._vendor.chardet.sjisprober.SJISProber.__init__
    functionSourceFile: pip._vendor.chardet.sjisprober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - logging.getLogger
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 39
    functionName: pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    functionSourceFile: pip._vendor.chardet.eucjpprober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - logging.getLogger
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 35
    functionName: pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    functionSourceFile: pip._vendor.chardet.gb2312prober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - logging.getLogger
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - <builtin>.bytearray
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 35
    functionName: pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    functionSourceFile: pip._vendor.chardet.euckrprober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - logging.getLogger
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - <builtin>.bytearray
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 35
    functionName: pip._vendor.chardet.cp949prober.CP949Prober.__init__
    functionSourceFile: pip._vendor.chardet.cp949prober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - logging.getLogger
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - <builtin>.bytearray
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 35
    functionName: pip._vendor.chardet.big5prober.Big5Prober.__init__
    functionSourceFile: pip._vendor.chardet.big5prober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - logging.getLogger
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - <builtin>.bytearray
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 35
    functionName: pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    functionSourceFile: pip._vendor.chardet.euctwprober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - logging.getLogger
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - <builtin>.bytearray
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 35
    functionName: pip._vendor.chardet.johabprober.JOHABProber.__init__
    functionSourceFile: pip._vendor.chardet.johabprober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - logging.getLogger
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - <builtin>.bytearray
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    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: pip._vendor.chardet.euckrprober
    functionSourceFile: pip._vendor.chardet.euckrprober
    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
    - sm
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    functionSourceFile: pip._vendor.chardet.codingstatemachine
    functionUses: 24
    functionsReached:
    - logging.getLogger
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    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: 151
    functionName: pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    functionSourceFile: pip._vendor.chardet.chardistribution
    functionUses: 16
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    functionSourceFile: pip._vendor.chardet.eucjpprober
    functionUses: 21
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    functionSourceFile: pip._vendor.chardet.mbcharsetprober
    functionUses: 20
    functionsReached:
    - <builtin>.super
    - <builtin>.bytearray
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: pip._vendor.chardet.sjisprober.SJISProber.reset
    functionSourceFile: pip._vendor.chardet.sjisprober
    functionUses: 21
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: pip._vendor.chardet.euckrprober.EUCKRProber.charset_name
    functionSourceFile: pip._vendor.chardet.euckrprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: pip._vendor.chardet.euckrprober.EUCKRProber.language
    functionSourceFile: pip._vendor.chardet.euckrprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.utf8prober
    functionSourceFile: pip._vendor.chardet.utf8prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 45
    functionName: pip._vendor.chardet.utf8prober.UTF8Prober.reset
    functionSourceFile: pip._vendor.chardet.utf8prober
    functionUses: 15
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 66
    functionName: pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    functionSourceFile: ''
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 51
    functionName: pip._vendor.chardet.utf8prober.UTF8Prober.charset_name
    functionSourceFile: pip._vendor.chardet.utf8prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 55
    functionName: pip._vendor.chardet.utf8prober.UTF8Prober.language
    functionSourceFile: pip._vendor.chardet.utf8prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 58
    functionName: pip._vendor.chardet.utf8prober.UTF8Prober.feed
    functionSourceFile: pip._vendor.chardet.utf8prober
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.next_state
    - pip._vendor.chardet.utf8prober.UTF8Prober.get_confidence
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.get_current_charlen
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - c
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 69
    functionName: pip._vendor.chardet.codingstatemachine.CodingStateMachine.next_state
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 82
    functionName: pip._vendor.chardet.codingstatemachine.CodingStateMachine.get_current_charlen
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 77
    functionName: pip._vendor.chardet.utf8prober.UTF8Prober.get_confidence
    functionSourceFile: ''
    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: pip._vendor.chardet.euctwprober
    functionSourceFile: pip._vendor.chardet.euctwprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 133
    functionName: pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    functionSourceFile: pip._vendor.chardet.chardistribution
    functionUses: 15
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: pip._vendor.chardet.euctwprober.EUCTWProber.charset_name
    functionSourceFile: pip._vendor.chardet.euctwprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: pip._vendor.chardet.euctwprober.EUCTWProber.language
    functionSourceFile: pip._vendor.chardet.euctwprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.gb2312prober
    functionSourceFile: pip._vendor.chardet.gb2312prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 184
    functionName: pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    functionSourceFile: pip._vendor.chardet.chardistribution
    functionUses: 15
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: pip._vendor.chardet.gb2312prober.GB2312Prober.charset_name
    functionSourceFile: pip._vendor.chardet.gb2312prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: pip._vendor.chardet.gb2312prober.GB2312Prober.language
    functionSourceFile: pip._vendor.chardet.gb2312prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.big5prober
    functionSourceFile: pip._vendor.chardet.big5prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 202
    functionName: pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    functionSourceFile: pip._vendor.chardet.chardistribution
    functionUses: 15
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: pip._vendor.chardet.big5prober.Big5Prober.charset_name
    functionSourceFile: pip._vendor.chardet.big5prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: pip._vendor.chardet.big5prober.Big5Prober.language
    functionSourceFile: pip._vendor.chardet.big5prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.mbcssm
    functionSourceFile: pip._vendor.chardet.mbcssm
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.mbcharsetprober
    functionSourceFile: pip._vendor.chardet.mbcharsetprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Attribute object at 0x7f30d8c01610>
    argNames:
    - self
    - lang_filter
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.__init__
    functionSourceFile: pip._vendor.chardet.mbcharsetprober
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.bytearray
    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: 79
    functionName: pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    functionSourceFile: ''
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 57
    functionName: pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.feed
    functionSourceFile: pip._vendor.chardet.mbcharsetprober
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.get_order
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.next_state
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.get_order
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.get_order
    - pip._vendor.chardet.eucjpprober.EUCJPProber.get_confidence
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.get_order
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.get_confidence
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.get_order
    - <builtin>.enumerate
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.get_confidence
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.get_order
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_order
    - JOHAB_TO_EUCKR_ORDER_TABLE.get
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.get_order
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.got_enough_data
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.get_current_charlen
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_confidence
    - pip._vendor.chardet.sjisprober.SJISProber.get_confidence
    - <builtin>.max
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.feed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - char
    - char_len
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 88
    functionName: pip._vendor.chardet.chardistribution.CharDistributionAnalysis.feed
    functionSourceFile: pip._vendor.chardet.chardistribution
    functionUses: 3
    functionsReached:
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_order
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.get_order
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.get_order
    - JOHAB_TO_EUCKR_ORDER_TABLE.get
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.get_order
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.get_order
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.get_order
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.get_order
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.get_order
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 119
    functionName: pip._vendor.chardet.chardistribution.CharDistributionAnalysis.got_enough_data
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 97
    functionName: pip._vendor.chardet.eucjpprober.EUCJPProber.get_confidence
    functionSourceFile: pip._vendor.chardet.eucjpprober
    functionUses: 2
    functionsReached:
    - <builtin>.max
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.get_confidence
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_confidence
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 93
    functionName: pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.get_confidence
    functionSourceFile: pip._vendor.chardet.mbcharsetprober
    functionUses: 1
    functionsReached:
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_confidence
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 100
    functionName: pip._vendor.chardet.sjisprober.SJISProber.get_confidence
    functionSourceFile: pip._vendor.chardet.sjisprober
    functionUses: 2
    functionsReached:
    - <builtin>.max
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.get_confidence
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_confidence
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 102
    functionName: pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_confidence
    functionSourceFile: ''
    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: pip._vendor.chardet.chardistribution
    functionSourceFile: pip._vendor.chardet.chardistribution
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    functionName: pip._vendor.chardet.chardistribution.CharDistributionAnalysis.__init__
    functionSourceFile: pip._vendor.chardet.chardistribution
    functionUses: 0
    functionsReached:
    - <builtin>.tuple
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - _
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 124
    functionName: pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_order
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 253
    functionName: pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.get_order
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 175
    functionName: pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.get_order
    functionSourceFile: pip._vendor.chardet.chardistribution
    functionUses: 4
    functionsReached:
    - JOHAB_TO_EUCKR_ORDER_TABLE.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 190
    functionName: pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.get_order
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 157
    functionName: pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.get_order
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 208
    functionName: pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.get_order
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 228
    functionName: pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.get_order
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 139
    functionName: pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.get_order
    functionSourceFile: ''
    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: 169
    functionName: pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    functionSourceFile: pip._vendor.chardet.chardistribution
    functionUses: 15
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: JOHAB_TO_EUCKR_ORDER_TABLE.get
    functionSourceFile: <builtin>
    functionUses: 5
    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: 222
    functionName: pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    functionSourceFile: pip._vendor.chardet.chardistribution
    functionUses: 15
    functionsReached:
    - <builtin>.super
    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: 247
    functionName: pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    functionSourceFile: pip._vendor.chardet.chardistribution
    functionUses: 15
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.euckrfreq
    functionSourceFile: pip._vendor.chardet.euckrfreq
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.euctwfreq
    functionSourceFile: pip._vendor.chardet.euctwfreq
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.big5freq
    functionSourceFile: pip._vendor.chardet.big5freq
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.johabfreq
    functionSourceFile: pip._vendor.chardet.johabfreq
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.jisfreq
    functionSourceFile: pip._vendor.chardet.jisfreq
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.gb2312freq
    functionSourceFile: pip._vendor.chardet.gb2312freq
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.sjisprober
    functionSourceFile: pip._vendor.chardet.sjisprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 190
    functionName: pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    functionSourceFile: pip._vendor.chardet.jpcntx
    functionUses: 15
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 135
    functionName: pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    functionSourceFile: ''
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 51
    functionName: pip._vendor.chardet.sjisprober.SJISProber.charset_name
    functionSourceFile: pip._vendor.chardet.sjisprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 55
    functionName: pip._vendor.chardet.sjisprober.SJISProber.language
    functionSourceFile: pip._vendor.chardet.sjisprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 58
    functionName: pip._vendor.chardet.sjisprober.SJISProber.feed
    functionSourceFile: pip._vendor.chardet.sjisprober
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.get_order
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.got_enough_data
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.next_state
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.get_order
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.get_order
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.get_order
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.get_order
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.get_order
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.get_order
    - <builtin>.enumerate
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.get_confidence
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.get_order
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.feed
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_order
    - JOHAB_TO_EUCKR_ORDER_TABLE.get
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.get_order
    - <builtin>.len
    - pip._vendor.chardet.jpcntx.EUCJPContextAnalysis.get_order
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.get_current_charlen
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_confidence
    - pip._vendor.chardet.sjisprober.SJISProber.get_confidence
    - <builtin>.max
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.feed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    - num_bytes
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 147
    functionName: pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.feed
    functionSourceFile: pip._vendor.chardet.jpcntx
    functionUses: 2
    functionsReached:
    - pip._vendor.chardet.jpcntx.EUCJPContextAnalysis.get_order
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.get_order
    - <builtin>.len
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.get_order
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 176
    functionName: pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.got_enough_data
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 179
    functionName: pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.get_confidence
    functionSourceFile: ''
    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: pip._vendor.chardet.cp949prober
    functionSourceFile: pip._vendor.chardet.cp949prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 44
    functionName: pip._vendor.chardet.cp949prober.CP949Prober.charset_name
    functionSourceFile: pip._vendor.chardet.cp949prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 48
    functionName: pip._vendor.chardet.cp949prober.CP949Prober.language
    functionSourceFile: pip._vendor.chardet.cp949prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.johabprober
    functionSourceFile: pip._vendor.chardet.johabprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: pip._vendor.chardet.johabprober.JOHABProber.charset_name
    functionSourceFile: pip._vendor.chardet.johabprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: pip._vendor.chardet.johabprober.JOHABProber.language
    functionSourceFile: pip._vendor.chardet.johabprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.eucjpprober
    functionSourceFile: pip._vendor.chardet.eucjpprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 127
    functionName: pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    functionSourceFile: pip._vendor.chardet.jpcntx
    functionUses: 15
    functionsReached:
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 51
    functionName: pip._vendor.chardet.eucjpprober.EUCJPProber.charset_name
    functionSourceFile: pip._vendor.chardet.eucjpprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 55
    functionName: pip._vendor.chardet.eucjpprober.EUCJPProber.language
    functionSourceFile: pip._vendor.chardet.eucjpprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 58
    functionName: pip._vendor.chardet.eucjpprober.EUCJPProber.feed
    functionSourceFile: pip._vendor.chardet.eucjpprober
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.get_order
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.got_enough_data
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.next_state
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.get_order
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.get_order
    - pip._vendor.chardet.eucjpprober.EUCJPProber.get_confidence
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.get_order
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.get_order
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.get_order
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.get_order
    - <builtin>.enumerate
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.get_confidence
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.get_order
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.feed
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_order
    - JOHAB_TO_EUCKR_ORDER_TABLE.get
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.get_order
    - <builtin>.len
    - pip._vendor.chardet.jpcntx.EUCJPContextAnalysis.get_order
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.get_current_charlen
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_confidence
    - <builtin>.max
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.feed
    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: pip._vendor.chardet.jpcntx
    functionSourceFile: pip._vendor.chardet.jpcntx
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 220
    functionName: pip._vendor.chardet.jpcntx.EUCJPContextAnalysis.get_order
    functionSourceFile: pip._vendor.chardet.jpcntx
    functionUses: 3
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 198
    functionName: pip._vendor.chardet.jpcntx.SJISContextAnalysis.get_order
    functionSourceFile: pip._vendor.chardet.jpcntx
    functionUses: 3
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - _
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 185
    functionName: pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.get_order
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 195
    functionName: pip._vendor.chardet.jpcntx.SJISContextAnalysis.charset_name
    functionSourceFile: pip._vendor.chardet.jpcntx
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.latin1prober
    functionSourceFile: pip._vendor.chardet.latin1prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 107
    functionName: pip._vendor.chardet.latin1prober.Latin1Prober.reset
    functionSourceFile: pip._vendor.chardet.latin1prober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 113
    functionName: pip._vendor.chardet.latin1prober.Latin1Prober.charset_name
    functionSourceFile: pip._vendor.chardet.latin1prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 117
    functionName: pip._vendor.chardet.latin1prober.Latin1Prober.language
    functionSourceFile: pip._vendor.chardet.latin1prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 120
    functionName: pip._vendor.chardet.latin1prober.Latin1Prober.feed
    functionSourceFile: pip._vendor.chardet.latin1prober
    functionUses: 0
    functionsReached:
    - <builtin>.enumerate
    - <builtin>.memoryview
    - pip._vendor.chardet.charsetprober.CharSetProber.remove_xml_tags
    - filtered.extend
    - <builtin>.bytearray
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 133
    functionName: pip._vendor.chardet.latin1prober.Latin1Prober.get_confidence
    functionSourceFile: pip._vendor.chardet.latin1prober
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - <builtin>.sum
    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: pip._vendor.chardet.macromanprober
    functionSourceFile: pip._vendor.chardet.macromanprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 116
    functionName: pip._vendor.chardet.macromanprober.MacRomanProber.reset
    functionSourceFile: pip._vendor.chardet.macromanprober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 128
    functionName: pip._vendor.chardet.macromanprober.MacRomanProber.charset_name
    functionSourceFile: pip._vendor.chardet.macromanprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 132
    functionName: pip._vendor.chardet.macromanprober.MacRomanProber.language
    functionSourceFile: pip._vendor.chardet.macromanprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 135
    functionName: pip._vendor.chardet.macromanprober.MacRomanProber.feed
    functionSourceFile: pip._vendor.chardet.macromanprober
    functionUses: 0
    functionsReached:
    - <builtin>.enumerate
    - <builtin>.memoryview
    - pip._vendor.chardet.charsetprober.CharSetProber.remove_xml_tags
    - filtered.extend
    - <builtin>.bytearray
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 148
    functionName: pip._vendor.chardet.macromanprober.MacRomanProber.get_confidence
    functionSourceFile: pip._vendor.chardet.macromanprober
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - <builtin>.sum
    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: pip._vendor.chardet.sbcsgroupprober
    functionSourceFile: pip._vendor.chardet.sbcsgroupprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 159
    functionName: pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    functionSourceFile: pip._vendor.chardet.hebrewprober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd64f0>
    - <ast.Constant object at 0x7f30f6bd6970>
    argNames:
    - self
    - model
    - is_reversed
    - name_prober
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 51
    functionName: pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    functionSourceFile: pip._vendor.chardet.sbcharsetprober
    functionUses: 14
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - logical_prober
    - visual_prober
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 179
    functionName: pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    functionSourceFile: ''
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.chardet.langgreekmodel
    functionSourceFile: pip._vendor.chardet.langgreekmodel
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.sbcharsetprober
    functionSourceFile: pip._vendor.chardet.sbcharsetprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 71
    functionName: pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    functionSourceFile: pip._vendor.chardet.sbcharsetprober
    functionUses: 15
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 83
    functionName: pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.charset_name
    functionSourceFile: pip._vendor.chardet.sbcharsetprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 89
    functionName: pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.language
    functionSourceFile: pip._vendor.chardet.sbcharsetprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 2
    IfCount: 10
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 94
    functionName: pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.feed
    functionSourceFile: pip._vendor.chardet.sbcharsetprober
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.get_confidence
    - typing.NamedTuple.char_to_order_map.get
    - <builtin>.enumerate
    - <builtin>.memoryview
    - pip._vendor.chardet.charsetprober.CharSetProber.remove_xml_tags
    - filtered.extend
    - pip._vendor.chardet.charsetprober.CharSetProber.filter_international_words
    - INTERNATIONAL_WORDS_PATTERN.findall
    - <builtin>.bytearray
    - last_char.isalpha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.char_to_order_map.get
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 144
    functionName: pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.get_confidence
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.chardet.langhebrewmodel
    functionSourceFile: pip._vendor.chardet.langhebrewmodel
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.chardet.langthaimodel
    functionSourceFile: pip._vendor.chardet.langthaimodel
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.chardet.langrussianmodel
    functionSourceFile: pip._vendor.chardet.langrussianmodel
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.chardet.langturkishmodel
    functionSourceFile: pip._vendor.chardet.langturkishmodel
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.hebrewprober
    functionSourceFile: pip._vendor.chardet.hebrewprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 169
    functionName: pip._vendor.chardet.hebrewprober.HebrewProber.reset
    functionSourceFile: ''
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - c
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 187
    functionName: pip._vendor.chardet.hebrewprober.HebrewProber.is_final
    functionSourceFile: pip._vendor.chardet.hebrewprober
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - c
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 196
    functionName: pip._vendor.chardet.hebrewprober.HebrewProber.is_non_final
    functionSourceFile: pip._vendor.chardet.hebrewprober
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - byte_str
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 209
    functionName: pip._vendor.chardet.hebrewprober.HebrewProber.feed
    functionSourceFile: pip._vendor.chardet.hebrewprober
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.hebrewprober.HebrewProber.is_non_final
    - pip._vendor.chardet.hebrewprober.HebrewProber.is_final
    - re.sub
    - pip._vendor.chardet.charsetprober.CharSetProber.filter_high_byte_only
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 272
    functionName: pip._vendor.chardet.hebrewprober.HebrewProber.charset_name
    functionSourceFile: pip._vendor.chardet.hebrewprober
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.get_confidence
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 303
    functionName: pip._vendor.chardet.hebrewprober.HebrewProber.language
    functionSourceFile: pip._vendor.chardet.hebrewprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 307
    functionName: pip._vendor.chardet.hebrewprober.HebrewProber.state
    functionSourceFile: pip._vendor.chardet.hebrewprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.chardet.langbulgarianmodel
    functionSourceFile: pip._vendor.chardet.langbulgarianmodel
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.escprober
    functionSourceFile: pip._vendor.chardet.escprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: coding_sm.reset
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 74
    functionName: pip._vendor.chardet.escprober.EscCharSetProber.charset_name
    functionSourceFile: pip._vendor.chardet.escprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 78
    functionName: pip._vendor.chardet.escprober.EscCharSetProber.language
    functionSourceFile: pip._vendor.chardet.escprober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: coding_sm.next_state
    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: coding_sm.get_coding_state_machine
    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: pip._vendor.chardet.escsm
    functionSourceFile: pip._vendor.chardet.escsm
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.codingstatemachine
    functionSourceFile: pip._vendor.chardet.codingstatemachine
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 85
    functionName: pip._vendor.chardet.codingstatemachine.CodingStateMachine.get_coding_state_machine
    functionSourceFile: pip._vendor.chardet.codingstatemachine
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 89
    functionName: pip._vendor.chardet.codingstatemachine.CodingStateMachine.language
    functionSourceFile: pip._vendor.chardet.codingstatemachine
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.codingstatemachinedict
    functionSourceFile: pip._vendor.chardet.codingstatemachinedict
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.utf1632prober
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 71
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.charset_name
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - <builtin>.max
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 93
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 16
    functionsReached:
    - <builtin>.max
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 103
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 16
    functionsReached:
    - <builtin>.max
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 113
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 16
    functionsReached:
    - <builtin>.max
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 123
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 16
    functionsReached:
    - <builtin>.max
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 84
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.language
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 87
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 18
    functionsReached:
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 90
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 18
    functionsReached:
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - quad
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 133
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pair
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 155
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 203
    functionName: pip._vendor.chardet.utf1632prober.UTF1632Prober.state
    functionSourceFile: pip._vendor.chardet.utf1632prober
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - <builtin>.max
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.regexopt
    functionSourceFile: pip._vendor.pygments.regexopt
    functionUses: 0
    functionsReached:
    - re.compile
    - operator.itemgetter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - letters
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 22
    functionName: pip._vendor.pygments.regexopt.make_charset
    functionSourceFile: pip._vendor.pygments.regexopt
    functionUses: 4
    functionsReached:
    - CS_ESCAPE.sub
    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: pip._vendor.pygments.regexopt.make_charset.<lambda1>
    functionSourceFile: pip._vendor.pygments.regexopt
    functionUses: 0
    functionsReached:
    - m.group
    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: CS_ESCAPE.sub
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 3
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - strings
    - open_paren
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 26
    functionName: pip._vendor.pygments.regexopt.regex_opt_inner
    functionSourceFile: pip._vendor.pygments.regexopt
    functionUses: 3
    functionsReached:
    - CS_ESCAPE.sub
    - pip._vendor.pygments.regexopt.regex_opt_inner
    - rest.append
    - <builtin>.len
    - <builtin>.sorted
    - itertools.groupby
    - oneletter.append
    - re.escape
    - pip._vendor.pygments.regexopt.make_charset
    - <builtin>.list
    - os.path.commonprefix
    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: oneletter.append
    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: rest.append
    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: os.path.commonprefix
    functionSourceFile: os
    functionUses: 34
    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: pip._vendor.pygments.regexopt.regex_opt_inner.<lambda1>
    functionSourceFile: pip._vendor.pygments.regexopt
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: -1
    functionName: pip._vendor.rich.padding
    functionSourceFile: pip._vendor.rich.padding
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bool
    - threading.RLock
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - term.rpartition
    - pip._vendor.rich.print
    - os.getenv
    - jupyter_columns.isdigit
    - <builtin>.len
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - write_console.print
    - pip._vendor.rich.get_console
    - pip._vendor.rich.padding.Padding.__init__
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - lines.isdigit
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - renderable
    - level
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 47
    functionName: pip._vendor.rich.padding.Padding.indent
    functionSourceFile: pip._vendor.rich.padding
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.padding.Padding.__init__
    - <builtin>.len
    - pip._vendor.rich.padding.Padding.unpack
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 76
    functionName: pip._vendor.rich.padding.Padding.__repr__
    functionSourceFile: pip._vendor.rich.padding
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 7
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 79
    functionName: pip._vendor.rich.padding.Padding.__rich_console__
    functionSourceFile: pip._vendor.rich.padding
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - options.update_width
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - open_tag.parameters.strip
    - style_definition.split
    - <builtin>.min
    - console.get_style
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - pip._vendor.rich.segment.Segment.line
    - pip._vendor.rich.measure.Measurement.get
    - console.render_lines
    - render_options.update_height
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - <builtin>.type
    - RE_HANDLER.match
    - typing.cast
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: render_options.update_height
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 125
    functionName: pip._vendor.rich.padding.Padding.__rich_measure__
    functionSourceFile: pip._vendor.rich.padding
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - open_tag.parameters.strip
    - style_definition.split
    - <builtin>.min
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - <builtin>.type
    - RE_HANDLER.match
    - typing.cast
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich.measure.Measurement.with_maximum
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - width
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: pip._vendor.rich.measure.Measurement.with_maximum
    functionSourceFile: pip._vendor.rich.measure
    functionUses: 6
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.style
    functionSourceFile: pip._vendor.pygments.style
    functionUses: 0
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 0
    IfCount: 16
    argCount: 4
    argDefaultValues: []
    argNames:
    - mcs
    - name
    - bases
    - dct
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 60
    functionName: pip._vendor.pygments.style.StyleMeta.__new__
    functionSourceFile: pip._vendor.pygments.style
    functionUses: 0
    functionsReached:
    - ttype.split
    - obj.styles.get
    - _styles.get
    - <builtin>.len
    - text.startswith
    - pip._vendor.pygments.style.StyleMeta.__new__.colorformat
    - type.__new__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: pip._vendor.pygments.style.StyleMeta.__new__.colorformat
    functionSourceFile: pip._vendor.pygments.style
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - text.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ttype.split
    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: _styles.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.styles.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - token
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 126
    functionName: pip._vendor.pygments.style.StyleMeta.style_for_token
    functionSourceFile: pip._vendor.pygments.style
    functionUses: 1
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 156
    functionName: pip._vendor.pygments.style.StyleMeta.list_styles
    functionSourceFile: pip._vendor.pygments.style
    functionUses: 0
    functionsReached:
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - ttype
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 159
    functionName: pip._vendor.pygments.style.StyleMeta.styles_token
    functionSourceFile: pip._vendor.pygments.style
    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:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 162
    functionName: pip._vendor.pygments.style.StyleMeta.__iter__
    functionSourceFile: pip._vendor.pygments.style
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - pip._vendor.pygments.style.StyleMeta.style_for_token
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 166
    functionName: pip._vendor.pygments.style.StyleMeta.__len__
    functionSourceFile: pip._vendor.pygments.style
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 8
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.repr
    functionSourceFile: pip._vendor.rich.repr
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.align.Align.__init__
    - pip._vendor.rich.console.Console.rule
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - typing.TypeVar
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - word_match.group
    - variants.get
    - typing.overload
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - itertools.zip_longest
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.rule.Rule.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd6eb0>
    argNames:
    - cls
    - angular
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 37
    functionName: pip._vendor.rich.repr.auto
    functionSourceFile: pip._vendor.rich.repr
    functionUses: 1
    functionsReached:
    - functools.partial
    - pip._vendor.rich.repr.auto.do_replace
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd6e80>
    argNames:
    - cls
    - angular
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: pip._vendor.rich.repr.auto.do_replace
    functionSourceFile: pip._vendor.rich.repr
    functionUses: 2
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: pip._vendor.rich.repr.auto.do_replace.auto_repr
    functionSourceFile: pip._vendor.rich.repr
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.getattr
    - <builtin>.isinstance
    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: 1
    functionLinenumber: 68
    functionName: pip._vendor.rich.repr.auto.do_replace.auto_rich_repr
    functionSourceFile: pip._vendor.rich.repr
    functionUses: 0
    functionsReached:
    - signature.parameters.items
    - inspect.signature
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - ReprError
    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: signature.parameters.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f20a1f40>
    argNames:
    - cls
    - angular
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 114
    functionName: pip._vendor.rich.repr.rich_repr
    functionSourceFile: pip._vendor.rich.repr
    functionUses: 0
    functionsReached:
    - functools.partial
    - pip._vendor.rich.repr.auto.do_replace
    - <builtin>.hasattr
    - pip._vendor.rich.repr.auto
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 127
    functionName: pip._vendor.rich.repr.Foo.__rich_repr__
    functionSourceFile: pip._vendor.rich.repr
    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: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.panel
    functionSourceFile: pip._vendor.rich.panel
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - dataclasses.is_dataclass
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - columns.isdigit
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - pip._vendor.rich.segment.Segment.apply_style
    - os.getenv
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 12
    argDefaultValues:
    - <ast.Name object at 0x7f30d8c01610>
    argNames:
    - cls
    - renderable
    - box
    - title
    - title_align
    - subtitle
    - subtitle_align
    - safe_box
    - style
    - border_style
    - width
    - padding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 72
    functionName: pip._vendor.rich.panel.Panel.fit
    functionSourceFile: pip._vendor.rich.panel
    functionUses: 16
    functionsReached:
    - pip._vendor.rich.panel.Panel.__init__
    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: 7
    functionLinenumber: 104
    functionName: pip._vendor.rich.panel.Panel._title
    functionSourceFile: pip._vendor.rich.panel
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - title_text.plain.replace
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - title_text.expand_tabs
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - title_text.pad
    - RE_HANDLER.match
    - abc.ABC.copy
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.ABC.copy
    functionSourceFile: abc
    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: title_text.plain.replace
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: title_text.expand_tabs
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: title_text.pad
    functionSourceFile: <builtin>
    functionUses: 1
    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: 7
    functionLinenumber: 120
    functionName: pip._vendor.rich.panel.Panel._subtitle
    functionSourceFile: pip._vendor.rich.panel
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - subtitle_text.plain.replace
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - subtitle_text.pad
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - match.span
    - subtitle_text.expand_tabs
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subtitle_text.plain.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subtitle_text.expand_tabs
    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: subtitle_text.pad
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 16
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 135
    functionName: pip._vendor.rich.panel.Panel.__rich_console__
    functionSourceFile: pip._vendor.rich.panel
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.text.Text.assemble
    - <builtin>.isinstance
    - options.update_width
    - <builtin>.sum
    - pip._vendor.rich.cells.cached_cell_len
    - child_options.update_width
    - <builtin>.min
    - console.get_style
    - pip._vendor.rich.panel.Panel.__rich_console__.align_text
    - pip._vendor.rich.segment.Segment.line
    - <builtin>.any
    - console.render_lines
    - console.render
    - typing.NamedTuple.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - options.update
    - box.get_bottom
    - typing.cast
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    - pip._vendor.rich.padding.Padding.__init__
    - console.measure
    - text.apply_meta
    - pip._vendor.rich.cells.cell_len
    - box.get_top
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 5
    argDefaultValues: []
    argNames:
    - text
    - width
    - align
    - character
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 153
    functionName: pip._vendor.rich.panel.Panel.__rich_console__.align_text
    functionSourceFile: pip._vendor.rich.panel
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.text.Text.assemble
    - <builtin>.isinstance
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - text.apply_meta
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: box.get_top
    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: child_options.update_width
    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: box.get_bottom
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 268
    functionName: pip._vendor.rich.panel.Panel.__rich_measure__
    functionSourceFile: pip._vendor.rich.panel
    functionUses: 0
    functionsReached:
    - operator.itemgetter
    - <builtin>.isinstance
    - options.update_width
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - <builtin>.set
    - inspect.isclass
    - variants.get
    - open_tag.parameters.strip
    - style_definition.split
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - pip._vendor.rich.padding.Padding.unpack
    - <builtin>.type
    - typing.cast
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - pip._vendor.rich.measure.measure_renderables
    - <builtin>.int
    - color_rgb.split
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich._emoji_replace
    functionSourceFile: pip._vendor.rich._emoji_replace
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: variants.get
    functionSourceFile: <builtin>
    functionUses: 175
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - match
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: pip._vendor.rich._emoji_replace._emoji_replace.do_replace
    functionSourceFile: pip._vendor.rich._emoji_replace
    functionUses: 0
    functionsReached:
    - match.groups
    - emoji_name.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: match.groups
    functionSourceFile: <builtin>
    functionUses: 290
    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: emoji_name.lower
    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: pip._vendor.rich._emoji_codes
    functionSourceFile: pip._vendor.rich._emoji_codes
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.ansi
    functionSourceFile: pip._vendor.rich.ansi
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.save_html
    - operator.attrgetter
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - html.escape
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - render_code_format.format
    - <builtin>.tuple
    - itertools.filterfalse
    - terminal_text.splitlines
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - pip._vendor.rich.text.Text.divide
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.ansi.AnsiDecoder.decode_line
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - write_file.write
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - osc.startswith
    - pip._vendor.rich.protocol.rich_cast
    - <builtin>.filter
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.console.Console.export_html
    - pip._vendor.rich.text.Text.join
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - columns.isdigit
    - re_word.match
    - sgr.endswith
    - <builtin>.hasattr
    - pip._vendor.rich.style.Style.update_link
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - sgr.split
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.ansi.AnsiDecoder.decode
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - pip._vendor.rich.color.Color.from_ansi
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - style.get_html_style
    - tokens.append
    - abc.ABC.background_color.lower
    - styles.setdefault
    - pip._vendor.rich.color.Color.from_triplet
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - _code.isdigit
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.ansi._ansi_tokenize
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - pip._vendor.rich.color.Color.from_rgb
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.style.Style.from_color
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - pty.spawn
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - styles.items
    - new_segments.insert
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.control.Control.move_to
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.open
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - contextlib.suppress
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - re_ansi.finditer
    - operator.itemgetter
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - re.compile
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - word_match.group
    - variants.get
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - stdout.getvalue
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - line.rsplit
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.segment.Segment.filter_control
    - open_tag.name.startswith
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - cls.__new__
    - RE_HANDLER.match
    - pip._vendor.rich.ansi.AnsiDecoder.__init__
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - <builtin>.print
    - pip._vendor.rich.segment.Segment.simplify
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - rich_visited_set.add
    - io.BytesIO
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - ansi_text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 27
    functionName: pip._vendor.rich.ansi._ansi_tokenize
    functionSourceFile: pip._vendor.rich.ansi
    functionUses: 6
    functionsReached:
    - re_ansi.finditer
    - typing.NamedTuple.__init__
    - <builtin>.len
    - match.groups
    - sgr.endswith
    - match.span
    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_ansi.finditer
    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: sgr.endswith
    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: terminal_text.splitlines
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 2
    IfCount: 13
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - line
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 137
    functionName: pip._vendor.rich.ansi.AnsiDecoder.decode_line
    functionSourceFile: pip._vendor.rich.ansi
    functionUses: 5
    functionsReached:
    - re_ansi.finditer
    - <builtin>.isinstance
    - sgr.split
    - original_word.lower
    - <builtin>.sum
    - pip._vendor.rich.ansi._ansi_tokenize
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - pip._vendor.rich.color.Color.from_rgb
    - match.groups
    - pip._vendor.rich.color.Color.from_ansi
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.style.Style.from_color
    - style_definition.split
    - <builtin>.min
    - color_match.groups
    - style_definition.strip
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.color.Color.from_triplet
    - line.rsplit
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - _code.isdigit
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - <builtin>.next
    - cls.__new__
    - match.span
    - <builtin>.int
    - osc.startswith
    - pip._vendor.rich.style.Style.update_link
    - RE_COLOR.match
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - contextlib.suppress
    - sgr.endswith
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.rsplit
    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: osc.startswith
    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: sgr.split
    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: _code.isdigit
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fd
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 223
    functionName: pip._vendor.rich.ansi.read
    functionSourceFile: pip._vendor.rich.ansi
    functionUses: 0
    functionsReached:
    - os.read
    - stdout.write
    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.read
    functionSourceFile: os
    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: stdout.write
    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: pty.spawn
    functionSourceFile: pty
    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: stdout.getvalue
    functionSourceFile: <builtin>
    functionUses: 4
    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: 8
    functionLinenumber: -1
    functionName: pip._vendor.rich.markup
    functionSourceFile: pip._vendor.rich.markup
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bool
    - threading.RLock
    - column._cells.append
    - re.compile
    - threading.local.__init__
    - <builtin>.str
    - pip._vendor.rich._log_render.LogRender.__init__
    - <builtin>.enumerate
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - term.rpartition
    - pip._vendor.rich.print
    - <builtin>.list
    - os.getenv
    - jupyter_columns.isdigit
    - pip._vendor.rich.protocol.is_renderable
    - <builtin>.len
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - write_console.print
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.table.Table.add_row.add_cell
    - lines.isdigit
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 28
    functionName: pip._vendor.rich.markup.Tag.__str__
    functionSourceFile: pip._vendor.rich.markup
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 34
    functionName: pip._vendor.rich.markup.Tag.markup
    functionSourceFile: pip._vendor.rich.markup
    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:
    - match
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 61
    functionName: pip._vendor.rich.markup.escape.escape_backslashes
    functionSourceFile: pip._vendor.rich.markup
    functionUses: 0
    functionsReached:
    - match.groups
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - markup
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 70
    functionName: pip._vendor.rich.markup._parse
    functionSourceFile: pip._vendor.rich.markup
    functionUses: 173
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - RE_TAGS.finditer
    - tag_text.partition
    - match.groups
    - match.span
    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_TAGS.finditer
    functionSourceFile: <builtin>
    functionUses: 174
    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: tag_text.partition
    functionSourceFile: <builtin>
    functionUses: 174
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - style_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 140
    functionName: pip._vendor.rich.markup.render.pop_style
    functionSourceFile: pip._vendor.rich.markup
    functionUses: 173
    functionsReached:
    - <builtin>.reversed
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised:
    - KeyError
    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: plain_text.replace
    functionSourceFile: <builtin>
    functionUses: 173
    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: tag.name.startswith
    functionSourceFile: <builtin>
    functionUses: 173
    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: open_tag.name.startswith
    functionSourceFile: <builtin>
    functionUses: 173
    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: open_tag.parameters.strip
    functionSourceFile: <builtin>
    functionUses: 173
    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_HANDLER.match
    functionSourceFile: <builtin>
    functionUses: 173
    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: handler_match.groups
    functionSourceFile: <builtin>
    functionUses: 173
    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: ast.literal_eval
    functionSourceFile: ast
    functionUses: 173
    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: style_stack.append
    functionSourceFile: <builtin>
    functionUses: 173
    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: style_stack.pop
    functionSourceFile: <builtin>
    functionUses: 173
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 19
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: -1
    functionName: pip._vendor.rich.table
    functionSourceFile: pip._vendor.rich.table
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - threading.RLock
    - operator.attrgetter
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - pip._vendor.rich.console.Console.rule
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.padding.Padding.unpack
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - time.time
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - line.pad_right
    - pip._vendor.rich.table.Table.add_row.add_cell
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.table.header
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - column._cells.append
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - pip._vendor.rich._timer.timer
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - word_match.group
    - style_definition.split
    - variants.get
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - pip._vendor.rich.protocol.is_renderable
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - <builtin>.print
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.rule.Rule.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.table.Column
    functionSourceFile: pip._vendor.rich.table
    functionUses: 0
    functionsReached:
    - dataclasses.field
    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: 114
    functionName: pip._vendor.rich.table.Column.copy
    functionSourceFile: pip._vendor.rich.table
    functionUses: 0
    functionsReached:
    - dataclasses.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dataclasses.replace
    functionSourceFile: dataclasses
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 119
    functionName: pip._vendor.rich.table.Column.cells
    functionSourceFile: pip._vendor.rich.table
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 124
    functionName: pip._vendor.rich.table.Column.flexible
    functionSourceFile: pip._vendor.rich.table
    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
    - expand
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 290
    functionName: pip._vendor.rich.table.Table.expand
    functionSourceFile: pip._vendor.rich.table
    functionUses: 0
    functionsReached: []
    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: 1
    functionLinenumber: 295
    functionName: pip._vendor.rich.table.Table._extra_width
    functionSourceFile: pip._vendor.rich.table
    functionUses: 0
    functionsReached:
    - <builtin>.len
    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: 305
    functionName: pip._vendor.rich.table.Table.row_count
    functionSourceFile: pip._vendor.rich.table
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - index
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 309
    functionName: pip._vendor.rich.table.Table.get_row_style
    functionSourceFile: pip._vendor.rich.table
    functionUses: 2
    functionsReached:
    - console.get_style
    - <builtin>.len
    - pip._vendor.rich.style.Style.null
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 319
    functionName: pip._vendor.rich.table.Table.__rich_measure__
    functionSourceFile: pip._vendor.rich.table
    functionUses: 0
    functionsReached:
    - options.update_width
    - <builtin>.sum
    - operator.attrgetter
    - pip._vendor.rich.table.Table._get_cells
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - <builtin>.str
    - pip._vendor.rich.measure.Measurement.with_minimum
    - highlight_text.copy_styles
    - <builtin>.hash
    - pip._vendor.rich._loop.loop_first_last
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - <builtin>.zip
    - pip._vendor.rich.table.Table._get_cells.get_padding
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.padding.Padding.unpack
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.hasattr
    - render_width.normalize
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - <builtin>.min
    - pip._vendor.rich.measure.Measurement.clamp
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - <builtin>.round
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich._ratio.ratio_distribute
    - match.span
    - RE_COLOR.match
    - pip._vendor.rich.table.Table._get_padding_width
    - <builtin>.max
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.table.Table._calculate_column_widths
    - pip._vendor.rich._ratio.ratio_reduce
    - ANSI_COLOR_NAMES.get
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.any
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - pip._vendor.rich.table.Table._collapse_widths
    - <builtin>.int
    - style_stack.append
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - <builtin>.type
    - math.ceil
    - plain_text.replace
    - pip._vendor.rich.table.Table._measure_column
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.set
    - inspect.isclass
    - style_definition.split
    - variants.get
    - style_definition.strip
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - _padding_cache.get
    - <builtin>.reversed
    - pip._vendor.rich.padding.Padding.__init__
    - pip._vendor.rich.measure.Measurement.with_maximum
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 519
    functionName: pip._vendor.rich.table.Table._calculate_column_widths
    functionSourceFile: pip._vendor.rich.table
    functionUses: 2
    functionsReached:
    - options.update_width
    - <builtin>.sum
    - operator.attrgetter
    - pip._vendor.rich.table.Table._get_cells
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - <builtin>.str
    - pip._vendor.rich.measure.Measurement.with_minimum
    - highlight_text.copy_styles
    - <builtin>.hash
    - pip._vendor.rich._loop.loop_first_last
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - <builtin>.zip
    - pip._vendor.rich.table.Table._get_cells.get_padding
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.hasattr
    - render_width.normalize
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - <builtin>.min
    - pip._vendor.rich.measure.Measurement.clamp
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - <builtin>.round
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich._ratio.ratio_distribute
    - match.span
    - RE_COLOR.match
    - pip._vendor.rich.table.Table._get_padding_width
    - <builtin>.max
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich._ratio.ratio_reduce
    - ANSI_COLOR_NAMES.get
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.any
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - pip._vendor.rich.table.Table._collapse_widths
    - <builtin>.int
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - <builtin>.type
    - math.ceil
    - plain_text.replace
    - pip._vendor.rich.table.Table._measure_column
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - style_definition.split
    - style_definition.strip
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - _padding_cache.get
    - <builtin>.reversed
    - pip._vendor.rich.padding.Padding.__init__
    - pip._vendor.rich.measure.Measurement.with_maximum
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    - column
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 703
    functionName: pip._vendor.rich.table.Table._measure_column
    functionSourceFile: pip._vendor.rich.table
    functionUses: 3
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._vendor.rich.table.Table._get_cells
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - <builtin>.str
    - pip._vendor.rich.measure.Measurement.with_minimum
    - <builtin>.hash
    - highlight_text.copy_styles
    - pip._vendor.rich._loop.loop_first_last
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.table.Table._get_cells.get_padding
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.repr
    - <builtin>.hasattr
    - render_width.normalize
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - <builtin>.min
    - pip._vendor.rich.measure.Measurement.clamp
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - pip._vendor.rich.table.Table._get_padding_width
    - <builtin>.max
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - ANSI_COLOR_NAMES.get
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.any
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.int
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - <builtin>.type
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.set
    - inspect.isclass
    - variants.get
    - style_definition.split
    - style_definition.strip
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - _padding_cache.get
    - <builtin>.reversed
    - pip._vendor.rich.padding.Padding.__init__
    - pip._vendor.rich.measure.Measurement.with_maximum
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30c8d15f10>
    - <ast.Constant object at 0x7f30c8d150a0>
    argNames:
    - self
    - min_width
    - max_width
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 59
    functionName: pip._vendor.rich.measure.Measurement.clamp
    functionSourceFile: pip._vendor.rich.measure
    functionUses: 4
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.measure.Measurement.with_minimum
    - pip._vendor.rich.measure.Measurement.with_maximum
    - <builtin>.min
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - padding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 358
    functionName: pip._vendor.rich.table.Table.padding
    functionSourceFile: pip._vendor.rich.table
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - typing.cast
    - <builtin>.isinstance
    - pip._vendor.rich.padding.Padding.unpack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - column
    - renderable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 436
    functionName: pip._vendor.rich.table.Table.add_row.add_cell
    functionSourceFile: pip._vendor.rich.table
    functionUses: 14
    functionsReached:
    - column._cells.append
    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: column._cells.append
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - check_object
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 10
    functionName: pip._vendor.rich.protocol.is_renderable
    functionSourceFile: pip._vendor.rich.protocol
    functionUses: 33
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.hasattr
    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: 0
    functionLinenumber: 465
    functionName: pip._vendor.rich.table.Table.add_section
    functionSourceFile: pip._vendor.rich.table
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 471
    functionName: pip._vendor.rich.table.Table.__rich_console__
    functionSourceFile: pip._vendor.rich.table
    functionUses: 0
    functionsReached:
    - options.update_width
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - pip._vendor.rich.table.Table._get_cells
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - shaped_lines.extend
    - match.groups
    - <builtin>.str
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.measure.Measurement.with_minimum
    - <builtin>.hash
    - highlight_text.copy_styles
    - pip._vendor.rich._loop.loop_first_last
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - options.update
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.table.Table._get_cells.get_padding
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.padding.Padding.unpack
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.hasattr
    - _box.get_row
    - render_width.normalize
    - tag.name.startswith
    - RE_TAGS.finditer
    - pip._vendor.rich.segment.Segment.align_bottom
    - marshal.dumps
    - cells.append
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - <builtin>.min
    - pip._vendor.rich.measure.Measurement.clamp
    - abc.ABC.background_color.lower
    - console.render_lines
    - ast.literal_eval
    - pip._vendor.rich.table.Table.__rich_console__.render_annotation
    - pip._vendor.rich.style.Style.parse
    - <builtin>.round
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich._ratio.ratio_distribute
    - match.span
    - render_options.update
    - RE_COLOR.match
    - pip._vendor.rich.table.Table._get_padding_width
    - <builtin>.max
    - <builtin>.range
    - <builtin>.isinstance
    - pip._vendor.rich.table.Table._render
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.table.Table._calculate_column_widths
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich._ratio.ratio_reduce
    - ANSI_COLOR_NAMES.get
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.list
    - pip._vendor.rich.segment.Segment.line
    - console.render
    - <builtin>.any
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - _box.get_plain_headed_box
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.style.Style.pick_first
    - typing.cast
    - <builtin>.ord
    - pip._vendor.rich.table.Table._collapse_widths
    - <builtin>.int
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - _box.get_bottom
    - color_rgb.split
    - <builtin>.type
    - pip._vendor.rich.segment.Segment.align_top
    - math.ceil
    - pip._vendor.rich.segment.Segment.align_middle
    - plain_text.replace
    - pip._vendor.rich.table.Table._measure_column
    - style.strip
    - _divider.text.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.set
    - inspect.isclass
    - style_definition.split
    - variants.get
    - console.get_style
    - console.render_str
    - style_definition.strip
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - random.randint
    - pip._vendor.rich.table.Table.get_row_style
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - pip._vendor.rich.segment.Segment.set_shape
    - RE_HANDLER.match
    - _padding_cache.get
    - <builtin>.reversed
    - pip._vendor.rich.padding.Padding.__init__
    - _box.get_top
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.measure.Measurement.with_maximum
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.table.Table._render.align_cell
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd2d0280>
    argNames:
    - text
    - style
    - justify
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 493
    functionName: pip._vendor.rich.table.Table.__rich_console__.render_annotation
    functionSourceFile: pip._vendor.rich.table
    functionUses: 1
    functionsReached:
    - console.render_str
    - console.render
    - <builtin>.isinstance
    - render_options.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 19
    IfCount: 13
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    - widths
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 743
    functionName: pip._vendor.rich.table.Table._render
    functionSourceFile: pip._vendor.rich.table
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.segment.Segment.align_top
    - <builtin>.isinstance
    - _box.get_row
    - <builtin>.bool
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.table.Table._get_cells
    - pip._vendor.rich.segment.Segment.align_middle
    - pip._vendor.rich.segment.Segment.align_bottom
    - pip._vendor.rich.style.Style.null
    - shaped_lines.extend
    - cells.append
    - _divider.text.strip
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - <builtin>.enumerate
    - console.get_style
    - <builtin>.list
    - pip._vendor.rich.segment.Segment.line
    - pip._vendor.rich._loop.loop_first_last
    - console.render_lines
    - <builtin>.any
    - typing.NamedTuple.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - pip._vendor.rich.table.Table.get_row_style
    - _box.get_plain_headed_box
    - options.update
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.cells.set_cell_size
    - <builtin>.iter
    - <builtin>.zip
    - <builtin>.next
    - pip._vendor.rich.segment.Segment.set_shape
    - typing.cast
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    - _padding_cache.get
    - pip._vendor.rich.table.Table._get_cells.get_padding
    - pip._vendor.rich.padding.Padding.__init__
    - _box.get_top
    - pip._vendor.rich.cells.cell_len
    - <builtin>.getattr
    - _box.get_bottom
    - pip._vendor.rich.padding.Padding.unpack
    - <builtin>.max
    - pip._vendor.rich.table.Table._render.align_cell
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - column_index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 695
    functionName: pip._vendor.rich.table.Table._get_padding_width
    functionSourceFile: pip._vendor.rich.table
    functionUses: 4
    functionsReached:
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca81dfa0>
    argNames:
    - total
    - ratios
    - minimums
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 113
    functionName: pip._vendor.rich._ratio.ratio_distribute
    functionSourceFile: pip._vendor.rich._ratio
    functionUses: 3
    functionsReached:
    - math.ceil
    - <builtin>.sum
    - <builtin>.len
    - <builtin>.zip
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - widths
    - wrapable
    - max_width
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 584
    functionName: pip._vendor.rich.table.Table._collapse_widths
    functionSourceFile: pip._vendor.rich.table
    functionUses: 3
    functionsReached:
    - <builtin>.any
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich._ratio.ratio_reduce
    - <builtin>.round
    - <builtin>.zip
    - <builtin>.min
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - total
    - ratios
    - maximums
    - values
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 81
    functionName: pip._vendor.rich._ratio.ratio_reduce
    functionSourceFile: pip._vendor.rich._ratio
    functionUses: 4
    functionsReached:
    - <builtin>.round
    - <builtin>.sum
    - <builtin>.zip
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - console
    - column_index
    - column
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 622
    functionName: pip._vendor.rich.table.Table._get_cells
    functionSourceFile: pip._vendor.rich.table
    functionUses: 5
    functionsReached:
    - _padding_cache.get
    - pip._vendor.rich._loop.loop_first_last
    - pip._vendor.rich.table.Table._get_cells.get_padding
    - <builtin>.any
    - pip._vendor.rich.padding.Padding.__init__
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.iter
    - <builtin>.getattr
    - pip._vendor.rich.padding.Padding.unpack
    - <builtin>.next
    - <builtin>.max
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 0
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - first_row
    - last_row
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 637
    functionName: pip._vendor.rich.table.Table._get_cells.get_padding
    functionSourceFile: pip._vendor.rich.table
    functionUses: 6
    functionsReached:
    - _padding_cache.get
    - <builtin>.max
    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: _padding_cache.get
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - values
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._vendor.rich._loop.loop_first_last
    functionSourceFile: pip._vendor.rich._loop
    functionUses: 6
    functionsReached:
    - <builtin>.next
    - <builtin>.iter
    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: _box.get_plain_headed_box
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _box.get_top
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cells.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - cell
    - vertical
    - width
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 834
    functionName: pip._vendor.rich.table.Table._render.align_cell
    functionSourceFile: pip._vendor.rich.table
    functionUses: 2
    functionsReached:
    - pip._vendor.rich.segment.Segment.align_top
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.segment.Segment.align_middle
    - pip._vendor.rich.segment.Segment.align_bottom
    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: _box.get_row
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _divider.text.strip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _box.get_bottom
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2112820>
    argNames:
    - subject
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 13
    functionName: pip._vendor.rich._timer.timer
    functionSourceFile: pip._vendor.rich._timer
    functionUses: 1
    functionsReached:
    - time.time
    - <builtin>.print
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 963
    functionName: pip._vendor.rich.table.header
    functionSourceFile: pip._vendor.rich.table
    functionUses: 1
    functionsReached:
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - pip._vendor.rich.console.Console.rule
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - <builtin>.range
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - word.get_style_at_offset
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.rule.Rule.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 8
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.box
    functionSourceFile: pip._vendor.rich.box
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - threading.RLock
    - operator.attrgetter
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - pip._vendor.rich.columns.Columns.__init__
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - pip._vendor.rich.table.Table.add_row.add_cell
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - box.splitlines
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - column._cells.append
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - pip._vendor.rich.box.Box.__init__
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - word_match.group
    - style_definition.split
    - variants.get
    - pip._vendor.rich.columns.Columns.add_renderable
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - pip._vendor.rich.protocol.is_renderable
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - box
    - ascii
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 33
    functionName: pip._vendor.rich.box.Box.__init__
    functionSourceFile: pip._vendor.rich.box
    functionUses: 1
    functionsReached:
    - box.splitlines
    - <builtin>.iter
    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: box.splitlines
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 67
    functionName: pip._vendor.rich.box.Box.__repr__
    functionSourceFile: pip._vendor.rich.box
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 70
    functionName: pip._vendor.rich.box.Box.__str__
    functionSourceFile: pip._vendor.rich.box
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e0ce3a60>
    argNames:
    - self
    - options
    - safe
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 73
    functionName: pip._vendor.rich.box.Box.substitute
    functionSourceFile: pip._vendor.rich.box
    functionUses: 0
    functionsReached:
    - LEGACY_WINDOWS_SUBSTITUTIONS.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: LEGACY_WINDOWS_SUBSTITUTIONS.get
    functionSourceFile: <builtin>
    functionUses: 1
    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: 91
    functionName: pip._vendor.rich.box.Box.get_plain_headed_box
    functionSourceFile: pip._vendor.rich.box
    functionUses: 0
    functionsReached:
    - PLAIN_HEADED_SUBSTITUTIONS.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: PLAIN_HEADED_SUBSTITUTIONS.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - widths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 101
    functionName: pip._vendor.rich.box.Box.get_top
    functionSourceFile: pip._vendor.rich.box
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 5
    IfCount: 7
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd63d0>
    - <ast.Constant object at 0x7f30f6bd65b0>
    argNames:
    - self
    - widths
    - level
    - edge
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 121
    functionName: pip._vendor.rich.box.Box.get_row
    functionSourceFile: pip._vendor.rich.box
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - widths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 170
    functionName: pip._vendor.rich.box.Box.get_bottom
    functionSourceFile: pip._vendor.rich.box
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    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: pip._vendor.rich._loop
    functionSourceFile: pip._vendor.rich._loop
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.rich._ratio
    functionSourceFile: pip._vendor.rich._ratio
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - <builtin>.enumerate
    - <builtin>.print
    - <builtin>.zip
    - pip._vendor.rich._ratio.ratio_resolve
    - typing.cast
    - fractions.Fraction
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - total
    - edges
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 20
    functionName: pip._vendor.rich._ratio.ratio_resolve
    functionSourceFile: pip._vendor.rich._ratio
    functionUses: 3
    functionsReached:
    - <builtin>.sum
    - <builtin>.enumerate
    - <builtin>.zip
    - typing.cast
    - fractions.Fraction
    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: fractions.Fraction
    functionSourceFile: fractions
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich._timer
    functionSourceFile: pip._vendor.rich._timer
    functionUses: 0
    functionsReached:
    - contextlib.contextmanager
    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: contextlib.contextmanager
    functionSourceFile: ''
    functionUses: 25
    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: pip._vendor.rich._pick
    functionSourceFile: pip._vendor.rich._pick
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.control
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - dataclasses.is_dataclass
    - operator.attrgetter
    - threading.RLock
    - handler_match.groups
    - pip._vendor.rich.console.Console.set_window_title
    - pip._vendor.rich.style.Style.null
    - time.sleep
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - line.pad_right
    - pip._vendor.rich.console.Console.control
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - <builtin>.range
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - pip._vendor.rich.control.Control.title
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - threading.local.__init__
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - pip._vendor.rich.segment.Segment.apply_style
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - <builtin>.next
    - pip._vendor.rich.console.Console._detect_color_system
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda1>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda2>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda3>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda4>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda5>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda6>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda7>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda8>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda9>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda10>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda11>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda12>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda13>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda14>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda15>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.control.<dict2>.<lambda16>
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - codes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    functionName: pip._vendor.rich.control.Control.__init__
    functionSourceFile: pip._vendor.rich.control
    functionUses: 106
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bc61c0>
    - <ast.Constant object at 0x7f30f6bc6700>
    argNames:
    - cls
    - x
    - y
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 85
    functionName: pip._vendor.rich.control.Control.move
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.move.get_codes
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.abs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 97
    functionName: pip._vendor.rich.control.Control.move.get_codes
    functionSourceFile: pip._vendor.rich.control
    functionUses: 1
    functionsReached:
    - <builtin>.abs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bcbaf0>
    argNames:
    - cls
    - x
    - y
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 114
    functionName: pip._vendor.rich.control.Control.move_to_column
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.isinstance
    - <builtin>.abs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 177
    functionName: pip._vendor.rich.control.Control.__str__
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 180
    functionName: pip._vendor.rich.control.Control.__rich_console__
    functionSourceFile: pip._vendor.rich.control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30e0ce3a60>
    argNames:
    - text
    - _translate_table
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 201
    functionName: pip._vendor.rich.control.escape_control_codes
    functionSourceFile: pip._vendor.rich.control
    functionUses: 3
    functionsReached:
    - inspect.getdoc.translate
    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: inspect.getdoc.translate
    functionSourceFile: inspect
    functionUses: 4
    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: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich._wrap
    functionSourceFile: pip._vendor.rich._wrap
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - dataclasses.is_dataclass
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.range
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - word.get_style_at_offset
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - re.compile
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - pip._vendor.rich.segment.Segment.apply_style
    - os.getenv
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - <builtin>.print
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 10
    functionName: pip._vendor.rich._wrap.words
    functionSourceFile: pip._vendor.rich._wrap
    functionUses: 58
    functionsReached:
    - word_match.group
    - word_match.span
    - re_word.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re_word.match
    functionSourceFile: <builtin>
    functionUses: 59
    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: word_match.span
    functionSourceFile: <builtin>
    functionUses: 59
    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: word_match.group
    functionSourceFile: <builtin>
    functionUses: 59
    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: word.rstrip
    functionSourceFile: <builtin>
    functionUses: 58
    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: pip._vendor.rich.measure
    functionSourceFile: pip._vendor.rich.measure
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 20
    functionName: pip._vendor.rich.measure.Measurement.span
    functionSourceFile: pip._vendor.rich.measure
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: pip._vendor.rich.measure.Measurement.normalize
    functionSourceFile: pip._vendor.rich.measure
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.max
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - width
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: pip._vendor.rich.measure.Measurement.with_minimum
    functionSourceFile: pip._vendor.rich.measure
    functionUses: 5
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.max
    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: render_width.normalize
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.protocol
    functionSourceFile: pip._vendor.rich.protocol
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rich_visited_set.add
    functionSourceFile: <builtin>
    functionUses: 76
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 12
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: -1
    functionName: pip._vendor.rich.status
    functionSourceFile: pip._vendor.rich.status
    functionUses: 0
    functionsReached:
    - filename.rpartition
    - key.startswith
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - threading.RLock
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - time.sleep
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.console.Console.log
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - locals.items
    - scope.items
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - text.apply_meta
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.text.Text.join
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - columns.isdigit
    - re_word.match
    - pip._vendor.rich.table.Table.grid
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - pip._vendor.rich.status.Status.__init__
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - pip._vendor.rich.live.Live.__init__
    - table.add_row
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.progress.Progress.get_renderables
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.scope.render_scope
    - pip._vendor.rich.theme.ThemeStack.__init__
    - items_table.add_column
    - os.path.abspath
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - lines.isdigit
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.console.Console._caller_frame_info
    - original_word.lower
    - pip._vendor.rich.console.Console.status
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._vendor.rich.live.Live.get_renderable
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - pip._vendor.rich.console.Group.__init__
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.spinner.Spinner.__init__
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - pip._vendor.rich.panel.Panel.fit
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.Control.move_to
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - pip._vendor.rich.text.Text.assemble
    - operator.itemgetter
    - items_table.add_row
    - renderables.append
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.progress.Progress.get_renderable
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - word_match.group
    - variants.get
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - open_tag.name.startswith
    - typing.cast.__rich_console__
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - inspect.stack
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - filename.startswith
    - tag_text.partition
    - <builtin>.next
    - pip._vendor.rich.console.Console._detect_color_system
    - pip._vendor.rich._win32_console.GetConsoleMode
    - RE_HANDLER.match
    - column.format
    - <builtin>.reversed
    - _column.get_table_column
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.live_render.LiveRender.__init__
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - get_console
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca81d730>
    argNames:
    - self
    - name
    - text
    - style
    - speed
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 26
    functionName: pip._vendor.rich.spinner.Spinner.__init__
    functionSourceFile: pip._vendor.rich.spinner
    functionUses: 9
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - typing.cast
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7f30e0ce3670>
    argNames:
    - self
    - renderable
    - console
    - screen
    - auto_refresh
    - refresh_per_second
    - transient
    - redirect_stdout
    - redirect_stderr
    - vertical_overflow
    - get_renderable
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 51
    functionName: pip._vendor.rich.live.Live.__init__
    functionSourceFile: pip._vendor.rich.live
    functionUses: 11
    functionsReached:
    - <builtin>.isinstance
    - threading.RLock
    - pip._vendor.rich.live.Live.get_renderable
    - pip._vendor.rich.console.Group.__init__
    - pip._vendor.rich.progress.Progress.get_renderable
    - table.add_row
    - pip._vendor.rich.table.Table.add_column
    - <builtin>.list
    - <builtin>.len
    - pip._vendor.rich.progress.Progress.get_renderables
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - typing.cast
    - column.format
    - _column.get_table_column
    - pip._vendor.rich.live_render.LiveRender.__init__
    - get_console
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.table.Table.grid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 45
    functionName: pip._vendor.rich.status.Status.renderable
    functionSourceFile: pip._vendor.rich.status
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 49
    functionName: pip._vendor.rich.status.Status.console
    functionSourceFile: pip._vendor.rich.status
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2114e20>
    argNames:
    - self
    - status
    - spinner
    - spinner_style
    - speed
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 53
    functionName: pip._vendor.rich.status.Status.update
    functionSourceFile: pip._vendor.rich.status
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.spinner.Spinner.__init__
    - ipywidgets.Output
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - typing.cast
    - RE_HANDLER.match
    - pip._vendor.rich.spinner.Spinner.update
    - pip._vendor.rich.live.Live.update
    - match.span
    - <builtin>.reversed
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.int
    - IPython.display.display
    - warnings.warn
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - pip._vendor.rich.control.Control.__init__
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - renderable
    - refresh
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 206
    functionName: pip._vendor.rich.live.Live.update
    functionSourceFile: pip._vendor.rich.live
    functionUses: 1
    functionsReached:
    - ipywidgets.Output
    - <builtin>.isinstance
    - pip._vendor.rich.live.Live.refresh
    - typing.NamedTuple.__init__
    - ipywidgets.Output.clear_output
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - text
    - style
    - speed
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 94
    functionName: pip._vendor.rich.spinner.Spinner.update
    functionSourceFile: pip._vendor.rich.spinner
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 85
    functionName: pip._vendor.rich.status.Status.start
    functionSourceFile: pip._vendor.rich.status
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.live.Live.stop
    - <builtin>.isinstance
    - pip._vendor.rich.file_proxy.FileProxy.__init__
    - pip._vendor.rich.live.Live.start
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.live.Live._enable_redirect_io
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.live._RefreshThread.__init__
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    - ipywidgets.Output
    - <builtin>.super
    - typing.NamedTuple.__init__
    - ipywidgets.Output.clear_output
    - ipywidgets.Output.close
    - typing.cast
    - pip._vendor.rich.ansi.AnsiDecoder.__init__
    - threading.Thread.start
    - threading.Event
    - pip._vendor.rich.live.Live.refresh
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8bf5a90>
    argNames:
    - self
    - refresh
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 104
    functionName: pip._vendor.rich.live.Live.start
    functionSourceFile: pip._vendor.rich.live
    functionUses: 6
    functionsReached:
    - pip._vendor.rich.live.Live.stop
    - <builtin>.isinstance
    - pip._vendor.rich.file_proxy.FileProxy.__init__
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.live.Live._enable_redirect_io
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.live._RefreshThread.__init__
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    - ipywidgets.Output
    - <builtin>.super
    - typing.NamedTuple.__init__
    - ipywidgets.Output.clear_output
    - ipywidgets.Output.close
    - typing.cast
    - pip._vendor.rich.ansi.AnsiDecoder.__init__
    - threading.Thread.start
    - threading.Event
    - pip._vendor.rich.live.Live.refresh
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 89
    functionName: pip._vendor.rich.status.Status.stop
    functionSourceFile: pip._vendor.rich.status
    functionUses: 1
    functionsReached:
    - ipywidgets.Output
    - pip._vendor.rich.live.Live.stop
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.isinstance
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - typing.NamedTuple.__init__
    - IPython.display.display
    - warnings.warn
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.control.Control.__init__
    - typing.cast
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    - ipywidgets.Output.close
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 11
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 134
    functionName: pip._vendor.rich.live.Live.stop
    functionSourceFile: pip._vendor.rich.live
    functionUses: 13
    functionsReached:
    - ipywidgets.Output
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.isinstance
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - typing.NamedTuple.__init__
    - IPython.display.display
    - warnings.warn
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.control.Control.__init__
    - typing.cast
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    - ipywidgets.Output.close
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 93
    functionName: pip._vendor.rich.status.Status.__rich__
    functionSourceFile: pip._vendor.rich.status
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 96
    functionName: pip._vendor.rich.status.Status.__enter__
    functionSourceFile: pip._vendor.rich.status
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.live.Live.stop
    - <builtin>.isinstance
    - pip._vendor.rich.file_proxy.FileProxy.__init__
    - pip._vendor.rich.live.Live.start
    - pip._vendor.rich.status.Status.start
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.live.Live._enable_redirect_io
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.live._RefreshThread.__init__
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    - ipywidgets.Output
    - <builtin>.super
    - typing.NamedTuple.__init__
    - ipywidgets.Output.clear_output
    - ipywidgets.Output.close
    - typing.cast
    - pip._vendor.rich.ansi.AnsiDecoder.__init__
    - threading.Thread.start
    - threading.Event
    - pip._vendor.rich.live.Live.refresh
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 100
    functionName: pip._vendor.rich.status.Status.__exit__
    functionSourceFile: pip._vendor.rich.status
    functionUses: 0
    functionsReached:
    - ipywidgets.Output
    - pip._vendor.rich.live.Live.stop
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.isinstance
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - typing.NamedTuple.__init__
    - pip._vendor.rich.status.Status.stop
    - IPython.display.display
    - warnings.warn
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.control.Control.__init__
    - typing.cast
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    - ipywidgets.Output.close
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: -1
    functionName: pip._vendor.rich.spinner
    functionSourceFile: pip._vendor.rich.spinner
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - threading.RLock
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - time.sleep
    - match.groups
    - <builtin>.str
    - <builtin>.hash
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.columns.Columns.__init__
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.padding.Padding.unpack
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.table.Table.grid
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._vendor.rich.live.Live.__init__
    - table.add_row
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.progress.Progress.get_renderables
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._vendor.rich.live.Live.get_renderable
    - pip._vendor.rich.console.Group.__init__
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.table.Table.add_column
    - color_match.groups
    - <builtin>.list
    - pip._vendor.rich.spinner.Spinner.__init__
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.int
    - SPINNERS.keys
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.progress.Progress.get_renderable
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - style_definition.strip
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - column.format
    - <builtin>.reversed
    - _column.get_table_column
    - pip._vendor.rich.live_render.LiveRender.__init__
    - get_console
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 49
    functionName: pip._vendor.rich.spinner.Spinner.__rich_console__
    functionSourceFile: pip._vendor.rich.spinner
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.text.Text.assemble
    - <builtin>.isinstance
    - <builtin>.int
    - pip._vendor.rich.padding.Padding.unpack
    - <builtin>.len
    - table.add_row
    - pip._vendor.rich.control.strip_control_codes
    - text.apply_meta
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.spinner.Spinner.render
    - console.get_time
    - typing.cast
    - <builtin>.list
    - pip._vendor.rich.table.Table.grid
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: console.get_time
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - time
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 60
    functionName: pip._vendor.rich.spinner.Spinner.render
    functionSourceFile: pip._vendor.rich.spinner
    functionUses: 4
    functionsReached:
    - pip._vendor.rich.text.Text.assemble
    - <builtin>.isinstance
    - <builtin>.int
    - <builtin>.len
    - table.add_row
    - text.apply_meta
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - typing.cast
    - <builtin>.list
    - pip._vendor.rich.table.Table.grid
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 54
    functionName: pip._vendor.rich.spinner.Spinner.__rich_measure__
    functionSourceFile: pip._vendor.rich.spinner
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - <builtin>.str
    - <builtin>.hash
    - highlight_text.copy_styles
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.protocol.rich_cast
    - text.apply_meta
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.hasattr
    - pip._vendor.rich.table.Table.grid
    - render_width.normalize
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - table.add_row
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - ANSI_COLOR_NAMES.get
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.table.Table.add_column
    - color_match.groups
    - <builtin>.list
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.int
    - style_stack.append
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - <builtin>.type
    - pip._vendor.rich.text.Text.assemble
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.set
    - inspect.isclass
    - variants.get
    - style_definition.split
    - style_definition.strip
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - random.randint
    - pip._vendor.rich.markup.render
    - pip._vendor.rich.spinner.Spinner.render
    - <builtin>.next
    - tag_text.partition
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: table.add_row
    functionSourceFile: <builtin>
    functionUses: 29
    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: SPINNERS.keys
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich._spinners
    functionSourceFile: pip._vendor.rich._spinners
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich._windows_renderer
    functionSourceFile: pip._vendor.rich._windows_renderer
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 9
    IfCount: 4
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: -1
    functionName: pip._vendor.rich.live
    functionSourceFile: pip._vendor.rich.live
    functionUses: 0
    functionsReached:
    - filename.rpartition
    - key.startswith
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich._pick.pick_bool
    - threading.RLock
    - operator.attrgetter
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - time.sleep
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - abc.ABC.title
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - exchange_rate_dict.items
    - pip._vendor.rich.align.Align.__init__
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.console.Console.log
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - exchange_rate_dict.keys
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - locals.items
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - scope.items
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - text.apply_meta
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.text.Text.join
    - <builtin>.repr
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - pip._vendor.rich.table.Table.grid
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - pip._vendor.rich.live.Live.__init__
    - table.add_row
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.align.Align.center
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - open_tag.parameters.strip
    - term.rpartition
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - live_table.update
    - random.random
    - ast.literal_eval
    - pip._vendor.rich.progress.Progress.get_renderables
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.scope.render_scope
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - items_table.add_column
    - os.path.abspath
    - pip._vendor.rich.cells.chop_cells
    - importlib.metadata.entry_points
    - match.span
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - line.pad_right
    - pip._vendor.rich.table.Table.add_row.add_cell
    - re.finditer
    - importlib_metadata.entry_points
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.console.Console._caller_frame_info
    - <builtin>.__import__
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - exchange_rate_dict.pop
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - pip._vendor.rich.live.Live.get_renderable
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - pip._vendor.rich.console.Group.__init__
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - color_match.groups
    - <builtin>.list
    - match.end
    - spans.sort
    - pip._vendor.rich.panel.Panel.fit
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - <builtin>.ord
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - pip._vendor.rich.text.Text.assemble
    - operator.itemgetter
    - items_table.add_row
    - renderables.append
    - pip._vendor.rich.syntax.Syntax.get_theme
    - column._cells.append
    - plain_text.replace
    - pip._vendor.rich.syntax.Syntax.__init__
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.progress.Progress.get_renderable
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - pip._vendor.pygments.styles.get_style_by_name
    - inspect.isclass
    - <builtin>.set
    - word_match.group
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - style_definition.split
    - variants.get
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - itertools.cycle
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.protocol.is_renderable
    - inspect.stack
    - line.expand_tabs
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - filename.startswith
    - tag_text.partition
    - <builtin>.next
    - pip._vendor.rich.console.Console._detect_color_system
    - pip._vendor.rich._win32_console.GetConsoleMode
    - RE_HANDLER.match
    - column.format
    - <builtin>.reversed
    - _column.get_table_column
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.live_render.LiveRender.__init__
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - get_console
    - pip._vendor.pygments.plugin.iter_entry_points
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - pip._vendor.rich.rule.Rule.__init__
    - entrypoint.load
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - live
    - refresh_per_second
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 19
    functionName: pip._vendor.rich.live._RefreshThread.__init__
    functionSourceFile: pip._vendor.rich.live
    functionUses: 7
    functionsReached:
    - <builtin>.super
    - threading.Event
    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: threading.Event
    functionSourceFile: threading
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 25
    functionName: pip._vendor.rich.live._RefreshThread.stop
    functionSourceFile: pip._vendor.rich.live
    functionUses: 14
    functionsReached:
    - threading.Event.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: threading.Event.set
    functionSourceFile: threading
    functionUses: 16
    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: 3
    functionLinenumber: 28
    functionName: pip._vendor.rich.live._RefreshThread.run
    functionSourceFile: pip._vendor.rich.live
    functionUses: 0
    functionsReached:
    - ipywidgets.Output
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - IPython.display.display
    - ipywidgets.Output.clear_output
    - threading.Event.is_set
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - threading.Event.wait
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    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: threading.Event.wait
    functionSourceFile: threading
    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: threading.Event.is_set
    functionSourceFile: threading
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 220
    functionName: pip._vendor.rich.live.Live.refresh
    functionSourceFile: pip._vendor.rich.live
    functionUses: 30
    functionsReached:
    - ipywidgets.Output
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - ipywidgets.Output.clear_output
    - warnings.warn
    - IPython.display.display
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 96
    functionName: pip._vendor.rich.live.Live.get_renderable
    functionSourceFile: pip._vendor.rich.live
    functionUses: 13
    functionsReached:
    - pip._vendor.rich.console.Group.__init__
    - <builtin>.isinstance
    - _column.get_table_column
    - pip._vendor.rich.progress.Progress.get_renderable
    - <builtin>.len
    - pip._vendor.rich.progress.Progress.get_renderables
    - table.add_row
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - column.format
    - pip._vendor.rich.padding.Padding.unpack
    - typing.cast
    - <builtin>.list
    - pip._vendor.rich.table.Table.grid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e079b9a0>
    - <ast.Constant object at 0x7f30e079b5e0>
    argNames:
    - self
    - renderable
    - style
    - vertical_overflow
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 28
    functionName: pip._vendor.rich.live_render.LiveRender.__init__
    functionSourceFile: ''
    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: 92
    functionName: pip._vendor.rich.live.Live.is_started
    functionSourceFile: pip._vendor.rich.live
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1536
    functionName: pip._vendor.rich.progress.Progress.get_renderable
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 15
    functionsReached:
    - pip._vendor.rich.console.Group.__init__
    - <builtin>.isinstance
    - _column.get_table_column
    - <builtin>.len
    - pip._vendor.rich.progress.Progress.get_renderables
    - table.add_row
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - column.format
    - pip._vendor.rich.padding.Padding.unpack
    - typing.cast
    - <builtin>.list
    - pip._vendor.rich.table.Table.grid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 177
    functionName: pip._vendor.rich.live.Live._enable_redirect_io
    functionSourceFile: pip._vendor.rich.live
    functionUses: 7
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.file_proxy.FileProxy.__init__
    - pip._vendor.rich.style.Style.null
    - typing.cast
    - pip._vendor.rich.ansi.AnsiDecoder.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Thread.start
    functionSourceFile: threading
    functionUses: 12
    functionsReached: []
    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: 1
    functionLinenumber: 187
    functionName: pip._vendor.rich.live.Live._disable_redirect_io
    functionSourceFile: pip._vendor.rich.live
    functionUses: 14
    functionsReached:
    - typing.cast
    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: 68
    functionName: pip._vendor.rich.live_render.LiveRender.restore_cursor
    functionSourceFile: pip._vendor.rich.live_render
    functionUses: 14
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.isinstance
    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: ipywidgets.Output.close
    functionSourceFile: ipywidgets
    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: 5
    functionLinenumber: 165
    functionName: pip._vendor.rich.live.Live.__enter__
    functionSourceFile: pip._vendor.rich.live
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.live.Live.stop
    - <builtin>.isinstance
    - pip._vendor.rich.file_proxy.FileProxy.__init__
    - pip._vendor.rich.live.Live.start
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.live.Live._enable_redirect_io
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.live._RefreshThread.__init__
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    - ipywidgets.Output
    - <builtin>.super
    - typing.NamedTuple.__init__
    - ipywidgets.Output.clear_output
    - ipywidgets.Output.close
    - typing.cast
    - pip._vendor.rich.ansi.AnsiDecoder.__init__
    - threading.Thread.start
    - threading.Event
    - pip._vendor.rich.live.Live.refresh
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 169
    functionName: pip._vendor.rich.live.Live.__exit__
    functionSourceFile: pip._vendor.rich.live
    functionUses: 0
    functionsReached:
    - ipywidgets.Output
    - pip._vendor.rich.live.Live.stop
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.isinstance
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - typing.NamedTuple.__init__
    - IPython.display.display
    - warnings.warn
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.control.Control.__init__
    - typing.cast
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    - ipywidgets.Output.close
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - file
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 14
    functionName: pip._vendor.rich.file_proxy.FileProxy.__init__
    functionSourceFile: pip._vendor.rich.file_proxy
    functionUses: 8
    functionsReached:
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.ansi.AnsiDecoder.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 197
    functionName: pip._vendor.rich.live.Live.renderable
    functionSourceFile: pip._vendor.rich.live
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.console.Group.__init__
    - <builtin>.isinstance
    - _column.get_table_column
    - pip._vendor.rich.progress.Progress.get_renderable
    - <builtin>.len
    - pip._vendor.rich.screen.Screen.__init__
    - pip._vendor.rich.progress.Progress.get_renderables
    - table.add_row
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - column.format
    - <builtin>.list
    - pip._vendor.rich.padding.Padding.unpack
    - typing.cast
    - pip._vendor.rich.live.Live.get_renderable
    - pip._vendor.rich.table.Table.grid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - renderable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 39
    functionName: pip._vendor.rich.live_render.LiveRender.set_renderable
    functionSourceFile: ''
    functionUses: 31
    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: ipywidgets.Output
    functionSourceFile: ipywidgets
    functionUses: 31
    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: ipywidgets.Output.clear_output
    functionSourceFile: ipywidgets
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - renderables
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 249
    functionName: pip._vendor.rich.live.Live.process_renderables
    functionSourceFile: pip._vendor.rich.live
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.position_cursor
    - pip._vendor.rich.control.Control.home
    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: 47
    functionName: pip._vendor.rich.live_render.LiveRender.position_cursor
    functionSourceFile: pip._vendor.rich.live_render
    functionUses: 1
    functionsReached:
    - typing.NamedTuple.__init__
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.isinstance
    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: itertools.cycle
    functionSourceFile: itertools
    functionUses: 31
    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: random.random
    functionSourceFile: random
    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: exchange_rate_dict.keys
    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: exchange_rate_dict.pop
    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: exchange_rate_dict.items
    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: live_table.update
    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: pip._vendor.rich.file_proxy
    functionSourceFile: pip._vendor.rich.file_proxy
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 21
    functionName: pip._vendor.rich.file_proxy.FileProxy.rich_proxied_file
    functionSourceFile: pip._vendor.rich.file_proxy
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 25
    functionName: pip._vendor.rich.file_proxy.FileProxy.__getattr__
    functionSourceFile: pip._vendor.rich.file_proxy
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 28
    functionName: pip._vendor.rich.file_proxy.FileProxy.write
    functionSourceFile: pip._vendor.rich.file_proxy
    functionUses: 0
    functionsReached:
    - re_ansi.finditer
    - <builtin>.isinstance
    - sgr.split
    - console.print
    - original_word.lower
    - <builtin>.sum
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.ansi._ansi_tokenize
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - io.TextIOBase.__buffer.append
    - marshal.dumps
    - pip._vendor.rich.color.Color.from_rgb
    - match.groups
    - pip._vendor.rich.color.Color.from_ansi
    - STYLE_ATTRIBUTES.get
    - text.partition
    - pip._vendor.rich.style.Style.from_color
    - style_definition.split
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - abc.ABC.background_color.lower
    - pip._vendor.rich.color.Color.from_triplet
    - line.rsplit
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - random.randint
    - pip._vendor.rich.ansi.AnsiDecoder.decode_line
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - _code.isdigit
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - <builtin>.next
    - cls.__new__
    - pip._vendor.rich._loop.loop_last
    - match.span
    - <builtin>.int
    - osc.startswith
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.style.Style.update_link
    - RE_COLOR.match
    - <builtin>.all
    - pip._vendor.rich.text.Text.join
    - color_rgb.split
    - contextlib.suppress
    - sgr.endswith
    - io.TextIOBase.__buffer.clear
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.TextIOBase.__buffer.clear
    functionSourceFile: io
    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: io.TextIOBase.__buffer.append
    functionSourceFile: io
    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: console.print
    functionSourceFile: <builtin>
    functionUses: 3
    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: 0
    functionLinenumber: 50
    functionName: pip._vendor.rich.file_proxy.FileProxy.flush
    functionSourceFile: pip._vendor.rich.file_proxy
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 56
    functionName: pip._vendor.rich.file_proxy.FileProxy.fileno
    functionSourceFile: pip._vendor.rich.file_proxy
    functionUses: 0
    functionsReached:
    - sys.stdout.fileno
    - sys.stderr.fileno
    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.stdout.fileno
    functionSourceFile: sys
    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: sys.stderr.fileno
    functionSourceFile: sys
    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: pip._vendor.rich.live_render
    functionSourceFile: pip._vendor.rich.live_render
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 82
    functionName: pip._vendor.rich.live_render.LiveRender.__rich_console__
    functionSourceFile: pip._vendor.rich.live_render
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.cells.cached_cell_len
    - console.get_style
    - <builtin>.list
    - pip._vendor.rich.segment.Segment.line
    - console.render
    - console.render_lines
    - typing.NamedTuple.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - lines.append
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.segment.Segment.get_line_length
    - <builtin>.ord
    - pip._vendor.rich.segment.Segment.get_shape
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - pip._vendor.rich.text.Text.__init__
    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: pip._vendor.rich.rule
    functionSourceFile: pip._vendor.rich.rule
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - dataclasses.is_dataclass
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.range
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - word.get_style_at_offset
    - pip._vendor.rich._windows.get_windows_console_features
    - lines.append
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - pip._vendor.rich.segment.Segment.apply_style
    - os.getenv
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.rule.Rule.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: pip._vendor.rich.rule.Rule.__repr__
    functionSourceFile: pip._vendor.rich.rule
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 18
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 49
    functionName: pip._vendor.rich.rule.Rule.__rich_console__
    functionSourceFile: pip._vendor.rich.rule
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.text.Text.truncate
    - <builtin>.sum
    - pip._vendor.rich.text.Text.cell_len
    - pip._vendor.rich.cells.cached_cell_len
    - console.render_str
    - title_text.plain.replace
    - title_text.truncate
    - typing.NamedTuple.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - title_text.expand_tabs
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.rule.Rule._rule_line
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - chars_len
    - width
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 105
    functionName: pip._vendor.rich.rule.Rule._rule_line
    functionSourceFile: pip._vendor.rich.rule
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.text.Text.truncate
    - <builtin>.len
    - <builtin>.sum
    - pip._vendor.rich.text.Text.cell_len
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: title_text.truncate
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 111
    functionName: pip._vendor.rich.rule.Rule.__rich_measure__
    functionSourceFile: pip._vendor.rich.rule
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich._null_file
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 6
    functionName: pip._vendor.rich._null_file.NullFile.close
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 9
    functionName: pip._vendor.rich._null_file.NullFile.isatty
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2112d60>
    argNames:
    - self
    - __n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 12
    functionName: pip._vendor.rich._null_file.NullFile.read
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 15
    functionName: pip._vendor.rich._null_file.NullFile.readable
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2112610>
    argNames:
    - self
    - __limit
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 18
    functionName: pip._vendor.rich._null_file.NullFile.readline
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2112a60>
    argNames:
    - self
    - __hint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 21
    functionName: pip._vendor.rich._null_file.NullFile.readlines
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2112a90>
    argNames:
    - self
    - __offset
    - __whence
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 24
    functionName: pip._vendor.rich._null_file.NullFile.seek
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: pip._vendor.rich._null_file.NullFile.seekable
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 30
    functionName: pip._vendor.rich._null_file.NullFile.tell
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8bf3cd0>
    argNames:
    - self
    - __size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 33
    functionName: pip._vendor.rich._null_file.NullFile.truncate
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 36
    functionName: pip._vendor.rich._null_file.NullFile.writable
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - __lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 39
    functionName: pip._vendor.rich._null_file.NullFile.writelines
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: pip._vendor.rich._null_file.NullFile.__next__
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 45
    functionName: pip._vendor.rich._null_file.NullFile.__iter__
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 48
    functionName: pip._vendor.rich._null_file.NullFile.__enter__
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - __t
    - __value
    - __traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 51
    functionName: pip._vendor.rich._null_file.NullFile.__exit__
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 59
    functionName: pip._vendor.rich._null_file.NullFile.write
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 62
    functionName: pip._vendor.rich._null_file.NullFile.flush
    functionSourceFile: pip._vendor.rich._null_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 65
    functionName: pip._vendor.rich._null_file.NullFile.fileno
    functionSourceFile: pip._vendor.rich._null_file
    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: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich._log_render
    functionSourceFile: pip._vendor.rich._log_render
    functionUses: 0
    functionsReached:
    - filename.rpartition
    - key.startswith
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - threading.RLock
    - operator.attrgetter
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.console.Console.log
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - locals.items
    - scope.items
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - text.apply_meta
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - pip._vendor.rich.table.Table.grid
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.scope.render_scope
    - items_table.add_column
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - os.path.abspath
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.console.Console._caller_frame_info
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - pip._vendor.rich.panel.Panel.fit
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - pip._vendor.rich.text.Text.assemble
    - items_table.add_row
    - operator.itemgetter
    - renderables.append
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - word_match.group
    - variants.get
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - inspect.stack
    - typing.NamedTuple.__init__
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - filename.startswith
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - pip._vendor.rich._win32_console.GetConsoleMode
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 13
    IfCount: 9
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bcbaf0>
    - <ast.Constant object at 0x7f30f6bcba30>
    - <ast.Constant object at 0x7f30f6bcb070>
    - <ast.Constant object at 0x7f30f6bcb280>
    - <ast.Constant object at 0x7f30f6bcbe80>
    - <ast.Constant object at 0x7f30f6bcb790>
    argNames:
    - self
    - console
    - renderables
    - log_time
    - time_format
    - level
    - path
    - line_no
    - link_path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 32
    functionName: pip._vendor.rich._log_render.LogRender.__call__
    functionSourceFile: pip._vendor.rich._log_render
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - output.add_row
    - pip._vendor.rich.containers.Renderables.__init__
    - log_time.strftime
    - pip._vendor.rich.table.Table.add_column
    - output.add_column
    - console.get_datetime
    - <builtin>.list
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - <builtin>.callable
    - row.append
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.table.Table.grid
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.add_column
    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: console.get_datetime
    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: log_time.strftime
    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: row.append
    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: output.add_row
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.pager
    functionSourceFile: pip._vendor.rich.pager
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - dataclasses.is_dataclass
    - pip._vendor.rich.__main__.make_test_card.comparison
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - pip._vendor.rich.console.Console.pager
    - match.groups
    - abc.ABC.__init__
    - abc.ABC.title
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.align.Align.__init__
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - pip._vendor.rich.console.PagerContext.__init__
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - table.add_column
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - pip._vendor.rich.table.Table.grid
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - table.add_row
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - importlib.metadata.entry_points
    - match.span
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - line.pad_right
    - pip._vendor.rich.table.Table.add_row.add_cell
    - re.finditer
    - importlib_metadata.entry_points
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - <builtin>.__import__
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - pip._vendor.rich.console.Group.__init__
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - pip._vendor.rich.__main__.make_test_card
    - <builtin>.ord
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - lorem_table.add_row
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - pip._vendor.rich.syntax.Syntax.get_theme
    - column._cells.append
    - plain_text.replace
    - pip._vendor.rich.syntax.Syntax.__init__
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - pip._vendor.pygments.styles.get_style_by_name
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - word_match.group
    - variants.get
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - os.getenv
    - style_definition.strip
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - pip._vendor.rich.protocol.is_renderable
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.markdown.Markdown
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.pygments.plugin.iter_entry_points
    - style_stack.pop
    - entrypoint.load
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.pager.Pager
    functionSourceFile: pip._vendor.rich.pager
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - content
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 9
    functionName: pip._vendor.rich.pager.Pager.show
    functionSourceFile: pip._vendor.rich.pager
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - content
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 20
    functionName: pip._vendor.rich.pager.SystemPager._pager
    functionSourceFile: pip._vendor.rich.pager
    functionUses: 1
    functionsReached:
    - <builtin>.__import__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - content
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 23
    functionName: pip._vendor.rich.pager.SystemPager.show
    functionSourceFile: pip._vendor.rich.pager
    functionUses: 0
    functionsReached:
    - <builtin>.__import__
    - pip._vendor.rich.pager.SystemPager._pager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 22
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 39
    functionName: pip._vendor.rich.__main__.make_test_card
    functionSourceFile: pip._vendor.rich.__main__
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._vendor.rich.__main__.make_test_card.comparison
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - abc.ABC.__init__
    - abc.ABC.title
    - <builtin>.str
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.rich.pretty.Pretty.__init__
    - <builtin>.hash
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - table.add_column
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.hasattr
    - pip._vendor.rich.table.Table.grid
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - table.add_row
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - importlib.metadata.entry_points
    - match.span
    - RE_COLOR.match
    - pip._vendor.rich.table.Table.add_row.add_cell
    - importlib_metadata.entry_points
    - <builtin>.isinstance
    - <builtin>.__import__
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._vendor.rich.console.Group.__init__
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - color_match.groups
    - <builtin>.list
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - lorem_table.add_row
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - pip._vendor.rich.syntax.Syntax.get_theme
    - column._cells.append
    - plain_text.replace
    - pip._vendor.rich.syntax.Syntax.__init__
    - style.strip
    - pip._vendor.rich.markup._parse
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - variants.get
    - style_definition.split
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - style_definition.strip
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.markdown.Markdown
    - pip._vendor.pygments.plugin.iter_entry_points
    - style_stack.pop
    - entrypoint.load
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 13
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.__main__
    functionSourceFile: pip._vendor.rich.__main__
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - threading.RLock
    - dataclasses.is_dataclass
    - pip._vendor.rich.__main__.make_test_card.comparison
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - sponsor_message.add_column
    - match.groups
    - abc.ABC.__init__
    - abc.ABC.title
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - time.process_time
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - table.add_column
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - pip._vendor.rich.table.Table.grid
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - message.add_row
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - table.add_row
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - io.StringIO
    - pip._vendor.rich.text.Text.join.iter_text
    - pip._vendor.rich.text.Text.render.get_current_style
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - <builtin>.round
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - importlib.metadata.entry_points
    - match.span
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - line.pad_right
    - pip._vendor.rich.table.Table.add_row.add_cell
    - re.finditer
    - importlib_metadata.entry_points
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - <builtin>.__import__
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - pip._vendor.rich.console.Group.__init__
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - message.add_column
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - pip._vendor.rich.panel.Panel.fit
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - sponsor_message.add_row
    - pip._vendor.rich._windows.get_windows_console_features
    - new_segments.insert
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.Control.move_to
    - typing.cast
    - pip._vendor.rich.__main__.make_test_card
    - <builtin>.ord
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - lorem_table.add_row
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - pip._vendor.rich.syntax.Syntax.get_theme
    - column._cells.append
    - plain_text.replace
    - pip._vendor.rich.syntax.Syntax.__init__
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - pip._vendor.pygments.styles.get_style_by_name
    - inspect.isclass
    - <builtin>.set
    - word_match.group
    - style_definition.split
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - variants.get
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - open_tag.name.startswith
    - typing.cast.__rich_console__
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.protocol.is_renderable
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - <builtin>.print
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.markdown.Markdown
    - pip._vendor.pygments.plugin.iter_entry_points
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - entrypoint.load
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 19
    functionName: pip._vendor.rich.__main__.ColorBox.__rich_console__
    functionSourceFile: pip._vendor.rich.__main__
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - colorsys.hls_to_rgb
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - pip._vendor.rich.color.Color.from_rgb
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.segment.Segment.line
    - pip._vendor.rich.color.Color.from_triplet
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - <builtin>.int
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 33
    functionName: pip._vendor.rich.__main__.ColorBox.__rich_measure__
    functionSourceFile: pip._vendor.rich.__main__
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lorem_table.add_row
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - renderable1
    - renderable2
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 90
    functionName: pip._vendor.rich.__main__.make_test_card.comparison
    functionSourceFile: pip._vendor.rich.__main__
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.protocol.is_renderable
    - <builtin>.len
    - <builtin>.enumerate
    - column._cells.append
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - pip._vendor.rich.table.Table.add_row.add_cell
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - typing.cast
    - <builtin>.list
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.markdown.Markdown
    functionSourceFile: pip
    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: time.process_time
    functionSourceFile: time
    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: sponsor_message.add_column
    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: sponsor_message.add_row
    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: message.add_column
    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: message.add_row
    functionSourceFile: <builtin>
    functionUses: 1
    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: 8
    functionLinenumber: -1
    functionName: pip._vendor.rich.pretty
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - threading.RLock
    - <builtin>.frozenset
    - collections.namedtuple
    - collections.defaultdict
    - abc.ABC.__init__
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - <builtin>.tuple
    - term.rpartition
    - pip._vendor.rich.print
    - pip._vendor.rich.pretty.Pretty.__init__
    - os.getenv
    - collections.Counter
    - jupyter_columns.isdigit
    - typing.NamedTuple.__init__
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - write_console.print
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - lines.isdigit
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - _BRACES.keys
    - pip._vendor.rich.console.Console.__init__
    - <builtin>.hasattr
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 58
    functionName: pip._vendor.rich.pretty._is_attr_object
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 62
    functionsReached:
    - attr.has
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attr.has
    functionSourceFile: attr
    functionUses: 63
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 63
    functionName: pip._vendor.rich.pretty._get_attr_fields
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 15
    functionsReached:
    - attr.fields
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attr.fields
    functionSourceFile: attr
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 68
    functionName: pip._vendor.rich.pretty._is_dataclass_repr
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 88
    functionName: pip._vendor.rich.pretty._has_default_namedtuple_repr
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 15
    functionsReached:
    - inspect.getfile
    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: inspect.getfile
    functionSourceFile: inspect
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce1ef9d0>
    - <ast.Constant object at 0x7f30ce1ef9a0>
    - <ast.Constant object at 0x7f30ce1ef970>
    - <ast.Constant object at 0x7f30ce1ef940>
    - <ast.Constant object at 0x7f30ce1ef910>
    - <ast.Constant object at 0x7f30ce1ef8e0>
    - <ast.Constant object at 0x7f30ce1ef8b0>
    - <ast.Constant object at 0x7f30ce1ef880>
    argNames:
    - value
    - console
    - overflow
    - crop
    - indent_guides
    - max_length
    - max_string
    - max_depth
    - expand_all
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 108
    functionName: pip._vendor.rich.pretty._ipy_display_hook
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 1
    functionsReached:
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - pip._vendor.rich._pick.pick_bool
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - capture.get
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - pip._vendor.rich.console.Console.capture
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.Control.move_to
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.Console.line
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - variants.get
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - open_tag.name.startswith
    - typing.cast.__rich_console__
    - pip._vendor.rich.console.NewLine.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - typing.NamedTuple.__init__
    - random.randint
    - line.expand_tabs
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - get_console
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.console.Capture.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - obj
    - class_or_tuple
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 154
    functionName: pip._vendor.rich.pretty._safe_isinstance
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 65
    functionsReached:
    - <builtin>.isinstance
    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: capture.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30f20a15b0>
    - <ast.Constant object at 0x7f30f20a10a0>
    - <ast.Constant object at 0x7f30f20a19d0>
    - <ast.Constant object at 0x7f30f20a1b80>
    - <ast.Constant object at 0x7f30f20a1e20>
    - <ast.Constant object at 0x7f30f20a1c40>
    - <ast.Constant object at 0x7f30f20a1fd0>
    - <ast.Constant object at 0x7f30f20a1190>
    argNames:
    - console
    - overflow
    - crop
    - indent_guides
    - max_length
    - max_string
    - max_depth
    - expand_all
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 164
    functionName: pip._vendor.rich.pretty.install
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 1
    functionsReached:
    - <builtin>.bool
    - threading.RLock
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - IPython.core.formatters.BaseFormatter.__init__
    - term.rpartition
    - <builtin>.globals
    - os.getenv
    - jupyter_columns.isdigit
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - lines.isdigit
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 193
    functionName: pip._vendor.rich.pretty.install.display_hook
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached:
    - abc.ABC.__init__
    - pip._vendor.rich.pretty._safe_isinstance
    - <builtin>.isinstance
    - console.print
    - pip._vendor.rich.pretty.Pretty.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 221
    functionName: pip._vendor.rich.pretty.install.RichFormatter.__call__
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - dataclasses.is_dataclass
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - capture.get
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.get_console
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - pip._vendor.rich.console.Console.capture
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.range
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - pip._vendor.rich.containers.Lines.pop
    - line.split
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - word.get_style_at_offset
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.console.Console.line
    - pip._vendor.rich.pretty._ipy_display_hook
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - variants.get
    - word_match.group
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - os.getenv
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - typing.NamedTuple.__init__
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - get_console
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - pip._vendor.rich.console.Capture.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: IPython.core.formatters.BaseFormatter.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 294
    functionName: pip._vendor.rich.pretty.Pretty.__rich_console__
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached:
    - typing.cast._asdict
    - dataclasses.fields
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - pip._vendor.rich.pretty.traverse
    - <builtin>.str
    - line.divide
    - region_map.items
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - terminal_text.splitlines
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - part.plain.endswith
    - functools.reduce
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.ansi.AnsiDecoder.decode_line
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - osc.startswith
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - sgr.endswith
    - pip._vendor.rich.layout.Layout._make_region_map
    - pip._vendor.rich.style.Style.update_link
    - <builtin>.hasattr
    - _options.reset_height
    - pip._vendor.rich.containers.Lines.extend
    - sgr.split
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.ansi.AnsiDecoder.decode
    - pip._vendor.rich.console.Console.render
    - pip._vendor.rich.pretty.traverse.to_repr
    - line.rstrip_end
    - pip._vendor.rich.color.Color.from_ansi
    - <builtin>.enumerate
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - pip._vendor.rich.text.Text.join.iter_text
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - <builtin>.min
    - attr.fields
    - tokens.append
    - pip._vendor.rich.pretty._is_dataclass_repr
    - abc.ABC.background_color.lower
    - pip._vendor.rich.color.Color.from_triplet
    - ast.literal_eval
    - pip._vendor.rich.layout.Layout.render
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - _code.isdigit
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.text.Text.detect_indentation
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - pip._vendor.rich.cells.chop_cells
    - typing.cast.render
    - match.span
    - match.group
    - <builtin>.callable
    - line.pad_right
    - RE_COLOR.match
    - <builtin>.divmod
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.pretty._is_namedtuple
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.ansi._ansi_tokenize
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - pip._vendor.rich.color.Color.from_rgb
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - pip._vendor.rich.pretty._Line.check_length
    - line.pad_left
    - layout.splitter.divide
    - pip._vendor.rich.pretty.traverse._traverse
    - pip._vendor.rich.text.Text.wrap
    - line.rstrip
    - STYLE_ATTRIBUTES.get
    - line.stylize
    - pip._vendor.rich.style.Style.from_color
    - re_indent.match
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.text.Text.with_indent_guides
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.pretty._Line.expand
    - <builtin>.id
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.Control.move_to
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - contextlib.suppress
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - re_ansi.finditer
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - re.compile
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - word_match.group
    - typing.cast.__rich_repr__
    - style_definition.split
    - variants.get
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - pip._vendor.rich.text.Text.expand_tabs
    - style_definition.strip
    - typing.cast.__rich_console__
    - pip._vendor.rich.pretty.pretty_repr
    - pip._vendor.rich.text.Text.from_ansi
    - pip._vendor.rich.pretty.Node.render
    - typing.NamedTuple.__init__
    - line.rsplit
    - line.expand_tabs
    - random.randint
    - open_tag.name.startswith
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - cls.__new__
    - RE_HANDLER.match
    - pip._vendor.rich.ansi.AnsiDecoder.__init__
    - <builtin>.reversed
    - new_lines.extend
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - typing.cast.items
    - rich_visited_set.add
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 7
    argDefaultValues: []
    argNames:
    - _object
    - max_width
    - indent_size
    - max_length
    - max_string
    - max_depth
    - expand_all
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 856
    functionName: pip._vendor.rich.pretty.pretty_repr
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 2
    functionsReached:
    - typing.cast._asdict
    - dataclasses.fields
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - pip._vendor.rich.pretty.traverse
    - <builtin>.str
    - line.divide
    - region_map.items
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - pip._vendor.rich.layout.Layout._make_region_map
    - <builtin>.hasattr
    - _options.reset_height
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - pip._vendor.rich.pretty.traverse.to_repr
    - line.rstrip_end
    - <builtin>.enumerate
    - pip._vendor.rich.pretty._get_attr_fields
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - inspect.getfile
    - pip._vendor.rich.text.Text.render.get_current_style
    - <builtin>.min
    - attr.fields
    - tokens.append
    - pip._vendor.rich.pretty._is_dataclass_repr
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.layout.Layout.render
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - pip._vendor.rich.cells.chop_cells
    - typing.cast.render
    - match.span
    - <builtin>.callable
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.pretty._is_namedtuple
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - pip._vendor.rich.containers.Lines.pop
    - line.split
    - pip._vendor.rich.pretty._Line.check_length
    - line.pad_left
    - layout.splitter.divide
    - pip._vendor.rich.pretty.traverse._traverse
    - pip._vendor.rich.text.Text.wrap
    - line.rstrip
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.list
    - match.end
    - spans.sort
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - <builtin>.id
    - lines.append
    - pip._vendor.rich.pretty._Line.expand
    - pip._vendor.rich.style.Style.__init__
    - word.get_style_at_offset
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.set
    - variants.get
    - inspect.isclass
    - word_match.group
    - typing.cast.__rich_repr__
    - style_definition.split
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.pretty.Node.render
    - typing.NamedTuple.__init__
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - typing.cast.items
    - rich_visited_set.add
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 329
    functionName: pip._vendor.rich.pretty.Pretty.__rich_measure__
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached:
    - typing.cast._asdict
    - dataclasses.fields
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - pip._vendor.rich.pretty.traverse
    - <builtin>.str
    - line.divide
    - region_map.items
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - pip._vendor.rich.control.Control.__init__
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - pip._vendor.rich.layout.Layout._make_region_map
    - <builtin>.hasattr
    - _options.reset_height
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - pip._vendor.rich.pretty.traverse.to_repr
    - line.rstrip_end
    - <builtin>.enumerate
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - pip._vendor.rich.text.Text.join.iter_text
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - <builtin>.min
    - attr.fields
    - tokens.append
    - pip._vendor.rich.pretty._is_dataclass_repr
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.layout.Layout.render
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - pip._vendor.rich.cells.chop_cells
    - typing.cast.render
    - match.span
    - <builtin>.callable
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - <builtin>.max
    - pip._vendor.rich.pretty._is_namedtuple
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - pip._vendor.rich.containers.Lines.pop
    - line.split
    - pip._vendor.rich.pretty._Line.check_length
    - line.pad_left
    - layout.splitter.divide
    - pip._vendor.rich.pretty.traverse._traverse
    - pip._vendor.rich.text.Text.wrap
    - line.rstrip
    - STYLE_ATTRIBUTES.get
    - color_match.groups
    - <builtin>.list
    - match.end
    - spans.sort
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - <builtin>.len
    - <builtin>.id
    - lines.append
    - pip._vendor.rich.pretty._Line.expand
    - pip._vendor.rich.style.Style.__init__
    - word.get_style_at_offset
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - pretty_str.splitlines
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - word_match.group
    - style_definition.split
    - typing.cast.__rich_repr__
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - itertools.zip_longest
    - typing.cast.__rich_console__
    - pip._vendor.rich.pretty.pretty_repr
    - typing.NamedTuple.__init__
    - pip._vendor.rich.pretty.Node.render
    - open_tag.name.startswith
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - functools.partial
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - typing.cast.items
    - rich_visited_set.add
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pretty_str.splitlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - _object
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 347
    functionName: pip._vendor.rich.pretty._get_braces_for_defaultdict
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - _object
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 355
    functionName: pip._vendor.rich.pretty._get_braces_for_array
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.pretty.<dict1>.<lambda1>
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.pretty.<dict1>.<lambda2>
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.pretty.<dict1>.<lambda3>
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.pretty.<dict1>.<lambda4>
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.pretty.<dict1>.<lambda5>
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.pretty.<dict1>.<lambda6>
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.pretty.<dict1>.<lambda7>
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.pretty.<dict1>.<lambda8>
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.pretty.<dict1>.<lambda9>
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.pretty.<dict1>.<lambda10>
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.pretty.<dict1>.<lambda11>
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _BRACES.keys
    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: dataclasses.is_dataclass
    functionSourceFile: dataclasses
    functionUses: 62
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 11
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 404
    functionName: pip._vendor.rich.pretty.Node.iter_tokens
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - child.iter_tokens
    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: child.iter_tokens
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - start_length
    - max_length
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 426
    functionName: pip._vendor.rich.pretty.Node.check_length
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.pretty.Node.iter_tokens
    - child.iter_tokens
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 443
    functionName: pip._vendor.rich.pretty.Node.__str__
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.pretty.Node.iter_tokens
    - <builtin>.len
    - child.iter_tokens
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce1fcbb0>
    - <ast.Constant object at 0x7f30ce1fcb80>
    - <ast.Constant object at 0x7f30ce1fcb50>
    argNames:
    - self
    - max_width
    - indent_size
    - expand_all
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 447
    functionName: pip._vendor.rich.pretty.Node.render
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 3
    functionsReached:
    - pip._vendor.rich.pretty._Line.check_length
    - <builtin>.str
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.pretty._Line.expand
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - max_length
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 491
    functionName: pip._vendor.rich.pretty._Line.check_length
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 4
    functionsReached:
    - <builtin>.sum
    - <builtin>.len
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.cells.get_character_cell_size
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - indent_size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 499
    functionName: pip._vendor.rich.pretty._Line.expand
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 4
    functionsReached:
    - <builtin>.next
    - pip._vendor.rich._loop.loop_last
    - <builtin>.len
    - <builtin>.iter
    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: 487
    functionName: pip._vendor.rich.pretty._Line.expandable
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 532
    functionName: pip._vendor.rich.pretty._Line.__str__
    functionSourceFile: pip._vendor.rich.pretty
    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:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 541
    functionName: pip._vendor.rich.pretty._is_namedtuple
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 15
    functionsReached:
    - <builtin>.getattr
    - <builtin>.isinstance
    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 0x7f30eb74df40>
    - <ast.Constant object at 0x7f30eb74df10>
    - <ast.Constant object at 0x7f30eb74dee0>
    argNames:
    - _object
    - max_length
    - max_string
    - max_depth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 560
    functionName: pip._vendor.rich.pretty.traverse
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 13
    functionsReached:
    - pip._vendor.rich.pretty._safe_isinstance
    - <builtin>.isinstance
    - typing.cast._asdict
    - attr.has
    - dataclasses.fields
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - itertools.islice
    - pip._vendor.rich.pretty.traverse.to_repr
    - pip._vendor.rich.pretty._is_attr_object
    - pip._vendor.rich.pretty.traverse._traverse
    - <builtin>.str
    - typing.cast.items
    - <builtin>.enumerate
    - <builtin>.set
    - inspect.isclass
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - typing.cast.__rich_repr__
    - attr.fields
    - <builtin>.list
    - pip._vendor.rich.pretty._is_dataclass_repr
    - <builtin>.len
    - <builtin>.id
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - <builtin>.callable
    - <builtin>.getattr
    - <builtin>.repr
    - pip._vendor.rich.pretty._is_namedtuple
    - <builtin>.hasattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 581
    functionName: pip._vendor.rich.pretty.traverse.to_repr
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 15
    functionsReached:
    - pip._vendor.rich.pretty._safe_isinstance
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.len
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 26
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 37
    ICount: 19
    IfCount: 26
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30eb75ed90>
    - <ast.Constant object at 0x7f30eb75ed60>
    argNames:
    - obj
    - root
    - depth
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 601
    functionName: pip._vendor.rich.pretty.traverse._traverse
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 14
    functionsReached:
    - pip._vendor.rich.pretty._safe_isinstance
    - <builtin>.isinstance
    - typing.cast._asdict
    - attr.has
    - dataclasses.fields
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - itertools.islice
    - pip._vendor.rich.pretty.traverse.to_repr
    - pip._vendor.rich.pretty._is_attr_object
    - pip._vendor.rich.pretty.traverse._traverse
    - <builtin>.str
    - typing.cast.items
    - <builtin>.enumerate
    - inspect.isclass
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - typing.cast.__rich_repr__
    - attr.fields
    - <builtin>.list
    - pip._vendor.rich.pretty._is_dataclass_repr
    - <builtin>.len
    - <builtin>.id
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - <builtin>.callable
    - <builtin>.getattr
    - <builtin>.repr
    - pip._vendor.rich.pretty._is_namedtuple
    - <builtin>.hasattr
    - <builtin>.type
    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>.id
    functionSourceFile: <builtin>
    functionUses: 81
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - rich_args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 613
    functionName: pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 15
    functionsReached:
    - pip._vendor.rich.pretty._safe_isinstance
    - <builtin>.len
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 177
    functionName: pip._vendor.rich.layout.Layout.__rich_repr__
    functionSourceFile: ''
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.__rich_repr__
    functionSourceFile: typing
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 711
    functionName: pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 15
    functionsReached:
    - <builtin>.callable
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dataclasses.fields
    functionSourceFile: dataclasses
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast._asdict
    functionSourceFile: typing
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.items
    functionSourceFile: typing
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 367
    functionName: pip._vendor.rich.layout.Layout.render
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 4
    functionsReached:
    - layout.splitter.divide
    - operator.itemgetter
    - typing.NamedTuple.__init__
    - <builtin>.sorted
    - region_map.items
    - pip._vendor.rich.layout.Layout._make_region_map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.render
    functionSourceFile: typing
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 7
    argDefaultValues: []
    argNames:
    - _object
    - console
    - indent_guides
    - max_length
    - max_string
    - max_depth
    - expand_all
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 896
    functionName: pip._vendor.rich.pretty.pprint
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached:
    - get_console
    - pip._vendor.rich.pretty.Pretty.__init__
    - _console.print
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 936
    functionName: pip._vendor.rich.pretty.BrokenRepr.__repr__
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.Counter
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 991
    functionName: pip._vendor.rich.pretty.Thing.__repr__
    functionSourceFile: pip._vendor.rich.pretty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.rich.abc
    functionSourceFile: pip._vendor.rich.abc
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - <builtin>.print
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 16
    functionName: pip._vendor.rich.abc.RichRenderable.__subclasshook__
    functionSourceFile: pip._vendor.rich.abc
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.errors
    functionSourceFile: pip._vendor.rich.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: pip._vendor.rich.themes
    functionSourceFile: pip._vendor.rich.themes
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - original_word.lower
    - <builtin>.sum
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.theme.Theme.__init__
    - style_definition.split
    - color_match.groups
    - style_definition.strip
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.parse
    - styles.items
    - pip._vendor.rich.style.Style.__init__._make_color
    - <builtin>.iter
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - DEFAULT_STYLES.copy
    - <builtin>.next
    - <builtin>.int
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f8bc8670>
    - <ast.Constant object at 0x7f30f8bc8640>
    argNames:
    - self
    - styles
    - inherit
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 18
    functionName: pip._vendor.rich.theme.Theme.__init__
    functionSourceFile: pip._vendor.rich.theme
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - original_word.lower
    - <builtin>.sum
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - STYLE_ATTRIBUTES.get
    - style_definition.split
    - color_match.groups
    - style_definition.strip
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.parse
    - styles.items
    - pip._vendor.rich.style.Style.__init__._make_color
    - <builtin>.iter
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - DEFAULT_STYLES.copy
    - <builtin>.next
    - <builtin>.int
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: -1
    functionName: pip._vendor.rich.default_styles
    functionSourceFile: pip._vendor.rich.default_styles
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bool
    - console.print
    - <builtin>.sum
    - threading.RLock
    - column._cells.append
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - parser.parse_args
    - threading.local.__init__
    - <builtin>.str
    - pip._vendor.rich._log_render.LogRender.__init__
    - <builtin>.enumerate
    - ctypes.wintypes.DWORD
    - io.StringIO
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - term.rpartition
    - color_match.groups
    - <builtin>.list
    - <builtin>.hash
    - os.getenv
    - abc.ABC.background_color.lower
    - argparse.ArgumentParser
    - jupyter_columns.isdigit
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - DEFAULT_STYLES.items
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - console.export_html
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - parser.add_argument
    - <builtin>.print
    - RE_COLOR.match
    - pip._vendor.rich.table.Table.add_row.add_cell
    - <builtin>.all
    - lines.isdigit
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: DEFAULT_STYLES.items
    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: console.export_html
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.json
    functionSourceFile: pip._vendor.rich.json
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - <builtin>.sum
    - threading.RLock
    - pathlib.Path.read_text
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - dataclasses.is_dataclass
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - parser.parse_args
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - sys.exit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - argparse.ArgumentParser
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.range
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - json.dumps
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - pip._vendor.rich.json.JSON.__init__
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - json.loads
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - pip._vendor.rich.segment.Segment.apply_style
    - itertools.zip_longest
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - sys.stdin.read
    - parser.add_argument
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: json.loads
    functionSourceFile: json
    functionUses: 47
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 101
    functionName: pip._vendor.rich.json.JSON.__rich__
    functionSourceFile: pip._vendor.rich.json
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.exit
    functionSourceFile: sys
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: -1
    functionName: pip._vendor.rich.styled
    functionSourceFile: pip._vendor.rich.styled
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.bool
    - threading.RLock
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - term.rpartition
    - pip._vendor.rich.print
    - os.getenv
    - jupyter_columns.isdigit
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - write_console.print
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - lines.isdigit
    - pip._vendor.rich.panel.Panel.__init__
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 23
    functionName: pip._vendor.rich.styled.Styled.__rich_console__
    functionSourceFile: pip._vendor.rich.styled
    functionUses: 0
    functionsReached:
    - console.get_style
    - console.render
    - pip._vendor.rich.segment.Segment.apply_style
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 31
    functionName: pip._vendor.rich.styled.Styled.__rich_measure__
    functionSourceFile: pip._vendor.rich.styled
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - open_tag.parameters.strip
    - style_definition.split
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - pip._vendor.rich.protocol.is_renderable
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - <builtin>.type
    - RE_HANDLER.match
    - typing.cast
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich._extension
    functionSourceFile: pip._vendor.rich._extension
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - ip
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4
    functionName: pip._vendor.rich._extension.load_ipython_extension
    functionSourceFile: pip._vendor.rich._extension
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - threading.RLock
    - pip._vendor.rich.traceback.install.ipy_excepthook_closure
    - pip._vendor.rich.pretty.install
    - pip._vendor.rich.traceback.install
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - IPython.core.formatters.BaseFormatter.__init__
    - term.rpartition
    - <builtin>.globals
    - os.getenv
    - jupyter_columns.isdigit
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - lines.isdigit
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 13
    argDefaultValues: []
    argNames:
    - console
    - width
    - extra_lines
    - theme
    - word_wrap
    - show_locals
    - locals_max_length
    - locals_max_string
    - locals_hide_dunder
    - locals_hide_sunder
    - indent_guides
    - suppress
    - max_frames
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 48
    functionName: pip._vendor.rich.traceback.install
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 3
    functionsReached:
    - <builtin>.bool
    - threading.RLock
    - pip._vendor.rich.traceback.install.ipy_excepthook_closure
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - term.rpartition
    - os.getenv
    - jupyter_columns.isdigit
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - lines.isdigit
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: -1
    functionName: pip._vendor.rich.traceback
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 0
    functionsReached:
    - typing.cast._asdict
    - dataclasses.fields
    - key.startswith
    - <builtin>.sum
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - pip._vendor.rich.pretty.traverse
    - abc.ABC.title
    - <builtin>.str
    - line.divide
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - frame_summary.f_locals.items
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - os.path.normpath
    - <builtin>.zip
    - pip._vendor.rich.traceback.Traceback.extract
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.traceback.Traceback.extract.get_locals
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - pip._vendor.rich.pretty.traverse.to_repr
    - pip._vendor.rich.traceback.error
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - pip._vendor.rich.text.Text.join.iter_text
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - os.path.join
    - term.rpartition
    - <builtin>.min
    - attr.fields
    - tokens.append
    - pip._vendor.rich.pretty._is_dataclass_repr
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.traceback.foo
    - os.path.abspath
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - pip._vendor.rich.cells.chop_cells
    - importlib.metadata.entry_points
    - match.span
    - pip._vendor.rich.traceback.Traceback.extract.safe_str
    - jupyter_lines.isdigit
    - os.path.dirname
    - <builtin>.callable
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - importlib_metadata.entry_points
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - sys.exc_info
    - pip._vendor.rich.pretty._is_namedtuple
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.text.Text.copy
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.range
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - <builtin>.__import__
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - pip._vendor.rich.pretty.traverse._traverse
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - line.rstrip
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.traceback.Traceback.__init__
    - os.path.isabs
    - pip._vendor.rich.console.Console.print_exception
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - <builtin>.id
    - pip._vendor.rich._windows.get_windows_console_features
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - platform.system
    - typing.cast
    - <builtin>.ord
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - pip._vendor.rich.syntax.Syntax.get_theme
    - traceback.walk_tb
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.traceback.bar
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - typing.cast.__rich_repr__
    - word_match.group
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - variants.get
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - os.getenv
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - stacks.append
    - frame_summary.f_locals.get
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - filename.startswith
    - pip._vendor.rich.console.Console._detect_color_system
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - <builtin>.print
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.pygments.plugin.iter_entry_points
    - style_stack.pop
    - entrypoint.load
    - typing.cast.items
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - type_
    - value
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 97
    functionName: pip._vendor.rich.traceback.install.excepthook
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 2
    functionsReached:
    - typing.cast._asdict
    - dataclasses.fields
    - key.startswith
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.pretty.traverse
    - abc.ABC.title
    - <builtin>.str
    - frame_summary.f_locals.items
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.hash
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._vendor.rich.traceback.Traceback.extract
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.traceback.Traceback.extract.get_locals
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - <builtin>.repr
    - <builtin>.hasattr
    - marshal.dumps
    - pip._vendor.rich.pretty.traverse.to_repr
    - <builtin>.enumerate
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - os.path.join
    - attr.fields
    - pip._vendor.rich.pretty._is_dataclass_repr
    - abc.ABC.background_color.lower
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - os.path.abspath
    - importlib.metadata.entry_points
    - pip._vendor.rich.traceback.Traceback.extract.safe_str
    - os.path.dirname
    - <builtin>.callable
    - RE_COLOR.match
    - pip._vendor.rich.traceback.Traceback.from_exception
    - importlib_metadata.entry_points
    - <builtin>.max
    - sys.exc_info
    - pip._vendor.rich.pretty._is_namedtuple
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - <builtin>.__import__
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - pip._vendor.rich.pretty.traverse._traverse
    - os.path.isabs
    - pip._vendor.rich.traceback.Traceback.__init__
    - color_match.groups
    - <builtin>.list
    - <builtin>.len
    - <builtin>.id
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.color.Color.parse
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.syntax.Syntax.get_theme
    - traceback.walk_tb
    - pip._vendor.rich.pretty._is_attr_object
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - inspect.isclass
    - typing.cast.__rich_repr__
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - traceback_console.print
    - typing.NamedTuple.__init__
    - random.randint
    - stacks.append
    - frame_summary.f_locals.get
    - filename.startswith
    - <builtin>.next
    - pip._vendor.pygments.plugin.iter_entry_points
    - entrypoint.load
    - typing.cast.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 16
    argDefaultValues: []
    argNames:
    - cls
    - exc_type
    - exc_value
    - traceback
    - width
    - extra_lines
    - theme
    - word_wrap
    - show_locals
    - locals_max_length
    - locals_max_string
    - locals_hide_dunder
    - locals_hide_sunder
    - indent_guides
    - suppress
    - max_frames
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 293
    functionName: pip._vendor.rich.traceback.Traceback.from_exception
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 4
    functionsReached:
    - typing.cast._asdict
    - dataclasses.fields
    - key.startswith
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.pretty.traverse
    - abc.ABC.title
    - <builtin>.str
    - frame_summary.f_locals.items
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.hash
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._vendor.rich.traceback.Traceback.extract
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.traceback.Traceback.extract.get_locals
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - <builtin>.repr
    - <builtin>.hasattr
    - marshal.dumps
    - pip._vendor.rich.pretty.traverse.to_repr
    - <builtin>.enumerate
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - os.path.join
    - attr.fields
    - pip._vendor.rich.pretty._is_dataclass_repr
    - abc.ABC.background_color.lower
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - os.path.abspath
    - importlib.metadata.entry_points
    - pip._vendor.rich.traceback.Traceback.extract.safe_str
    - os.path.dirname
    - <builtin>.callable
    - RE_COLOR.match
    - importlib_metadata.entry_points
    - <builtin>.max
    - sys.exc_info
    - pip._vendor.rich.pretty._is_namedtuple
    - <builtin>.isinstance
    - attr.has
    - <builtin>.__import__
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - pip._vendor.rich.pretty.traverse._traverse
    - os.path.isabs
    - pip._vendor.rich.traceback.Traceback.__init__
    - color_match.groups
    - <builtin>.list
    - <builtin>.len
    - <builtin>.id
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.color.Color.parse
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.syntax.Syntax.get_theme
    - traceback.walk_tb
    - pip._vendor.rich.pretty._is_attr_object
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - inspect.isclass
    - typing.cast.__rich_repr__
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - typing.NamedTuple.__init__
    - random.randint
    - stacks.append
    - frame_summary.f_locals.get
    - filename.startswith
    - <builtin>.next
    - pip._vendor.pygments.plugin.iter_entry_points
    - entrypoint.load
    - typing.cast.items
    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: traceback_console.print
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - ip
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 122
    functionName: pip._vendor.rich.traceback.install.ipy_excepthook_closure
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 126
    functionName: pip._vendor.rich.traceback.install.ipy_excepthook_closure.ipy_show_traceback
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - args
    - is_syntax
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 132
    functionName: pip._vendor.rich.traceback.install.ipy_excepthook_closure.ipy_display_traceback
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 1
    functionsReached:
    - typing.cast._asdict
    - dataclasses.fields
    - key.startswith
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.pretty.traverse
    - abc.ABC.title
    - <builtin>.str
    - frame_summary.f_locals.items
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.hash
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._vendor.rich.traceback.Traceback.extract
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.traceback.Traceback.extract.get_locals
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - <builtin>.repr
    - <builtin>.hasattr
    - marshal.dumps
    - pip._vendor.rich.pretty.traverse.to_repr
    - <builtin>.enumerate
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - os.path.join
    - attr.fields
    - pip._vendor.rich.pretty._is_dataclass_repr
    - abc.ABC.background_color.lower
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - os.path.abspath
    - importlib.metadata.entry_points
    - pip._vendor.rich.traceback.Traceback.extract.safe_str
    - os.path.dirname
    - <builtin>.callable
    - RE_COLOR.match
    - pip._vendor.rich.traceback.Traceback.from_exception
    - importlib_metadata.entry_points
    - <builtin>.max
    - sys.exc_info
    - pip._vendor.rich.pretty._is_namedtuple
    - <builtin>.range
    - <builtin>.isinstance
    - attr.has
    - pip._vendor.rich.traceback.install.excepthook
    - <builtin>.bool
    - <builtin>.__import__
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - pip._vendor.rich.pretty.traverse._traverse
    - os.path.isabs
    - pip._vendor.rich.traceback.Traceback.__init__
    - color_match.groups
    - <builtin>.list
    - <builtin>.len
    - <builtin>.id
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.color.Color.parse
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - tb_data.get
    - pip._vendor.rich.syntax.Syntax.get_theme
    - traceback.walk_tb
    - ip._get_exc_info
    - pip._vendor.rich.pretty._is_attr_object
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - inspect.isclass
    - typing.cast.__rich_repr__
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - traceback_console.print
    - typing.NamedTuple.__init__
    - random.randint
    - stacks.append
    - frame_summary.f_locals.get
    - filename.startswith
    - <builtin>.next
    - pip._vendor.pygments.plugin.iter_entry_points
    - entrypoint.load
    - typing.cast.items
    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: ip._get_exc_info
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tb_data.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.traceback.install.ipy_excepthook_closure.<lambda1>
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 0
    functionsReached:
    - typing.cast._asdict
    - dataclasses.fields
    - key.startswith
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.pretty.traverse
    - abc.ABC.title
    - <builtin>.str
    - frame_summary.f_locals.items
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.hash
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._vendor.rich.traceback.Traceback.extract
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.traceback.Traceback.extract.get_locals
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - <builtin>.repr
    - <builtin>.hasattr
    - marshal.dumps
    - pip._vendor.rich.pretty.traverse.to_repr
    - <builtin>.enumerate
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - os.path.join
    - attr.fields
    - pip._vendor.rich.pretty._is_dataclass_repr
    - abc.ABC.background_color.lower
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - os.path.abspath
    - importlib.metadata.entry_points
    - pip._vendor.rich.traceback.Traceback.extract.safe_str
    - os.path.dirname
    - <builtin>.callable
    - RE_COLOR.match
    - pip._vendor.rich.traceback.Traceback.from_exception
    - importlib_metadata.entry_points
    - <builtin>.max
    - sys.exc_info
    - pip._vendor.rich.pretty._is_namedtuple
    - <builtin>.range
    - <builtin>.isinstance
    - attr.has
    - pip._vendor.rich.traceback.install.excepthook
    - <builtin>.bool
    - <builtin>.__import__
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - pip._vendor.rich.pretty.traverse._traverse
    - os.path.isabs
    - pip._vendor.rich.traceback.Traceback.__init__
    - color_match.groups
    - <builtin>.list
    - <builtin>.len
    - <builtin>.id
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.color.Color.parse
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - tb_data.get
    - pip._vendor.rich.syntax.Syntax.get_theme
    - traceback.walk_tb
    - ip._get_exc_info
    - pip._vendor.rich.pretty._is_attr_object
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - inspect.isclass
    - typing.cast.__rich_repr__
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - traceback_console.print
    - typing.NamedTuple.__init__
    - pip._vendor.rich.traceback.install.ipy_excepthook_closure.ipy_display_traceback
    - random.randint
    - stacks.append
    - frame_summary.f_locals.get
    - filename.startswith
    - <builtin>.next
    - pip._vendor.pygments.plugin.iter_entry_points
    - entrypoint.load
    - typing.cast.items
    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: pip._vendor.rich.traceback.Stack
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 0
    functionsReached:
    - dataclasses.field
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 3
    IfCount: 7
    argCount: 9
    argDefaultValues: []
    argNames:
    - cls
    - exc_type
    - exc_value
    - traceback
    - show_locals
    - locals_max_length
    - locals_max_string
    - locals_hide_dunder
    - locals_hide_sunder
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 363
    functionName: pip._vendor.rich.traceback.Traceback.extract
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 9
    functionsReached:
    - pip._vendor.rich.pretty._safe_isinstance
    - <builtin>.isinstance
    - typing.cast._asdict
    - attr.has
    - dataclasses.fields
    - key.startswith
    - traceback.walk_tb
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - itertools.islice
    - pip._vendor.rich.pretty.traverse.to_repr
    - pip._vendor.rich.pretty.traverse
    - pip._vendor.rich.pretty._is_attr_object
    - pip._vendor.rich.pretty.traverse._traverse
    - <builtin>.str
    - typing.cast.items
    - <builtin>.enumerate
    - os.path.isabs
    - <builtin>.set
    - inspect.isclass
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - typing.cast.__rich_repr__
    - frame_summary.f_locals.items
    - os.path.join
    - attr.fields
    - <builtin>.list
    - pip._vendor.rich.pretty._is_dataclass_repr
    - <builtin>.len
    - <builtin>.id
    - stacks.append
    - frame_summary.f_locals.get
    - pip._vendor.rich._loop.loop_last
    - <builtin>.iter
    - filename.startswith
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - <builtin>.next
    - pip._vendor.rich.traceback.Traceback.extract.safe_str
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.traceback.Traceback.extract.get_locals
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - <builtin>.callable
    - <builtin>.getattr
    - <builtin>.repr
    - pip._vendor.rich.pretty._is_namedtuple
    - <builtin>.hasattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - _object
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 397
    functionName: pip._vendor.rich.traceback.Traceback.extract.safe_str
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 10
    functionsReached:
    - <builtin>.str
    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: stacks.append
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - iter_locals
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 423
    functionName: pip._vendor.rich.traceback.Traceback.extract.get_locals
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 10
    functionsReached:
    - key.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: traceback.walk_tb
    functionSourceFile: traceback
    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: os.path.isabs
    functionSourceFile: os
    functionUses: 63
    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: frame_summary.f_locals.get
    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: frame_summary.f_locals.items
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 7
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 487
    functionName: pip._vendor.rich.traceback.Traceback.__rich_console__
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_background_style
    - pip._vendor.pygments.lexers.guess_lexer_for_filename
    - key.startswith
    - <builtin>.sum
    - pip._vendor.rich.syntax.ANSISyntaxTheme.get_style_for_token
    - syntax_error_text.stylize
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - pip._vendor.rich.traceback.Traceback._render_stack.read_code
    - abc.ABC.__init__
    - abc.ABC.title
    - <builtin>.str
    - pip._vendor.rich.traceback.Traceback._render_stack
    - <builtin>.tuple
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.rich.pretty.Pretty.__init__
    - code.index
    - <builtin>.hash
    - <builtin>.sorted
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.columns.Columns.__init__
    - scope.items
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_background_style
    - os.path.basename
    - text.apply_meta
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - matching_lexers.add
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.table.Table.grid
    - <builtin>.hasattr
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._vendor.rich.theme.Theme.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.splitext
    - <builtin>.min
    - abc.ABC.background_color.lower
    - cls.LEXERS.get
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.scope.render_scope
    - items_table.add_column
    - DEFAULT_STYLES.copy
    - importlib.metadata.entry_points
    - match.span
    - pip._vendor.rich.traceback.Traceback._render_syntax_error
    - os.path.exists
    - lexer.analyse_text
    - RE_COLOR.match
    - pip._vendor.rich.traceback.Traceback._render_stack.render_locals
    - pip._vendor.pygments.lexers._iter_lexerclasses
    - importlib_metadata.entry_points
    - <builtin>.range
    - <builtin>.isinstance
    - <builtin>.__import__
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pattern.match
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._vendor.pygments.lexers._load_lexers
    - result.sort
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.table.Table.add_column
    - color_match.groups
    - <builtin>.list
    - <builtin>.any
    - pip._vendor.rich.panel.Panel.fit
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - pip._vendor.rich.table.Table.__init__
    - styles.items
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - first_line.lower
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - style_stack.append
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - result.append
    - pip._vendor.rich.text.Text.assemble
    - items_table.add_row
    - pip._vendor.rich.syntax.Syntax.get_theme
    - re.compile
    - pip._vendor.rich.constrain.Constrain.__init__
    - frame_filename.startswith
    - plain_text.replace
    - frame.filename.startswith
    - pip._vendor.rich.syntax.Syntax.__init__
    - style.strip
    - abc.ABC.style_for_token
    - pip._vendor.rich.traceback.Traceback._guess_lexer
    - pip._vendor.rich.markup._parse
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - variants.get
    - style_definition.split
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - syntax_error.line.rstrip
    - style_definition.strip
    - matching_lexers.pop
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - first_line.startswith
    - tag_text.partition
    - <builtin>.next
    - linecache.getlines
    - pip._vendor.pygments.lexers._fn_matches
    - RE_HANDLER.match
    - console.use_theme
    - <builtin>.reversed
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_style_for_token
    - fnmatch.translate
    - pip._vendor.pygments.plugin.iter_entry_points
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - entrypoint.load
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 7
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stack
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 605
    functionName: pip._vendor.rich.traceback.Traceback._render_stack
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 1
    functionsReached:
    - pip._vendor.pygments.lexers.guess_lexer_for_filename
    - key.startswith
    - <builtin>.sum
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.traceback.Traceback._render_stack.read_code
    - abc.ABC.__init__
    - abc.ABC.title
    - <builtin>.str
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.rich.pretty.Pretty.__init__
    - code.index
    - <builtin>.hash
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.columns.Columns.__init__
    - scope.items
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - os.path.basename
    - text.apply_meta
    - matching_lexers.add
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.table.Table.grid
    - <builtin>.hasattr
    - marshal.dumps
    - <builtin>.enumerate
    - os.path.splitext
    - abc.ABC.background_color.lower
    - cls.LEXERS.get
    - typing.NamedTuple.lower
    - pip._vendor.rich.scope.render_scope
    - items_table.add_column
    - importlib.metadata.entry_points
    - os.path.exists
    - lexer.analyse_text
    - RE_COLOR.match
    - pip._vendor.rich.traceback.Traceback._render_stack.render_locals
    - pip._vendor.pygments.lexers._iter_lexerclasses
    - importlib_metadata.entry_points
    - <builtin>.range
    - <builtin>.isinstance
    - <builtin>.__import__
    - pattern.match
    - ANSI_COLOR_NAMES.get
    - pip._vendor.pygments.lexers._load_lexers
    - result.sort
    - pip._vendor.rich.table.Table.add_column
    - color_match.groups
    - <builtin>.list
    - <builtin>.any
    - pip._vendor.rich.panel.Panel.fit
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - first_line.lower
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - result.append
    - pip._vendor.rich.text.Text.assemble
    - items_table.add_row
    - pip._vendor.rich.syntax.Syntax.get_theme
    - re.compile
    - frame_filename.startswith
    - frame.filename.startswith
    - pip._vendor.rich.syntax.Syntax.__init__
    - pip._vendor.rich.traceback.Traceback._guess_lexer
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - matching_lexers.pop
    - typing.NamedTuple.__init__
    - random.randint
    - first_line.startswith
    - linecache.getlines
    - pip._vendor.pygments.lexers._fn_matches
    - fnmatch.translate
    - pip._vendor.pygments.plugin.iter_entry_points
    - pip._vendor.rich.panel.Panel.__init__
    - entrypoint.load
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: console.use_theme
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - syntax_error
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 566
    functionName: pip._vendor.rich.traceback.Traceback._render_syntax_error
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.text.Text.assemble
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - syntax_error_text.stylize
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - abc.ABC.__init__
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - <builtin>.min
    - syntax_error.line.rstrip
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - os.path.exists
    - text.apply_meta
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.rich.traceback.Traceback
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 0
    functionsReached:
    - functools.wraps
    - pip._vendor.rich.console.group.decorator
    - pip._vendor.rich.console.group
    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: syntax_error.line.rstrip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: syntax_error_text.stylize
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - filename
    - code
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 589
    functionName: pip._vendor.rich.traceback.Traceback._guess_lexer
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 2
    functionsReached:
    - pip._vendor.pygments.lexers.guess_lexer_for_filename
    - <builtin>.__import__
    - pattern.match
    - re.compile
    - pip._vendor.pygments.lexers._load_lexers
    - result.sort
    - <builtin>.set
    - os.path.splitext
    - code.index
    - cls.LEXERS.get
    - matching_lexers.pop
    - <builtin>.len
    - <builtin>.sorted
    - first_line.startswith
    - pip._vendor.pygments.lexers._fn_matches
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - first_line.lower
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - os.path.basename
    - importlib.metadata.entry_points.get
    - lexer.analyse_text
    - fnmatch.translate
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - matching_lexers.add
    - pip._vendor.pygments.lexers._iter_lexerclasses
    - importlib_metadata.entry_points
    - entrypoint.load
    - result.append
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: code.index
    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: first_line.lower
    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: cls.LEXERS.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 609
    functionName: pip._vendor.rich.traceback.Traceback._render_stack.read_code
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 2
    functionsReached:
    - linecache.getlines
    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: linecache.getlines
    functionSourceFile: linecache
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - frame
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 620
    functionName: pip._vendor.rich.traceback.Traceback._render_stack.render_locals
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 2
    functionsReached:
    - pip._vendor.rich.text.Text.assemble
    - items_table.add_row
    - <builtin>.isinstance
    - key.startswith
    - abc.ABC.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.pretty.Pretty.__init__
    - <builtin>.list
    - pip._vendor.rich.panel.Panel.fit
    - <builtin>.len
    - <builtin>.sorted
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.scope.render_scope
    - items_table.add_column
    - scope.items
    - typing.cast
    - text.apply_meta
    - pip._vendor.rich.panel.Panel.__init__
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.table.Table.grid
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: frame_filename.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: frame.filename.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - a
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 729
    functionName: pip._vendor.rich.traceback.bar
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 3
    functionsReached:
    - <builtin>.print
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - a
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 733
    functionName: pip._vendor.rich.traceback.foo
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 2
    functionsReached:
    - pip._vendor.rich.traceback.bar
    - <builtin>.print
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 746
    functionName: pip._vendor.rich.traceback.error
    functionSourceFile: pip._vendor.rich.traceback
    functionUses: 1
    functionsReached:
    - typing.cast._asdict
    - dataclasses.fields
    - key.startswith
    - <builtin>.sum
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - pip._vendor.rich.pretty.traverse
    - abc.ABC.title
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - frame_summary.f_locals.items
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - os.path.normpath
    - <builtin>.zip
    - pip._vendor.rich.traceback.Traceback.extract
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - pip._vendor.rich.traceback.Traceback.extract.get_locals
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - pip._vendor.rich.pretty.traverse.to_repr
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - pip._vendor.rich.text.Text.join.iter_text
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - os.path.join
    - <builtin>.min
    - attr.fields
    - tokens.append
    - pip._vendor.rich.pretty._is_dataclass_repr
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.traceback.foo
    - os.path.abspath
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - pip._vendor.rich.cells.chop_cells
    - importlib.metadata.entry_points
    - match.span
    - pip._vendor.rich.traceback.Traceback.extract.safe_str
    - os.path.dirname
    - <builtin>.callable
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - importlib_metadata.entry_points
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - sys.exc_info
    - pip._vendor.rich.pretty._is_namedtuple
    - pip._vendor.rich.containers.Lines.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - <builtin>.__import__
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.pretty.traverse._traverse
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - os.path.isabs
    - pip._vendor.rich.traceback.Traceback.__init__
    - pip._vendor.rich.console.Console.print_exception
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - <builtin>.id
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - pip._vendor.rich.syntax.Syntax.get_theme
    - traceback.walk_tb
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.traceback.bar
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - typing.cast.__rich_repr__
    - word_match.group
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - variants.get
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - stacks.append
    - frame_summary.f_locals.get
    - pip._vendor.rich.markup.render
    - filename.startswith
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - <builtin>.print
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.pygments.plugin.iter_entry_points
    - style_stack.pop
    - entrypoint.load
    - typing.cast.items
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: -1
    functionName: pip._vendor.rich.scope
    functionSourceFile: pip._vendor.rich.scope
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.text.Text.assemble
    - items_table.add_row
    - <builtin>.isinstance
    - <builtin>.bool
    - key.startswith
    - pip._vendor.rich.text.Text.__init__
    - threading.RLock
    - abc.ABC.__init__
    - threading.local.__init__
    - <builtin>.locals
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - term.rpartition
    - pip._vendor.rich.print
    - pip._vendor.rich.pretty.Pretty.__init__
    - <builtin>.list
    - os.getenv
    - pip._vendor.rich.scope.test
    - jupyter_columns.isdigit
    - pip._vendor.rich.panel.Panel.fit
    - <builtin>.len
    - <builtin>.sorted
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.scope.render_scope
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - scope.items
    - items_table.add_column
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - write_console.print
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - text.apply_meta
    - lines.isdigit
    - pip._vendor.rich.panel.Panel.__init__
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich.table.Table.grid
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: items_table.add_column
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - item
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: pip._vendor.rich.scope.render_scope.sort_items
    functionSourceFile: pip._vendor.rich.scope
    functionUses: 0
    functionsReached:
    - key.startswith
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.lower
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: scope.items
    functionSourceFile: <builtin>
    functionUses: 11
    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: items_table.add_row
    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:
    - foo
    - bar
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 75
    functionName: pip._vendor.rich.scope.test
    functionSourceFile: pip._vendor.rich.scope
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.text.Text.assemble
    - items_table.add_row
    - <builtin>.isinstance
    - key.startswith
    - <builtin>.bool
    - threading.RLock
    - abc.ABC.__init__
    - threading.local.__init__
    - <builtin>.locals
    - <builtin>.str
    - pip._vendor.rich._log_render.LogRender.__init__
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - term.rpartition
    - pip._vendor.rich.print
    - pip._vendor.rich.pretty.Pretty.__init__
    - <builtin>.list
    - os.getenv
    - pip._vendor.rich.panel.Panel.fit
    - jupyter_columns.isdigit
    - <builtin>.len
    - <builtin>.sorted
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.scope.render_scope
    - items_table.add_column
    - pip._vendor.rich.theme.ThemeStack.__init__
    - scope.items
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - write_console.print
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - text.apply_meta
    - lines.isdigit
    - pip._vendor.rich.panel.Panel.__init__
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich.table.Table.grid
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: pip._vendor.rich.theme
    functionSourceFile: pip._vendor.rich.theme
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - original_word.lower
    - <builtin>.sum
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.theme.Theme.__init__
    - style_definition.split
    - color_match.groups
    - style_definition.strip
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.parse
    - styles.items
    - pip._vendor.rich.style.Style.__init__._make_color
    - <builtin>.iter
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - DEFAULT_STYLES.copy
    - <builtin>.next
    - <builtin>.int
    - <builtin>.print
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    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: DEFAULT_STYLES.copy
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._vendor.rich.theme.Theme.config
    functionSourceFile: pip._vendor.rich.theme
    functionUses: 0
    functionsReached:
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd6e20>
    - <ast.Constant object at 0x7f30f6bd6c10>
    argNames:
    - cls
    - config_file
    - source
    - inherit
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 39
    functionName: pip._vendor.rich.theme.Theme.from_file
    functionSourceFile: pip._vendor.rich.theme
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - original_word.lower
    - <builtin>.sum
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - configparser.ConfigParser
    - config.items
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.theme.Theme.__init__
    - style_definition.split
    - color_match.groups
    - style_definition.strip
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - config.read_file
    - <builtin>.len
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - styles.items
    - <builtin>.iter
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - DEFAULT_STYLES.copy
    - <builtin>.next
    - <builtin>.int
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    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: config.read_file
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bc6910>
    - <ast.Constant object at 0x7f30f6bc6f40>
    argNames:
    - cls
    - path
    - inherit
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 59
    functionName: pip._vendor.rich.theme.Theme.read
    functionSourceFile: pip._vendor.rich.theme
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - original_word.lower
    - <builtin>.sum
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - configparser.ConfigParser
    - config.items
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.theme.Theme.__init__
    - style_definition.split
    - color_match.groups
    - style_definition.strip
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - config.read_file
    - <builtin>.len
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - styles.items
    - <builtin>.iter
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - DEFAULT_STYLES.copy
    - <builtin>.next
    - <builtin>.int
    - <builtin>.open
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    - pip._vendor.rich.theme.Theme.from_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e079b610>
    argNames:
    - self
    - theme
    - inherit
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 91
    functionName: pip._vendor.rich.theme.ThemeStack.push_theme
    functionSourceFile: pip._vendor.rich.theme
    functionUses: 0
    functionsReached:
    - theme.styles.copy
    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: theme.styles.copy
    functionSourceFile: <builtin>
    functionUses: 1
    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: 1
    functionLinenumber: 105
    functionName: pip._vendor.rich.theme.ThemeStack.pop_theme
    functionSourceFile: pip._vendor.rich.theme
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - ThemeStackError
    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: pip._vendor.rich._inspect
    functionSourceFile: pip._vendor.rich._inspect
    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:
    - doc
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 17
    functionName: pip._vendor.rich._inspect._first_paragraph
    functionSourceFile: pip._vendor.rich._inspect
    functionUses: 3
    functionsReached:
    - inspect.getdoc.partition
    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: inspect.getdoc.partition
    functionSourceFile: inspect
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: pip._vendor.rich._inspect.Inspect._make_title
    functionSourceFile: pip._vendor.rich._inspect
    functionUses: 4
    functionsReached:
    - abc.ABC.__init__
    - <builtin>.str
    - <builtin>.callable
    - inspect.isclass
    - inspect.ismodule
    - <builtin>.type
    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: inspect.ismodule
    functionSourceFile: inspect
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 76
    functionName: pip._vendor.rich._inspect.Inspect.__rich__
    functionSourceFile: pip._vendor.rich._inspect
    functionUses: 0
    functionsReached:
    - pip._vendor.rich._inspect.Inspect._render
    - key.startswith
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - abc.ABC.__init__
    - inspect.cleandoc
    - <builtin>.str
    - pip._vendor.rich.pretty.Pretty.__init__
    - inspect.cleandoc.strip
    - <builtin>.hash
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.text.Text.stylize
    - text.apply_meta
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.table.Table.grid
    - tag.name.startswith
    - RE_TAGS.finditer
    - pip._vendor.rich._inspect.Inspect._get_signature
    - marshal.dumps
    - inspect.signature
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - inspect.getfile
    - <builtin>.min
    - inspect.getdoc
    - abc.ABC.background_color.lower
    - inspect.getdoc.partition
    - pip._vendor.rich.control.escape_control_codes
    - ast.literal_eval
    - doc.stylize
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - items_table.add_column
    - match.span
    - <builtin>.callable
    - RE_COLOR.match
    - <builtin>.isinstance
    - inspect.iscoroutinefunction
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - warning.stylize
    - pip._vendor.rich.console.Group.__init__
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich._inspect._first_paragraph
    - pip._vendor.rich.table.Table.add_column
    - color_match.groups
    - <builtin>.list
    - inspect.getdoc.translate
    - pip._vendor.rich.panel.Panel.fit
    - items.sort
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich._inspect.Inspect._get_formatted_doc
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - inspect.ismodule
    - typing.cast
    - prefix.replace
    - <builtin>.int
    - style_stack.append
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - key_text.copy
    - pip._vendor.rich._inspect.Inspect._render.safe_getattr
    - pip._vendor.rich.text.Text.assemble
    - plain_text.replace
    - style.strip
    - _signature_text.append
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - variants.get
    - style_definition.split
    - style_definition.strip
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - <builtin>.dir
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 19
    IfCount: 16
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 123
    functionName: pip._vendor.rich._inspect.Inspect._render
    functionSourceFile: pip._vendor.rich._inspect
    functionUses: 1
    functionsReached:
    - key.startswith
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - abc.ABC.__init__
    - inspect.cleandoc
    - <builtin>.str
    - pip._vendor.rich.pretty.Pretty.__init__
    - inspect.cleandoc.strip
    - <builtin>.hash
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.text.Text.stylize
    - text.apply_meta
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.table.Table.grid
    - tag.name.startswith
    - RE_TAGS.finditer
    - pip._vendor.rich._inspect.Inspect._get_signature
    - marshal.dumps
    - inspect.signature
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - inspect.getfile
    - <builtin>.min
    - inspect.getdoc
    - abc.ABC.background_color.lower
    - inspect.getdoc.partition
    - pip._vendor.rich.control.escape_control_codes
    - ast.literal_eval
    - doc.stylize
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - items_table.add_column
    - match.span
    - <builtin>.callable
    - RE_COLOR.match
    - <builtin>.isinstance
    - inspect.iscoroutinefunction
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - warning.stylize
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich._inspect._first_paragraph
    - pip._vendor.rich.table.Table.add_column
    - color_match.groups
    - <builtin>.list
    - inspect.getdoc.translate
    - items.sort
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich._inspect.Inspect._get_formatted_doc
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - inspect.ismodule
    - typing.cast
    - prefix.replace
    - <builtin>.int
    - style_stack.append
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - key_text.copy
    - pip._vendor.rich._inspect.Inspect._render.safe_getattr
    - pip._vendor.rich.text.Text.assemble
    - plain_text.replace
    - style.strip
    - _signature_text.append
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - variants.get
    - style_definition.split
    - style_definition.strip
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - <builtin>.dir
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - obj
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 84
    functionName: pip._vendor.rich._inspect.Inspect._get_signature
    functionSourceFile: pip._vendor.rich._inspect
    functionUses: 2
    functionsReached:
    - abc.ABC.__init__
    - pip._vendor.rich.text.Text.assemble
    - <builtin>.isinstance
    - <builtin>.str
    - typing.NamedTuple.__init__
    - inspect.iscoroutinefunction
    - <builtin>.len
    - text.apply_meta
    - inspect.isclass
    - inspect.getfile
    - <builtin>.getattr
    - pip._vendor.rich.text.Text.stylize
    - <builtin>.min
    - pip._vendor.rich.control.strip_control_codes
    - inspect.signature
    - prefix.replace
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.iscoroutinefunction
    functionSourceFile: inspect
    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: prefix.replace
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - item
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 126
    functionName: pip._vendor.rich._inspect.Inspect._render.sort_items
    functionSourceFile: pip._vendor.rich._inspect
    functionUses: 0
    functionsReached:
    - <builtin>.callable
    - key.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: key.strip
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - attr_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 130
    functionName: pip._vendor.rich._inspect.Inspect._render.safe_getattr
    functionSourceFile: pip._vendor.rich._inspect
    functionUses: 2
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: items.sort
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - object_
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 216
    functionName: pip._vendor.rich._inspect.Inspect._get_formatted_doc
    functionSourceFile: pip._vendor.rich._inspect
    functionUses: 2
    functionsReached:
    - inspect.cleandoc
    - inspect.getdoc.partition
    - pip._vendor.rich.control.escape_control_codes
    - pip._vendor.rich._inspect._first_paragraph
    - inspect.getdoc
    - inspect.cleandoc.strip
    - inspect.getdoc.translate
    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: key_text.copy
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: warning.stylize
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _signature_text.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: doc.stylize
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.getdoc
    functionSourceFile: inspect
    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: inspect.cleandoc
    functionSourceFile: inspect
    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: inspect.cleandoc.strip
    functionSourceFile: inspect
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 238
    functionName: pip._vendor.rich._inspect.get_object_types_mro
    functionSourceFile: pip._vendor.rich._inspect
    functionUses: 2
    functionsReached:
    - <builtin>.getattr
    - <builtin>.hasattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 247
    functionName: pip._vendor.rich._inspect.get_object_types_mro_as_strings
    functionSourceFile: pip._vendor.rich._inspect
    functionUses: 1
    functionsReached:
    - <builtin>.hasattr
    - <builtin>.getattr
    - pip._vendor.rich._inspect.get_object_types_mro
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - obj
    - fully_qualified_types_names
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 260
    functionName: pip._vendor.rich._inspect.is_object_one_of_types
    functionSourceFile: pip._vendor.rich._inspect
    functionUses: 0
    functionsReached:
    - pip._vendor.rich._inspect.get_object_types_mro_as_strings
    - <builtin>.getattr
    - pip._vendor.rich._inspect.get_object_types_mro
    - <builtin>.hasattr
    - <builtin>.type
    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: pip._internal.req.req_install
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 15
    argDefaultValues:
    - <ast.Constant object at 0x7f30e0c45ee0>
    - <ast.Constant object at 0x7f30e0c45eb0>
    - <ast.Constant object at 0x7f30e0c45e80>
    - <ast.Constant object at 0x7f30e0c45e50>
    - <ast.Constant object at 0x7f30e0c45e20>
    argNames:
    - self
    - req
    - comes_from
    - editable
    - link
    - markers
    - use_pep517
    - isolated
    - global_options
    - hash_options
    - config_settings
    - constraint
    - extras
    - user_supplied
    - permit_editable_wheels
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 72
    functionName: pip._internal.req.req_install.InstallRequirement.__init__
    functionSourceFile: pip._internal.req.req_install
    functionUses: 35
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - format_str.format
    - pip._internal.utils.urls.path_to_url
    - link_hash.as_dict
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - <builtin>.str
    - letter.lower
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.abspath
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - match.group
    - part.isdigit
    - _legacy_version_replacement_map.get
    - warnings.warn
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - logger.warning
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa1ca0>
    - <ast.Constant object at 0x7f30f4aa16d0>
    - <ast.Constant object at 0x7f30f4aa1190>
    - <ast.Constant object at 0x7f30f4aa1580>
    - <ast.Constant object at 0x7f30f4aa1070>
    - <ast.Constant object at 0x7f30f4aa1280>
    argNames:
    - self
    - url
    - comes_from
    - requires_python
    - yanked_reason
    - metadata_file_data
    - cache_link_parsing
    - hashes
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 197
    functionName: pip._internal.models.link.Link.__init__
    functionSourceFile: pip._internal.models.link
    functionUses: 60
    functionsReached:
    - <builtin>.isinstance
    - format_str.format
    - pip._internal.utils.urls.path_to_url
    - link_hash.as_dict
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.abspath
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 286
    functionName: pip._internal.build_env.NoOpBuildEnvironment.__init__
    functionSourceFile: ''
    functionUses: 36
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 0
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 200
    functionName: pip._internal.req.req_install.InstallRequirement.__str__
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.misc._redact_netloc
    - <builtin>.str
    - pip._internal.utils.misc.display_path
    - pip._internal.utils.misc.split_auth_from_netloc
    - auth.split
    - <builtin>.len
    - pip._internal.utils.misc.redact_auth_from_requirement
    - os.getcwd
    - urllib.parse.urlunsplit
    - os.path.abspath
    - typing.cast
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - os.path.normcase
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - req
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 576
    functionName: pip._internal.utils.misc.redact_auth_from_requirement
    functionSourceFile: pip._internal.utils.misc
    functionUses: 3
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - <builtin>.str
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc._redact_netloc
    - typing.cast
    - pip._internal.utils.misc.split_auth_from_netloc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 571
    functionName: pip._internal.utils.misc.redact_auth_from_url
    functionSourceFile: pip._internal.utils.misc
    functionUses: 40
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc._redact_netloc
    - typing.cast
    - pip._internal.utils.misc.split_auth_from_netloc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 198
    functionName: pip._internal.utils.misc.display_path
    functionSourceFile: pip._internal.utils.misc
    functionUses: 18
    functionsReached:
    - os.path.abspath
    - os.path.normcase
    - <builtin>.len
    - os.getcwd
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 224
    functionName: pip._internal.req.req_install.InstallRequirement.__repr__
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 229
    functionName: pip._internal.req.req_install.InstallRequirement.format_debug
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - <builtin>.vars
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.vars
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 242
    functionName: pip._internal.req.req_install.InstallRequirement.name
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.req.req_install.InstallRequirement
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - functools.cached_property
    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.cached_property
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 248
    functionName: pip._internal.req.req_install.InstallRequirement.supports_pyproject_editable
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pip._vendor.pyproject_hooks._impl.write_json
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.pyproject_hooks._in_process._in_proc_script_path
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.subprocess_runner
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - importlib.resources.as_file
    - time.time
    - pip._vendor.pyproject_hooks._impl.read_json
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._call_hook
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._supported_features
    - subprocess.check_call
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - pip._vendor.pyproject_hooks._impl.default_subprocess_runner
    - <builtin>.getattr
    - color_rgb.split
    - json.load
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.subprocess.runner_with_spinner_message.runner
    - plain_text.replace
    - os.pathsep.join
    - tempfile.TemporaryDirectory
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - data.get
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - json.dump
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - message
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 224
    functionName: pip._internal.utils.subprocess.runner_with_spinner_message
    functionSourceFile: ''
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - runner
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 134
    functionName: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.subprocess_runner
    functionSourceFile: ''
    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: 11
    functionLinenumber: 151
    functionName: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._supported_features
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 1
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pip._vendor.pyproject_hooks._impl.write_json
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.pyproject_hooks._in_process._in_proc_script_path
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - importlib.resources.as_file
    - time.time
    - pip._vendor.pyproject_hooks._impl.read_json
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._call_hook
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - subprocess.check_call
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._impl.default_subprocess_runner
    - color_rgb.split
    - json.load
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.subprocess.runner_with_spinner_message.runner
    - plain_text.replace
    - os.pathsep.join
    - tempfile.TemporaryDirectory
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - data.get
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - json.dump
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 260
    functionName: pip._internal.req.req_install.InstallRequirement.specifier
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 265
    functionName: pip._internal.req.req_install.InstallRequirement.is_direct
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 270
    functionName: pip._internal.req.req_install.InstallRequirement.is_pinned
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - <builtin>.len
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e0c5dc10>
    argNames:
    - self
    - extras_requested
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 279
    functionName: pip._internal.req.req_install.InstallRequirement.match_markers
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - _operators.get
    - <builtin>.isinstance
    - pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version
    - pip._vendor.packaging.markers.format_full_version
    - part.startswith
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.markers._eval_op
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - environment.get
    - _legacy_version_component_re.split
    - <builtin>.str
    - platform.python_implementation
    - pip._vendor.packaging.version._legacy_cmpkey
    - letter.lower
    - platform.release
    - op.serialize
    - <builtin>.tuple
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - platform.python_version_tuple
    - <builtin>.any
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - platform.machine
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.markers._evaluate_markers
    - platform.version
    - platform.system
    - pip._vendor.packaging.specifiers._IndividualSpecifier.contains
    - platform.python_version
    - parts.pop
    - groups.append
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.markers.Marker.evaluate
    - pip._vendor.packaging.markers.default_environment
    - current_environment.update
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.packaging.markers._get_env
    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: 297
    functionName: pip._internal.req.req_install.InstallRequirement.has_hash_options
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e0c5ae80>
    argNames:
    - self
    - trust_internet
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 306
    functionName: pip._internal.req.req_install.InstallRequirement.hashes
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - good_hashes.setdefault
    - hashes.items
    - <builtin>.sorted
    - pip._internal.utils.hashes.Hashes.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: good_hashes.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e50137c0>
    argNames:
    - self
    - hashes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 27
    functionName: pip._internal.utils.hashes.Hashes.__init__
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 6
    functionsReached:
    - hashes.items
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 333
    functionName: pip._internal.req.req_install.InstallRequirement.from_path
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - build_dir
    - autodelete
    - parallel_builds
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 348
    functionName: pip._internal.req.req_install.InstallRequirement.ensure_build_location
    functionSourceFile: pip._internal.req.req_install
    functionUses: 1
    functionsReached:
    - logger.debug
    - _tempdir_manager.enter_context
    - _canonicalize_regex.sub
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - os.path.join
    - os.path.realpath
    - os.makedirs
    - <builtin>.super
    - tempfile.mkdtemp
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - uuid.uuid4
    - os.mkdir
    - typing.cast
    - <builtin>.range
    - os.path.exists
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - os.path.split
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8bf32e0>
    - <ast.Name object at 0x7f30d8bf3160>
    - <ast.Constant object at 0x7f30d8bf3670>
    - <ast.Constant object at 0x7f30d8bf3460>
    - <ast.Constant object at 0x7f30f6bc6e80>
    argNames:
    - self
    - path
    - delete
    - kind
    - globally_managed
    - ignore_cleanup_errors
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 114
    functionName: pip._internal.utils.temp_dir.TempDirectory.__init__
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 34
    functionsReached:
    - <builtin>.super
    - tempfile.mkdtemp
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - logger.debug
    - os.mkdir
    - os.path.join
    - _tempdir_manager.enter_context
    - os.path.realpath
    - os.path.split
    - <builtin>.range
    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: uuid.uuid4
    functionSourceFile: uuid
    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: logger.debug
    functionSourceFile: <builtin>
    functionUses: 264
    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: 5
    functionLinenumber: 391
    functionName: pip._internal.req.req_install.InstallRequirement._set_requirement
    functionSourceFile: pip._internal.req.req_install
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - s.strip
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - urllib.parse.urlunparse
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.version._parse_letter_version
    - parts.pop
    - req.extras.asList
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - _legacy_version_replacement_map.get
    - warnings.warn
    - specifiers.split
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 42
    functionName: pip._vendor.packaging.version.parse
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 136
    functionsReached:
    - <builtin>.isinstance
    - part.startswith
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.reversed
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - requirement_string
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 100
    functionName: pip._vendor.packaging.requirements.Requirement.__init__
    functionSourceFile: pip._vendor.packaging.requirements
    functionUses: 50
    functionsReached:
    - <builtin>.super
    - req.extras.asList
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - urllib.parse.urlunparse
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - warnings.warn
    - <builtin>.set
    - <builtin>.frozenset
    - specifiers.split
    - parsed.add
    - s.strip
    - urllib.parse.urlparse
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    linkageType: pythonLinkage
    raised:
    - InvalidRequirement
    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: 4
    functionLinenumber: 413
    functionName: pip._internal.req.req_install.InstallRequirement.warn_on_mismatching_name
    functionSourceFile: pip._internal.req.req_install
    functionUses: 1
    functionsReached:
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - _canonicalize_regex.sub
    - <builtin>.set
    - s.strip
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - urllib.parse.urlunparse
    - typing.cast
    - req.extras.asList
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - warnings.warn
    - specifiers.split
    - urllib.parse.urlparse
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - use_user_site
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 431
    functionName: pip._internal.req.req_install.InstallRequirement.check_if_exists
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - val.lower
    - pip._internal.metadata.get_default_environment
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._internal.metadata.select_backend
    - pip._internal.metadata._should_use_importlib_metadata
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - typing.cast
    - contextlib.suppress
    - pip._internal.utils.misc.strtobool
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 69
    functionName: pip._internal.metadata.get_default_environment
    functionSourceFile: pip._internal.metadata
    functionUses: 40
    functionsReached:
    - val.lower
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._internal.metadata.select_backend
    - pip._internal.metadata._should_use_importlib_metadata
    - <builtin>.getattr
    - typing.cast
    - contextlib.suppress
    - pip._internal.utils.misc.strtobool
    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: 2
    functionLinenumber: 31
    functionName: pip._internal.utils.virtualenv.running_under_virtualenv
    functionSourceFile: pip._internal.utils.virtualenv
    functionUses: 47
    functionsReached:
    - pip._internal.utils.virtualenv._running_under_venv
    - <builtin>.getattr
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 470
    functionName: pip._internal.req.req_install.InstallRequirement.is_wheel
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 476
    functionName: pip._internal.req.req_install.InstallRequirement.is_wheel_from_cache
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 483
    functionName: pip._internal.req.req_install.InstallRequirement.unpacked_source_directory
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 490
    functionName: pip._internal.req.req_install.InstallRequirement.setup_py_path
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 497
    functionName: pip._internal.req.req_install.InstallRequirement.setup_cfg_path
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 504
    functionName: pip._internal.req.req_install.InstallRequirement.pyproject_toml_path
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - pip._internal.pyproject.make_pyproject_path
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - unpacked_source_directory
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 20
    functionName: pip._internal.pyproject.make_pyproject_path
    functionSourceFile: pip._internal.pyproject
    functionUses: 1
    functionsReached:
    - os.path.join
    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: 508
    functionName: pip._internal.req.req_install.InstallRequirement.load_pyproject_toml
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.__init__
    - pip._internal.req.req_install.InstallRequirement.load_pyproject_toml
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfd76730>
    - <ast.Constant object at 0x7f30dfd76760>
    - <ast.Constant object at 0x7f30dfd76790>
    argNames:
    - self
    - config_holder
    - source_dir
    - build_backend
    - backend_path
    - runner
    - python_executable
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 697
    functionName: pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.__init__
    functionSourceFile: pip._internal.utils.misc
    functionUses: 1
    functionsReached:
    - <builtin>.super
    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: 1
    functionLinenumber: 536
    functionName: pip._internal.req.req_install.InstallRequirement.isolated_editable_sanity_check
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - os.path.isfile
    linkageType: pythonLinkage
    raised:
    - InstallationError
    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: 10
    functionLinenumber: 557
    functionName: pip._internal.req.req_install.InstallRequirement.prepare_metadata
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - parsed.add
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - <builtin>.str
    - pip._internal.utils.temp_dir.TempDirectory._create
    - err.splitlines
    - <builtin>.tuple
    - s.strip
    - os.path.realpath
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - typing.cast.verbose
    - <builtin>.sorted
    - os.getcwd
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.subprocess_runner
    - pip._vendor.rich.control.strip_control_codes
    - f.endswith
    - proc.wait
    - os.path.split
    - urllib.parse.urlparse
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - pip._internal.operations.build.metadata_legacy.generate_metadata
    - pip._internal.req.req_install.InstallRequirement._set_requirement
    - RE_TAGS.finditer
    - pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.prepare_metadata_for_build_wheel
    - marshal.dumps
    - part.startswith
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - pip._internal.utils.misc.display_path
    - time.time
    - pip._internal.utils.setuptools_build.make_setuptools_egg_info_args
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - proc.stdout.readline
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - env.pop
    - <builtin>.super
    - abc.ABC.background_color.lower
    - urllib.parse.urlunparse
    - ast.literal_eval
    - env.update
    - pip._internal.operations.build.metadata_editable.generate_editable_metadata
    - pip._vendor.rich.style.Style.parse
    - <builtin>.iter
    - typing.NamedTuple.lower
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - logger.getEffectiveLevel
    - match.group
    - os.path.normcase
    - warnings.warn
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.req.req_install.InstallRequirement.assert_source_matches_version
    - typing.cast.critical
    - pip._internal.operations.build.metadata.generate_metadata
    - pip._vendor.packaging.version._legacy_cmpkey
    - shlex.quote
    - <builtin>.range
    - <builtin>.isinstance
    - pip._internal.operations.build.metadata_legacy._find_egg_info
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - version.lower
    - part.zfill
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - color_match.groups
    - _SETUPTOOLS_SHIM.format
    - <builtin>.list
    - sys.stdout.isatty
    - tempfile.mkdtemp
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - os.mkdir
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - pip._internal.utils.subprocess.call_subprocess
    - parts.pop
    - req.extras.asList
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - typing.cast.warning
    - <builtin>.int
    - part.isdigit
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - os.listdir
    - all_output.append
    - _legacy_version_replacement_map.get
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - specifiers.split
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.prepare_metadata_for_build_editable
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - logger.debug
    - <builtin>.frozenset
    - _tempdir_manager.enter_context
    - pip._vendor.packaging.version.parse
    - plain_text.replace
    - _legacy_version_component_re.split
    - style.strip
    - itertools.combinations_with_replacement
    - pip._vendor.rich.markup._parse
    - letter.lower
    - <builtin>.set
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - pip._internal.req.req_install.InstallRequirement.warn_on_mismatching_name
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - build_env
    - backend
    - details
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 17
    functionName: pip._internal.operations.build.metadata_editable.generate_editable_metadata
    functionSourceFile: pip._internal.operations.build.metadata_editable
    functionUses: 1
    functionsReached:
    - pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.prepare_metadata_for_build_editable
    - <builtin>.super
    - tempfile.mkdtemp
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - logger.debug
    - os.mkdir
    - os.path.join
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.subprocess_runner
    - _tempdir_manager.enter_context
    - os.path.realpath
    - os.path.split
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - MetadataGenerationFailed
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - build_env
    - backend
    - details
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 17
    functionName: pip._internal.operations.build.metadata.generate_metadata
    functionSourceFile: pip._internal.operations.build.metadata
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - tempfile.mkdtemp
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - logger.debug
    - pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.prepare_metadata_for_build_wheel
    - os.mkdir
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.subprocess_runner
    - os.path.join
    - _tempdir_manager.enter_context
    - os.path.realpath
    - os.path.split
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - MetadataGenerationFailed
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - build_env
    - setup_py_path
    - source_dir
    - isolated
    - details
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 36
    functionName: pip._internal.operations.build.metadata_legacy.generate_metadata
    functionSourceFile: pip._internal.operations.build.metadata_legacy
    functionUses: 1
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - pip._internal.utils.temp_dir.TempDirectory._create
    - err.splitlines
    - os.path.realpath
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - f.endswith
    - proc.wait
    - os.path.split
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - time.time
    - pip._internal.utils.setuptools_build.make_setuptools_egg_info_args
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - env.pop
    - <builtin>.super
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.range
    - <builtin>.isinstance
    - pip._internal.operations.build.metadata_legacy._find_egg_info
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - color_match.groups
    - _SETUPTOOLS_SHIM.format
    - sys.stdout.isatty
    - tempfile.mkdtemp
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - os.mkdir
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - os.listdir
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - logger.debug
    - _tempdir_manager.enter_context
    - plain_text.replace
    - style.strip
    - itertools.combinations_with_replacement
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised:
    - MetadataGenerationFailed
    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: 2
    functionLinenumber: 622
    functionName: pip._internal.req.req_install.InstallRequirement.assert_source_matches_version
    functionSourceFile: pip._internal.req.req_install
    functionUses: 1
    functionsReached:
    - pip._internal.utils.misc.display_path
    - os.path.normcase
    - <builtin>.len
    - os.getcwd
    - logger.debug
    - os.path.abspath
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 602
    functionName: pip._internal.req.req_install.InstallRequirement.metadata
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - val.lower
    - _canonicalize_regex.sub
    - typing.cast.Distribution.from_wheel
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - pip._internal.metadata.get_directory_distribution
    - <builtin>.bool
    - contextlib.suppress
    - pip._internal.metadata.select_backend
    - pip._internal.metadata.get_wheel_distribution
    - pip._internal.metadata._should_use_importlib_metadata
    - <builtin>.getattr
    - typing.cast.Distribution.from_directory
    - typing.cast
    - pip._internal.req.req_install.InstallRequirement.get_dist
    - pip._internal.utils.misc.strtobool
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 608
    functionName: pip._internal.req.req_install.InstallRequirement.get_dist
    functionSourceFile: pip._internal.req.req_install
    functionUses: 1
    functionsReached:
    - val.lower
    - _canonicalize_regex.sub
    - typing.cast.Distribution.from_wheel
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - pip._internal.metadata.get_directory_distribution
    - <builtin>.bool
    - pip._internal.metadata.select_backend
    - pip._internal.metadata.get_wheel_distribution
    - pip._internal.metadata._should_use_importlib_metadata
    - <builtin>.getattr
    - typing.cast.Distribution.from_directory
    - typing.cast
    - contextlib.suppress
    - pip._internal.utils.misc.strtobool
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - directory
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 89
    functionName: pip._internal.metadata.get_directory_distribution
    functionSourceFile: pip._internal.metadata
    functionUses: 2
    functionsReached:
    - val.lower
    - <builtin>.bool
    - pip._internal.metadata.select_backend
    - pip._internal.metadata._should_use_importlib_metadata
    - <builtin>.getattr
    - typing.cast.Distribution.from_directory
    - typing.cast
    - contextlib.suppress
    - pip._internal.utils.misc.strtobool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 678
    functionName: pip._internal.metadata.base.FilesystemWheel.__init__
    functionSourceFile: ''
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - wheel
    - canonical_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 98
    functionName: pip._internal.metadata.get_wheel_distribution
    functionSourceFile: pip._internal.metadata
    functionUses: 25
    functionsReached:
    - val.lower
    - typing.cast.Distribution.from_wheel
    - <builtin>.bool
    - pip._internal.metadata.select_backend
    - pip._internal.metadata._should_use_importlib_metadata
    - <builtin>.getattr
    - typing.cast
    - contextlib.suppress
    - pip._internal.utils.misc.strtobool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30c83b13d0>
    - <ast.Constant object at 0x7f30c83b13a0>
    argNames:
    - self
    - parent_dir
    - autodelete
    - parallel_builds
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 640
    functionName: pip._internal.req.req_install.InstallRequirement.ensure_has_source_dir
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - logger.debug
    - _tempdir_manager.enter_context
    - _canonicalize_regex.sub
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - os.path.join
    - os.path.realpath
    - os.makedirs
    - <builtin>.super
    - tempfile.mkdtemp
    - pip._internal.req.req_install.InstallRequirement.ensure_build_location
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - uuid.uuid4
    - os.mkdir
    - typing.cast
    - <builtin>.range
    - os.path.exists
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - os.path.split
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - archive_source
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 662
    functionName: pip._internal.req.req_install.InstallRequirement.needs_unpacked_archive
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 666
    functionName: pip._internal.req.req_install.InstallRequirement.ensure_pristine_source_checkout
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - path.lstrip
    - logger.critical
    - <builtin>.bool
    - tarfile.is_tarfile
    - pip._internal.utils.unpacking.unzip_file
    - pip._internal.utils.unpacking.is_within_directory
    - zipfp.close
    - path.split
    - shutil.copyfileobj
    - tar.extractfile
    - zip.open
    - filename.lower
    - zip.namelist
    - <builtin>.str
    - tar._extract_member
    - pip._internal.utils.unpacking.unpack_file
    - fn.endswith
    - os.path.join
    - zipfile.is_zipfile
    - os.path.realpath
    - tar.getmembers
    - pip._internal.utils.unpacking.untar_file
    - os.makedirs
    - filename.endswith
    - os.chmod
    - member.issym
    - zipfile.ZipFile
    - os.path.isfile
    - os.umask
    - pip._internal.utils.unpacking.has_leading_dir
    - zip.infolist
    - tar.utime
    - os.path.isdir
    - pip._internal.utils.misc.is_installable_dir
    - tar.close
    - os.path.abspath
    - stat.S_ISREG
    - member.isdir
    - os.path.commonprefix
    - fp.close
    - pip._internal.utils.unpacking.current_umask
    - pip._internal.utils.unpacking.split_leading_dir
    - os.path.dirname
    - <builtin>.open
    - pip._internal.utils.unpacking.zip_item_is_executable
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - tarfile.open
    - logger.warning
    - pip._internal.utils.misc.ensure_dir
    - path.find
    linkageType: pythonLinkage
    raised:
    - PreviousBuildDirError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fce38040>
    argNames:
    - filename
    - location
    - content_type
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 229
    functionName: pip._internal.utils.unpacking.unpack_file
    functionSourceFile: pip._internal.utils.unpacking
    functionUses: 9
    functionsReached:
    - path.lstrip
    - logger.critical
    - <builtin>.bool
    - tarfile.is_tarfile
    - pip._internal.utils.unpacking.unzip_file
    - pip._internal.utils.unpacking.is_within_directory
    - zipfp.close
    - path.split
    - shutil.copyfileobj
    - tar.extractfile
    - zip.open
    - filename.lower
    - zip.namelist
    - tar._extract_member
    - fn.endswith
    - os.path.join
    - zipfile.is_zipfile
    - os.path.realpath
    - tar.getmembers
    - pip._internal.utils.unpacking.untar_file
    - os.makedirs
    - filename.endswith
    - os.chmod
    - member.issym
    - zipfile.ZipFile
    - os.umask
    - pip._internal.utils.unpacking.has_leading_dir
    - zip.infolist
    - tar.utime
    - tar.close
    - os.path.abspath
    - stat.S_ISREG
    - member.isdir
    - os.path.commonprefix
    - fp.close
    - pip._internal.utils.unpacking.current_umask
    - pip._internal.utils.unpacking.split_leading_dir
    - os.path.dirname
    - <builtin>.open
    - pip._internal.utils.unpacking.zip_item_is_executable
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - tarfile.open
    - logger.warning
    - pip._internal.utils.misc.ensure_dir
    - path.find
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 301
    functionName: pip._internal.utils.misc.is_installable_dir
    functionSourceFile: pip._internal.utils.misc
    functionUses: 38
    functionsReached:
    - os.path.isfile
    - os.path.isdir
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 684
    functionName: pip._internal.req.req_install.InstallRequirement.update_editable
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.utils.misc.hide_url
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - logger.debug
    - pip._internal.utils.misc._transform_url
    - urllib.parse.urlunsplit
    - vcs_backend.obtain
    - pip._internal.utils.misc.HiddenText.__init__
    - pip._internal.utils.misc._redact_netloc
    - typing.cast
    - pip._internal.utils.misc.split_auth_from_netloc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - scheme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 247
    functionName: pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    functionSourceFile: ''
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 608
    functionName: pip._internal.utils.misc.hide_url
    functionSourceFile: pip._internal.utils.misc
    functionUses: 14
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc.HiddenText.__init__
    - pip._internal.utils.misc._redact_netloc
    - typing.cast
    - pip._internal.utils.misc.split_auth_from_netloc
    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: vcs_backend.obtain
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30c83c65e0>
    - <ast.Constant object at 0x7f30c83c65b0>
    argNames:
    - self
    - auto_confirm
    - verbose
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 704
    functionName: pip._internal.req.req_install.InstallRequirement.uninstall
    functionSourceFile: pip._internal.req.req_install
    functionUses: 1
    functionsReached:
    - pathlib.Path
    - typing.cast.Environment.default
    - sysconfig.get_paths
    - variables.get
    - os.path.samefile
    - pip._internal.metadata.get_default_environment
    - pip._internal.locations._sysconfig.get_bin_prefix
    - os.path.realpath
    - os.path.expanduser
    - pip._internal.req.req_uninstall.UninstallPathSet.__init__
    - re.sub
    - pip._internal.metadata.select_backend
    - _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match
    - os.path.normpath
    - pip._internal.locations.get_bin_prefix
    - logger.log
    - dist.iter_entry_points
    - pip._internal.req.req_uninstall.UninstallPathSet.from_dist.iter_scripts_to_remove
    - <builtin>.setattr
    - pip._internal.locations.base.get_major_minor_version
    - pip._internal.utils.egg_link.egg_link_path_from_location
    - typing.cast.debug
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - dist.iter_declared_entries
    - uninstalled_pathset.remove
    - paths_to_remove.add
    - pip._internal.req.req_uninstall.uninstallation_paths
    - pip._internal.locations._distutils.get_bin_prefix
    - dist.iter_distutils_script_names
    - pip._internal.utils.egg_link._egg_link_names
    - pip._internal.utils.virtualenv._get_pyvenv_cfg_lines
    - os.path.join
    - pip._internal.req.req_uninstall._script_names
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - match.group
    - os.path.exists
    - os.path.normcase
    - os.path.dirname
    - f.read
    - pip._internal.req.req_uninstall.UninstallPathSet.from_dist
    - functools.lru_cache
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.locations._sysconfig._infer_prefix
    - path.endswith
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - fh.readline
    - os.path.isabs
    - pip._internal.utils.virtualenv._no_global_under_venv
    - os.path.isfile
    - sysconfig.get_config_var
    - pip._internal.locations._sysconfig._infer_user
    - namespace_packages.splitlines
    - typing.cast
    - pip._internal.req.req_uninstall.StashedUninstallPathSet.__init__
    - pip._internal.locations._warn_mismatched
    - typing.cast.info
    - sites.append
    - dist.is_file
    - <builtin>.open
    - <builtin>.getattr
    - paths_to_remove.add_pth
    - contextlib.suppress
    - sysconfig.get_path
    - val.lower
    - paths_to_remove._normalize_path_cached
    - pip._internal.utils.virtualenv.virtualenv_no_global
    - pip._internal.locations._warn_if_mismatch
    - <builtin>.set
    - pip._internal.locations.get_bin_user
    - dist.read_text
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.misc.strtobool
    - pip._internal.utils.virtualenv._no_global_under_legacy_virtualenv
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._internal.locations._sysconfig.get_scheme
    - info_location.endswith
    - logger.info
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - pip._internal.locations.base.is_osx_framework
    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.info
    functionSourceFile: <builtin>
    functionUses: 125
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 18
    IfCount: 13
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 434
    functionName: pip._internal.req.req_uninstall.UninstallPathSet.from_dist
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 2
    functionsReached:
    - pathlib.Path
    - sysconfig.get_paths
    - variables.get
    - os.path.samefile
    - pip._internal.locations._sysconfig.get_bin_prefix
    - os.path.realpath
    - os.path.expanduser
    - pip._internal.req.req_uninstall.UninstallPathSet.__init__
    - re.sub
    - _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match
    - os.path.normpath
    - pip._internal.locations.get_bin_prefix
    - logger.log
    - dist.iter_entry_points
    - pip._internal.req.req_uninstall.UninstallPathSet.from_dist.iter_scripts_to_remove
    - <builtin>.setattr
    - pip._internal.locations.base.get_major_minor_version
    - pip._internal.utils.egg_link.egg_link_path_from_location
    - typing.cast.debug
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - dist.iter_declared_entries
    - paths_to_remove.add
    - pip._internal.req.req_uninstall.uninstallation_paths
    - pip._internal.locations._distutils.get_bin_prefix
    - dist.iter_distutils_script_names
    - pip._internal.utils.egg_link._egg_link_names
    - pip._internal.utils.virtualenv._get_pyvenv_cfg_lines
    - os.path.join
    - pip._internal.req.req_uninstall._script_names
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - match.group
    - os.path.exists
    - os.path.normcase
    - os.path.dirname
    - f.read
    - functools.lru_cache
    - <builtin>.bool
    - pip._internal.locations._sysconfig._infer_prefix
    - path.endswith
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - fh.readline
    - os.path.isabs
    - pip._internal.utils.virtualenv._no_global_under_venv
    - os.path.isfile
    - sysconfig.get_config_var
    - pip._internal.locations._sysconfig._infer_user
    - namespace_packages.splitlines
    - pip._internal.req.req_uninstall.StashedUninstallPathSet.__init__
    - pip._internal.locations._warn_mismatched
    - typing.cast.info
    - sites.append
    - dist.is_file
    - <builtin>.open
    - <builtin>.getattr
    - paths_to_remove.add_pth
    - sysconfig.get_path
    - paths_to_remove._normalize_path_cached
    - pip._internal.utils.virtualenv.virtualenv_no_global
    - pip._internal.locations._warn_if_mismatch
    - <builtin>.set
    - pip._internal.locations.get_bin_user
    - dist.read_text
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.virtualenv._no_global_under_legacy_virtualenv
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._internal.locations._sysconfig.get_scheme
    - info_location.endswith
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - pip._internal.locations.base.is_osx_framework
    linkageType: pythonLinkage
    raised:
    - UninstallationError
    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: uninstalled_pathset.remove
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - path
    - parentdir
    - rootdir
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 730
    functionName: pip._internal.req.req_install.InstallRequirement._get_archive_name
    functionSourceFile: pip._internal.req.req_install
    functionUses: 1
    functionsReached:
    - name.replace
    - name.startswith
    - <builtin>.len
    - pip._internal.req.req_install.InstallRequirement._get_archive_name._clean_zip_name
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - name
    - prefix
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 731
    functionName: pip._internal.req.req_install.InstallRequirement._get_archive_name._clean_zip_name
    functionSourceFile: pip._internal.req.req_install
    functionUses: 2
    functionsReached:
    - name.startswith
    - name.replace
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 9
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - build_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 744
    functionName: pip._internal.req.req_install.InstallRequirement.archive
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - name.replace
    - pip._internal.utils.misc.ask_path_exists
    - pip._internal.utils.misc.ask
    - os.environ.get
    - <builtin>.input
    - os.walk
    - pip._internal.utils.misc._check_no_input
    - pip._internal.utils.misc.display_path
    - <builtin>.str
    - shutil.move
    - os.path.join
    - zipfile.ZipFile
    - sys.exit
    - <builtin>.len
    - os.getcwd
    - pip._internal.req.req_install.InstallRequirement._get_archive_name._clean_zip_name
    - os.path.abspath
    - os.remove
    - name.startswith
    - os.path.exists
    - os.path.normcase
    - pip._internal.req.req_install.InstallRequirement._get_archive_name
    - <builtin>.print
    - response.strip
    - logger.info
    - zip_output.write
    - zip_output.writestr
    - pip._internal.utils.misc.backup_dir
    - zipfile.ZipInfo
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - message
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 218
    functionName: pip._internal.utils.misc.ask_path_exists
    functionSourceFile: pip._internal.utils.misc
    functionUses: 3
    functionsReached:
    - pip._internal.utils.misc._check_no_input
    - pip._internal.utils.misc.ask
    - response.strip
    - <builtin>.print
    - <builtin>.input
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.remove
    functionSourceFile: os
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f114f7c0>
    argNames:
    - dir
    - ext
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 207
    functionName: pip._internal.utils.misc.backup_dir
    functionSourceFile: pip._internal.utils.misc
    functionUses: 3
    functionsReached:
    - os.path.exists
    - <builtin>.str
    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: shutil.move
    functionSourceFile: shutil
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.walk
    functionSourceFile: os
    functionUses: 25
    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: zipfile.ZipInfo
    functionSourceFile: zipfile
    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: zip_output.writestr
    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: zip_output.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30c83d8790>
    - <ast.Constant object at 0x7f30c83d8760>
    - <ast.Constant object at 0x7f30c83d8730>
    - <ast.Constant object at 0x7f30c83d8700>
    - <ast.Constant object at 0x7f30c83d86d0>
    - <ast.Constant object at 0x7f30c83d86a0>
    - <ast.Constant object at 0x7f30c83d8670>
    argNames:
    - self
    - global_options
    - root
    - home
    - prefix
    - warn_script_location
    - use_user_site
    - pycompile
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 811
    functionName: pip._internal.req.req_install.InstallRequirement.install
    functionSourceFile: pip._internal.req.req_install
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._internal.operations.install.wheel._install_wheel.root_scheme_file_maker
    - installer_file.write
    - <builtin>.dict
    - source.read
    - itertools.chain
    - pip._internal.utils.filesystem.adjacent_tmp_file
    - err.splitlines
    - flags.split
    - pip._internal.operations.install.wheel.get_csv_rows_for_installed
    - <builtin>.tuple
    - java.lang.System.getProperty
    - pip._internal.operations.install.wheel._record_to_fs_path
    - logger.log
    - console.copy
    - old_v.name.startswith
    - pip._internal.locations._looks_like_debian_scheme
    - proc.wait
    - direct_url_file.write
    - f.seek
    - distutils.dist.Distribution.get_option_dict
    - proc.communicate
    - part.startswith
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - grouped_by_dir.items
    - scheme.update
    - warn_for.items
    - abc.ABC.background_color.lower
    - gui.items
    - os.chmod
    - ast.literal_eval
    - <builtin>.map
    - h.digest
    - env.update
    - p.split
    - itertools.chain.save
    - f.read
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - shlex.quote
    - last_line_fmt.format
    - <builtin>.isinstance
    - <builtin>.__import__
    - original_word.lower
    - filenames.extend
    - part.zfill
    - itertools.starmap
    - pip._internal.locations._distutils.distutils_scheme
    - STYLE_ATTRIBUTES.get
    - importlib.util.cache_from_source
    - pip._vendor.distlib.scripts.ScriptMaker._get_alternate_executable
    - sys.executable.encode
    - pip._vendor.distlib.util.convert_path
    - pip._internal.operations.install.wheel._install_wheel
    - entry.suffix.split
    - os.path.relpath
    - _osx_support.get_platform_osx
    - pip._vendor.distlib.scripts.ScriptMaker.make_multiple
    - compileall.compile_file
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - parts.pop
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - part.isdigit
    - <builtin>.open
    - color_rgb.split
    - val.lower
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - format_str.format
    - distutils.sysconfig.get_config_vars
    - re.match
    - pip._internal.utils.misc.captured_output
    - console.pop
    - typing.cast.Distribution.from_wheel
    - variants.get
    - m.group
    - email.parser.Parser
    - pip._internal.models.scheme.Scheme.__init__
    - io.StringIO.__init__
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.distlib.util.ExportEntry.__init__
    - pip._internal.locations._log_context
    - platlib.replace
    - os.path.splitdrive
    - zipfile.ZipInfo
    - shebang.decode
    - pip._vendor.rich.text.Text.__init__
    - contextlib.contextmanager
    - sysconfig.get_paths
    - pip._vendor.rich.style.Style.null
    - f.close
    - variables.get
    - _canonicalize_regex.sub
    - <builtin>.str
    - pip._vendor.distlib.scripts.ScriptMaker._build_shebang
    - pip._internal.utils.misc.read_chunks
    - <builtin>.hash
    - typing.cast.verbose
    - pip._internal.metadata.select_backend
    - distribution.read_text
    - pip._internal.utils.wheel.parse_wheel
    - <builtin>.sorted
    - zf.writestr
    - pip._vendor.rich.style.Style.__init__._make_color
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.operations.install.wheel.install_wheel
    - pip._internal.operations.install.wheel.req_error_context
    - dist.iter_entry_points
    - pip._internal.locations._distutils.get_scheme
    - tempfile.NamedTemporaryFile
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - os.path.split
    - f.strip
    - machine.replace
    - tag.name.startswith
    - args.encode
    - pathname.split
    - marshal.dumps
    - pip._vendor.distlib.scripts.ScriptMaker._make_script
    - itertools.chain.dest_path.replace
    - pip._vendor.distlib.scripts.ScriptMaker._get_script_text
    - os.path.splitext
    - pip._vendor.packaging.version.Version.__init__
    - filenames.append
    - part.lower
    - base64.urlsafe_b64encode.decode
    - path.count
    - <builtin>.iter
    - pip._vendor.distlib.util.get_executable
    - warning_contexts.append
    - os.uname
    - pip._vendor.distlib.resources.finder
    - struct.calcsize
    - m.groupdict
    - pip._internal.operations.install.wheel._install_wheel.pyc_output_path
    - writer.writerows
    - pip._internal.operations.install.wheel._raise_for_invalid_entrypoint
    - pip._internal.utils.setuptools_build.make_setuptools_develop_args
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - paths.remove
    - distutils.dist.Distribution.find_config_files
    - pip._internal.locations._sysconfig._infer_prefix
    - h.update
    - csv.reader
    - line.rstrip
    - options.get
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - metadata.get
    - pip._vendor.distlib.scripts.ScriptMaker.get_script_filenames
    - out.splitlines
    - pip._internal.operations.install.wheel._install_wheel.pyc_source_file_paths
    - __name__.rsplit
    - _SETUPTOOLS_SHIM.format
    - pip._vendor.distlib.util.get_platform
    - <builtin>.any
    - version_text.strip
    - pip._internal.locations._looks_like_slackware_scheme
    - pip._internal.locations._looks_like_bpo_44860
    - os.path.isfile
    - typing.cast.flush
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - FIRST_LINE_RE.match
    - pip._vendor.distlib.scripts.ScriptMaker._is_shell
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - os.remove
    - all_output.append
    - _legacy_version_replacement_map.get
    - pip._vendor.distlib.scripts.ScriptMaker.make
    - pip._vendor.distlib.scripts.ScriptMaker.__init__
    - pip._internal.operations.install.wheel._install_wheel.record_installed
    - contextlib.suppress
    - pip._vendor.distlib.scripts.enquote_executable
    - <builtin>.type
    - console.items
    - sysconfig.is_python_build
    - re.compile
    - wheel_contents.decode
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - e.startswith
    - pip._internal.utils.misc.StreamWrapper.from_stream
    - <builtin>.set
    - stdout.getvalue
    - msg_lines.append
    - pip._internal.utils.subprocess.format_command_args
    - os.umask
    - pip._vendor.rich.markup.render
    - pip._internal.operations.install.wheel._fs_to_record_path
    - pip._internal.locations.base.change_root
    - <builtin>.next
    - RE_HANDLER.match
    - pip._internal.utils.misc.partition
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._internal.locations.base.is_osx_framework
    - scripts_to_generate.append
    - pathlib.Path
    - pip._internal.operations.install.wheel.get_entrypoints
    - os.linesep.encode
    - operator.attrgetter
    - os.rename
    - warnings.catch_warnings
    - installed_rows.append
    - result.add
    - spinner.finish
    - _executable.startswith
    - pip._internal.utils.logging.indent_log
    - subprocess.Popen
    - os.path.normpath
    - pip._internal.utils.wheel.read_wheel_metadata_file
    - pip._vendor.distlib.util.get_host_platform
    - pip._internal.utils.unpacking.current_umask
    - os.path.basename
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - <builtin>.filter
    - distutils.dist.Distribution.get_command_obj
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - RE_TAGS.finditer
    - pip._internal.operations.install.wheel._install_wheel._generate_file
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - parts.append
    - proc.stdout.readline
    - pip._internal.locations._looks_like_red_hat_scheme
    - new_v.name.startswith
    - base64.urlsafe_b64encode
    - env.pop
    - zipfile.ZipFile
    - email.parser.Parser.parsestr
    - typing.NamedTuple.lower
    - not_warn_dirs.append
    - match.span
    - os.path.dirname
    - pip._internal.locations._looks_like_red_hat_lib
    - RE_COLOR.match
    - proc.stdout.close
    - pip._vendor.distlib.util.in_venv
    - io.BytesIO.getvalue
    - f.readline
    - shebang.endswith
    - pip._vendor.rich.text.Text.from_markup
    - version.lower
    - pip._internal.locations.get_scheme
    - os.environ.get
    - collections.defaultdict
    - sys.executable.split
    - proc.stdin.close
    - <builtin>.list
    - pyc_path.replace
    - pip._internal.operations.install.wheel._install_wheel.data_scheme_file_maker
    - pip._vendor.distlib.util.FileOperator.__init__
    - sysconfig.get_config_var
    - pip._vendor.rich.color.Color.parse
    - sysconfig.get_config_vars
    - direct_url.to_json
    - pip._internal.locations._warn_mismatched
    - os.fsync
    - pip._vendor.distlib.scripts.ScriptMaker._get_launcher
    - installed.pop
    - <builtin>.getattr
    - sys.platform.startswith
    - pip._vendor.distlib.util.FileOperator._init_record
    - logger.debug
    - itertools.tee
    - record_text.splitlines
    - pip._internal.operations.install.wheel.get_console_script_specs
    - plain_text.replace
    - sys.version.lower
    - changed.add
    - os.fsdecode
    - pip._vendor.rich.markup._parse
    - letter.lower
    - typing.cast.fileno
    - style_definition.split
    - os.environ.copy
    - installed.values
    - style_definition.strip
    - generated.append
    - pip._vendor.packaging.version._parse_local_version
    - tag_text.partition
    - fp.read
    - pip._internal.locations._sysconfig.get_scheme
    - pip._vendor.distlib.scripts.ScriptMaker._get_shebang
    - pip._vendor.distlib.scripts.ScriptMaker._fix_jython_executable
    - generated.extend
    - _aix_support.aix_platform
    - handler_match.groups
    - path.split
    - typing.cast.error
    - cmd.finalize_options
    - match.groups
    - itertools.dropwhile
    - warnings.filterwarnings
    - distutils.command.install.install
    - rel_re.match
    - itertools.filterfalse
    - pip._internal.operations.install.wheel._normalized_outrows
    - time.gmtime
    - unpatched.replace
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - sys.executable.startswith
    - full_installed_path.endswith
    - <builtin>.setattr
    - scripts_to_generate.extend
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.distlib.util.get_export_entry
    - pip._internal.operations.install.wheel.message_about_scripts_not_on_PATH
    - pip._internal.utils.wheel.wheel_version
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.distlib.scripts.ScriptMaker._write_script
    - <builtin>.super
    - source.namelist
    - pip._vendor.rich.style.Style.parse
    - pip._internal.utils.wheel.check_compatibility
    - os.path.abspath
    - pip._internal.operations.install.wheel.csv_io_kwargs
    - pip._internal.utils.logging.get_indentation
    - pip._internal.operations.install.wheel.rehash
    - match.group
    - pip._internal.operations.install.wheel.PipScriptMaker.make
    - os.path.exists
    - os.path.normcase
    - warnings.warn
    - typing.cast.startswith
    - typing.cast.critical
    - _finder_registry.get
    - pip._vendor.rich.style.Style.normalize
    - ANSI_COLOR_NAMES.get
    - spinner.spin
    - csv.writer
    - pip._internal.utils.subprocess.reveal_command_args
    - os.path.isabs
    - fn.replace
    - file.read
    - p.endswith
    - color_match.groups
    - osname.lower
    - <builtin>.len
    - pip._internal.locations._sysconfig._infer_user
    - pip._internal.utils.wheel.wheel_dist_info_dir
    - tokenize.detect_encoding
    - pip._internal.operations.install.editable_legacy.install_editable
    - style_stack.append
    - <builtin>.all
    - wheel_zip.namelist
    - version.split
    - sysconfig.get_path
    - pip._internal.utils.wheel.wheel_metadata
    - pip._internal.operations.install.wheel.wheel_root_is_purelib
    - pip._vendor.distlib.scripts.ScriptMaker._copy_script
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - style.strip
    - pip._internal.metadata.get_wheel_distribution
    - ENTRY_RE.search
    - first_line.replace
    - pip._internal.utils.misc.captured_stdout
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._internal.locations._sysconfig._infer_home
    - random.randint
    - hashlib.sha256
    - pip._internal.utils.misc.strtobool
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - s.endswith
    - outname.endswith
    - <builtin>.reversed
    - logger.info
    - style_stack.pop
    - pip._internal.utils.misc.hash_file
    - sys.executable.lower
    - distutils.dist.Distribution
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 4
    IfCount: 12
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30e079b220>
    - <ast.Constant object at 0x7f30e079b0d0>
    - <ast.Constant object at 0x7f30e079b9a0>
    - <ast.Constant object at 0x7f30e079bc10>
    - <ast.Constant object at 0x7f30e079b6a0>
    argNames:
    - dist_name
    - user
    - home
    - root
    - isolated
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 230
    functionName: pip._internal.locations.get_scheme
    functionSourceFile: pip._internal.locations
    functionUses: 19
    functionsReached:
    - pathlib.Path
    - sysconfig.get_paths
    - cmd.finalize_options
    - variables.get
    - itertools.dropwhile
    - <builtin>.str
    - distutils.command.install.install
    - <builtin>.tuple
    - unpatched.replace
    - os.path.normpath
    - logger.log
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.locations._distutils.get_scheme
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - <builtin>.setattr
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - old_v.name.startswith
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.locations._looks_like_debian_scheme
    - logger.warning
    - <builtin>.hasattr
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - part.startswith
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._looks_like_red_hat_scheme
    - new_v.name.startswith
    - part.lower
    - os.path.abspath
    - warning_contexts.append
    - match.group
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - version.lower
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - os.path.isabs
    - p.endswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - pip._internal.locations._looks_like_bpo_44860
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - parts.pop
    - pip._internal.locations._warn_mismatched
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.getattr
    - <builtin>.all
    - format_str.format
    - sysconfig.is_python_build
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - letter.lower
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 9
    argDefaultValues: []
    argNames:
    - global_options
    - prefix
    - home
    - use_user_site
    - name
    - setup_py_path
    - isolated
    - build_env
    - unpacked_source_directory
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 14
    functionName: pip._internal.operations.install.editable_legacy.install_editable
    functionSourceFile: pip._internal.operations.install.editable_legacy
    functionUses: 1
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - pip._internal.utils.logging.indent_log
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._internal.utils.logging.get_indentation
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - pip._internal.utils.setuptools_build.make_setuptools_develop_args
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - _SETUPTOOLS_SHIM.format
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - logger.info
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30e34c7e20>
    - <ast.Constant object at 0x7f30e34c7e50>
    - <ast.Constant object at 0x7f30e34c7e80>
    - <ast.Constant object at 0x7f30e34c7eb0>
    argNames:
    - name
    - wheel_path
    - scheme
    - req_description
    - pycompile
    - warn_script_location
    - direct_url
    - requested
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 711
    functionName: pip._internal.operations.install.wheel.install_wheel
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 1
    functionsReached:
    - pip._vendor.distlib.scripts.ScriptMaker._fix_jython_executable
    - contextlib.contextmanager
    - pip._internal.operations.install.wheel.get_entrypoints
    - os.linesep.encode
    - generated.extend
    - _aix_support.aix_platform
    - os.rename
    - path.split
    - pip._internal.operations.install.wheel._install_wheel.root_scheme_file_maker
    - installer_file.write
    - warnings.catch_warnings
    - f.close
    - <builtin>.dict
    - source.read
    - _canonicalize_regex.sub
    - warnings.filterwarnings
    - itertools.chain
    - <builtin>.str
    - pip._internal.utils.filesystem.adjacent_tmp_file
    - installed_rows.append
    - rel_re.match
    - flags.split
    - pip._internal.operations.install.wheel.get_csv_rows_for_installed
    - <builtin>.tuple
    - itertools.filterfalse
    - result.add
    - pip._vendor.distlib.scripts.ScriptMaker._build_shebang
    - _executable.startswith
    - pip._internal.utils.misc.read_chunks
    - pip._internal.operations.install.wheel._normalized_outrows
    - java.lang.System.getProperty
    - time.gmtime
    - pip._internal.metadata.select_backend
    - distribution.read_text
    - pip._internal.utils.wheel.parse_wheel
    - <builtin>.sorted
    - pip._internal.operations.install.wheel._record_to_fs_path
    - zf.writestr
    - os.path.normpath
    - dist.iter_entry_points
    - pip._internal.operations.install.wheel.req_error_context
    - pip._internal.utils.wheel.read_wheel_metadata_file
    - tempfile.NamedTemporaryFile
    - pip._vendor.distlib.util.get_host_platform
    - console.copy
    - pip._internal.utils.unpacking.current_umask
    - os.path.basename
    - sys.executable.startswith
    - <builtin>.setattr
    - pip._internal.locations.base.get_major_minor_version
    - <builtin>.filter
    - full_installed_path.endswith
    - scripts_to_generate.extend
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.distlib.util.get_export_entry
    - direct_url_file.write
    - f.strip
    - f.seek
    - pip._internal.operations.install.wheel.message_about_scripts_not_on_PATH
    - machine.replace
    - args.encode
    - pathname.split
    - pip._vendor.distlib.scripts.ScriptMaker._make_script
    - grouped_by_dir.items
    - pip._internal.operations.install.wheel._install_wheel._generate_file
    - pip._internal.utils.wheel.wheel_version
    - itertools.chain.dest_path.replace
    - pip._vendor.distlib.scripts.ScriptMaker._get_script_text
    - os.path.join
    - os.path.splitext
    - filenames.append
    - pip._vendor.distlib.scripts.ScriptMaker._write_script
    - base64.urlsafe_b64encode.decode
    - warn_for.items
    - path.count
    - <builtin>.super
    - base64.urlsafe_b64encode
    - gui.items
    - os.chmod
    - zipfile.ZipFile
    - source.namelist
    - <builtin>.map
    - email.parser.Parser.parsestr
    - h.digest
    - pip._internal.utils.wheel.check_compatibility
    - pip._vendor.distlib.util.get_executable
    - not_warn_dirs.append
    - pip._internal.operations.install.wheel.csv_io_kwargs
    - os.uname
    - pip._vendor.distlib.resources.finder
    - struct.calcsize
    - pip._internal.operations.install.wheel.rehash
    - os.path.normcase
    - os.path.exists
    - m.groupdict
    - match.group
    - itertools.chain.save
    - pip._internal.operations.install.wheel.PipScriptMaker.make
    - p.split
    - os.path.dirname
    - typing.cast.startswith
    - f.read
    - pip._internal.operations.install.wheel._install_wheel.pyc_output_path
    - writer.writerows
    - pip._vendor.distlib.util.in_venv
    - pip._internal.operations.install.wheel._raise_for_invalid_entrypoint
    - last_line_fmt.format
    - shebang.decode
    - <builtin>.isinstance
    - <builtin>.bool
    - io.BytesIO.getvalue
    - filenames.extend
    - <builtin>.__import__
    - pip._internal.metadata._should_use_importlib_metadata
    - _finder_registry.get
    - f.readline
    - paths.remove
    - shebang.endswith
    - h.update
    - os.environ.get
    - itertools.starmap
    - collections.defaultdict
    - csv.reader
    - options.get
    - metadata.get
    - sys.executable.split
    - pip._vendor.distlib.scripts.ScriptMaker.get_script_filenames
    - csv.writer
    - fn.replace
    - pip._internal.operations.install.wheel._install_wheel.pyc_source_file_paths
    - file.read
    - importlib.util.cache_from_source
    - pip._vendor.distlib.scripts.ScriptMaker._get_alternate_executable
    - sys.executable.encode
    - pip._vendor.distlib.util.convert_path
    - pip._internal.operations.install.wheel._install_wheel
    - __name__.rsplit
    - <builtin>.list
    - entry.suffix.split
    - osname.lower
    - pip._vendor.distlib.util.get_platform
    - <builtin>.any
    - version_text.strip
    - pyc_path.replace
    - os.path.relpath
    - pip._internal.operations.install.wheel._install_wheel.data_scheme_file_maker
    - typing.cast.flush
    - os.path.isfile
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.distlib.util.FileOperator.__init__
    - _osx_support.get_platform_osx
    - pip._vendor.distlib.scripts.ScriptMaker.make_multiple
    - compileall.compile_file
    - sysconfig.get_config_vars
    - typing.cast
    - FIRST_LINE_RE.match
    - pip._vendor.distlib.scripts.ScriptMaker._is_shell
    - direct_url.to_json
    - os.fsync
    - pip._internal.utils.wheel.wheel_dist_info_dir
    - <builtin>.int
    - os.remove
    - tokenize.detect_encoding
    - pip._vendor.distlib.scripts.ScriptMaker._get_launcher
    - installed.pop
    - pip._vendor.distlib.scripts.ScriptMaker.make
    - pip._vendor.distlib.scripts.ScriptMaker.__init__
    - <builtin>.open
    - <builtin>.getattr
    - sys.platform.startswith
    - wheel_zip.namelist
    - version.split
    - pip._internal.operations.install.wheel._install_wheel.record_installed
    - contextlib.suppress
    - pip._vendor.distlib.scripts.enquote_executable
    - sysconfig.get_path
    - val.lower
    - <builtin>.type
    - console.items
    - pip._internal.utils.wheel.wheel_metadata
    - pip._internal.operations.install.wheel.wheel_root_is_purelib
    - pip._vendor.distlib.util.FileOperator._init_record
    - logger.debug
    - sysconfig.is_python_build
    - itertools.tee
    - distutils.sysconfig.get_config_vars
    - record_text.splitlines
    - wheel_contents.decode
    - re.compile
    - pip._internal.operations.install.wheel.get_console_script_specs
    - pip._vendor.distlib.scripts.ScriptMaker._copy_script
    - re.match
    - pip._internal.utils.misc.captured_output
    - console.pop
    - sys.version.lower
    - changed.add
    - typing.cast.Distribution.from_wheel
    - e.startswith
    - os.fsdecode
    - pip._internal.utils.misc.StreamWrapper.from_stream
    - pip._internal.metadata.get_wheel_distribution
    - typing.cast.fileno
    - <builtin>.set
    - m.group
    - email.parser.Parser
    - ENTRY_RE.search
    - first_line.replace
    - installed.values
    - pip._internal.utils.misc.captured_stdout
    - stdout.getvalue
    - generated.append
    - msg_lines.append
    - os.umask
    - io.StringIO.__init__
    - pip._vendor.distlib.util.ExportEntry.__init__
    - hashlib.sha256
    - pip._internal.operations.install.wheel._fs_to_record_path
    - fp.read
    - pip._internal.utils.misc.strtobool
    - s.endswith
    - outname.endswith
    - pip._vendor.distlib.scripts.ScriptMaker._get_shebang
    - pip._internal.utils.misc.partition
    - logger.info
    - pip._internal.utils.misc.hash_file
    - sys.executable.lower
    - os.path.splitdrive
    - zipfile.ZipInfo
    - io.BytesIO
    - scripts_to_generate.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - req
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 869
    functionName: pip._internal.req.req_install.check_invalid_constraint_type
    functionSourceFile: pip._internal.req.req_install
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - format_str.format
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - reason
    - replacement
    - gone_in
    - feature_flag
    - issue
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 55
    functionName: pip._internal.utils.deprecation.deprecated
    functionSourceFile: pip._internal.utils.deprecation
    functionUses: 94
    functionsReached:
    - <builtin>.isinstance
    - format_str.format
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised:
    - PipDeprecationWarning
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - options
    - reqs
    - option
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 897
    functionName: pip._internal.req.req_install._has_option
    functionSourceFile: pip._internal.req.req_install
    functionUses: 5
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - options
    - reqs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 906
    functionName: pip._internal.req.req_install.check_legacy_setup_py_options
    functionSourceFile: pip._internal.req.req_install
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - format_str.format
    - options.format_control.disallow_binaries
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._internal.req.req_install._has_option
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - <builtin>.getattr
    - pip._vendor.packaging.version._legacy_cmpkey
    - logger.warning
    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: options.format_control.disallow_binaries
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._internal.locations
    functionSourceFile: pip._internal.locations
    functionUses: 0
    functionsReached:
    - pip._internal.locations._should_use_sysconfig
    - functools.lru_cache
    - <builtin>.bool
    - logging.getLogger
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: pip._internal.locations._should_use_sysconfig
    functionSourceFile: pip._internal.locations
    functionUses: 1
    functionsReached:
    - <builtin>.bool
    - <builtin>.getattr
    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: 76
    functionName: pip._internal.locations._looks_like_bpo_44860
    functionSourceFile: pip._internal.locations
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - scheme
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 90
    functionName: pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    functionSourceFile: pip._internal.locations
    functionUses: 21
    functionsReached:
    - platlib.replace
    - unpatched.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: platlib.replace
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unpatched.replace
    functionSourceFile: <builtin>
    functionUses: 22
    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: 2
    functionLinenumber: 101
    functionName: pip._internal.locations._looks_like_red_hat_lib
    functionSourceFile: pip._internal.locations
    functionUses: 20
    functionsReached:
    - platlib.replace
    - <builtin>.all
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - unpatched.replace
    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: 116
    functionName: pip._internal.locations._looks_like_debian_scheme
    functionSourceFile: pip._internal.locations
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 124
    functionName: pip._internal.locations._looks_like_red_hat_scheme
    functionSourceFile: pip._internal.locations
    functionUses: 20
    functionsReached:
    - distutils.command.install.install
    - cmd.finalize_options
    - os.path.normpath
    - distutils.dist.Distribution
    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: distutils.dist.Distribution
    functionSourceFile: distutils
    functionUses: 23
    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: distutils.command.install.install
    functionSourceFile: distutils
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cmd.finalize_options
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 144
    functionName: pip._internal.locations._looks_like_slackware_scheme
    functionSourceFile: pip._internal.locations
    functionUses: 20
    functionsReached:
    - sysconfig.get_paths
    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: sysconfig.get_paths
    functionSourceFile: sysconfig
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 160
    functionName: pip._internal.locations._looks_like_msys2_mingw_scheme
    functionSourceFile: pip._internal.locations
    functionUses: 20
    functionsReached:
    - p.endswith
    - <builtin>.all
    - sysconfig.get_paths
    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: p.endswith
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - parts
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 177
    functionName: pip._internal.locations._fix_abiflags
    functionSourceFile: pip._internal.locations
    functionUses: 0
    functionsReached:
    - ldversion.endswith
    - <builtin>.len
    - part.endswith
    - sysconfig.get_config_var
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sysconfig.get_config_var
    functionSourceFile: sysconfig
    functionUses: 91
    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: ldversion.endswith
    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: part.endswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - old
    - new
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 194
    functionName: pip._internal.locations._warn_mismatched
    functionSourceFile: pip._internal.locations
    functionUses: 28
    functionsReached:
    - logger.log
    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.log
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - old
    - new
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 204
    functionName: pip._internal.locations._warn_if_mismatch
    functionSourceFile: pip._internal.locations
    functionUses: 19
    functionsReached:
    - logger.log
    - pip._internal.locations._warn_mismatched
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - user
    - home
    - root
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 212
    functionName: pip._internal.locations._log_context
    functionSourceFile: pip._internal.locations
    functionUses: 27
    functionsReached:
    - logger.log
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 2
    IfCount: 11
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30e079bf40>
    - <ast.Constant object at 0x7f30e079b6a0>
    - <ast.Constant object at 0x7f30e079bc10>
    - <ast.Constant object at 0x7f30e079b9a0>
    - <ast.Constant object at 0x7f30e079b0d0>
    argNames:
    - dist_name
    - user
    - home
    - root
    - isolated
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 124
    functionName: pip._internal.locations._sysconfig.get_scheme
    functionSourceFile: pip._internal.locations._sysconfig
    functionUses: 24
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.bool
    - sysconfig.get_paths
    - pip._internal.locations._sysconfig._infer_prefix
    - variables.get
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - os.path.isabs
    - os.path.join
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - sysconfig.get_config_var
    - pip._internal.locations._sysconfig._infer_user
    - pip._internal.locations.base.change_root
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - <builtin>.hasattr
    - <builtin>.setattr
    - pip._internal.locations.base.get_major_minor_version
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - pip._internal.locations.base.is_osx_framework
    linkageType: pythonLinkage
    raised:
    - InvalidSchemeCombination
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f114f970>
    - <ast.Constant object at 0x7f30f114fdf0>
    - <ast.Constant object at 0x7f30f114fc10>
    - <ast.Constant object at 0x7f30f114faf0>
    - <ast.Constant object at 0x7f30f114fee0>
    argNames:
    - dist_name
    - user
    - home
    - root
    - isolated
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 115
    functionName: pip._internal.locations._distutils.get_scheme
    functionSourceFile: pip._internal.locations._distutils
    functionUses: 20
    functionsReached:
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - distutils.dist.Distribution.find_config_files
    - pip._internal.locations._distutils.distutils_scheme
    - os.path.join
    - scheme.update
    - pip._internal.models.scheme.Scheme.__init__
    - os.path.abspath
    - distutils.dist.Distribution.parse_config_files
    - typing.cast
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - logger.warning
    - os.path.basename
    - pip._internal.locations.base.get_major_minor_version
    - distutils.dist.Distribution.get_command_obj
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - typing.cast.finalize_options
    - os.path.splitdrive
    - distutils.dist.Distribution
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: old_v.name.startswith
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_v.name.startswith
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 80
    functionName: pip._internal.locations.base.is_osx_framework
    functionSourceFile: pip._internal.locations.base
    functionUses: 28
    functionsReached:
    - <builtin>.bool
    - sysconfig.get_config_var
    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: old_v.parent.name.startswith
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sysconfig.is_python_build
    functionSourceFile: sysconfig
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: warning_contexts.append
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 5
    IfCount: 8
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30c4094130>
    - <ast.Constant object at 0x7f30c4094100>
    - <ast.Constant object at 0x7f30c40940d0>
    - <ast.Constant object at 0x7f30c40940a0>
    - <ast.Constant object at 0x7f30c4094070>
    argNames:
    - dist_name
    - user
    - home
    - root
    - isolated
    - prefix
    - ignore_config_files
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 35
    functionName: pip._internal.locations._distutils.distutils_scheme
    functionSourceFile: pip._internal.locations._distutils
    functionUses: 21
    functionsReached:
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - distutils.dist.Distribution.find_config_files
    - os.path.join
    - scheme.update
    - os.path.abspath
    - distutils.dist.Distribution.parse_config_files
    - typing.cast
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - logger.warning
    - os.path.basename
    - pip._internal.locations.base.get_major_minor_version
    - distutils.dist.Distribution.get_command_obj
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - typing.cast.finalize_options
    - os.path.splitdrive
    - distutils.dist.Distribution
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 397
    functionName: pip._internal.locations.get_bin_prefix
    functionSourceFile: pip._internal.locations
    functionUses: 3
    functionsReached:
    - pip._internal.locations._warn_mismatched
    - pip._internal.locations._distutils.get_bin_prefix
    - pathlib.Path
    - os.path.exists
    - sysconfig.get_paths
    - pip._internal.locations._sysconfig.get_bin_prefix
    - pip._internal.locations._warn_if_mismatch
    - os.path.normpath
    - os.path.join
    - logger.log
    - pip._internal.locations._log_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 201
    functionName: pip._internal.locations._sysconfig.get_bin_prefix
    functionSourceFile: pip._internal.locations._sysconfig
    functionUses: 4
    functionsReached:
    - sysconfig.get_paths
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 150
    functionName: pip._internal.locations._distutils.get_bin_prefix
    functionSourceFile: pip._internal.locations._distutils
    functionUses: 4
    functionsReached:
    - os.path.exists
    - os.path.normpath
    - 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: 5
    functionLinenumber: 408
    functionName: pip._internal.locations.get_bin_user
    functionSourceFile: pip._internal.locations
    functionUses: 3
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.bool
    - sysconfig.get_paths
    - pip._internal.locations._sysconfig._infer_prefix
    - variables.get
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - os.path.isabs
    - os.path.join
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - sysconfig.get_config_var
    - pip._internal.locations._sysconfig._infer_user
    - pip._internal.locations.base.change_root
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._internal.locations._sysconfig.get_scheme
    - <builtin>.hasattr
    - <builtin>.setattr
    - pip._internal.locations.base.get_major_minor_version
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - pip._internal.locations.base.is_osx_framework
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 412
    functionName: pip._internal.locations._looks_like_deb_system_dist_packages
    functionSourceFile: pip._internal.locations
    functionUses: 15
    functionsReached:
    - pip._internal.locations._looks_like_debian_scheme
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 429
    functionName: pip._internal.locations.get_purelib
    functionSourceFile: pip._internal.locations
    functionUses: 13
    functionsReached:
    - pip._internal.locations._sysconfig.get_purelib
    - pip._internal.locations._warn_mismatched
    - pathlib.Path
    - distutils.sysconfig.get_python_lib
    - sysconfig.get_paths
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - pip._internal.locations._warn_if_mismatch
    - pip._internal.locations._distutils.get_purelib
    - pip._internal.locations._looks_like_debian_scheme
    - logger.log
    - pip._internal.locations._log_context
    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: 208
    functionName: pip._internal.locations._sysconfig.get_purelib
    functionSourceFile: pip._internal.locations._sysconfig
    functionUses: 14
    functionsReached:
    - sysconfig.get_paths
    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: 167
    functionName: pip._internal.locations._distutils.get_purelib
    functionSourceFile: pip._internal.locations._distutils
    functionUses: 14
    functionsReached:
    - distutils.sysconfig.get_python_lib
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 443
    functionName: pip._internal.locations.get_platlib
    functionSourceFile: pip._internal.locations
    functionUses: 13
    functionsReached:
    - pip._internal.locations._warn_mismatched
    - pip._internal.locations._distutils.get_platlib
    - pathlib.Path
    - distutils.sysconfig.get_python_lib
    - sysconfig.get_paths
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - pip._internal.locations._warn_if_mismatch
    - pip._internal.locations._looks_like_debian_scheme
    - logger.log
    - pip._internal.locations._log_context
    - pip._internal.locations._sysconfig.get_platlib
    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: 212
    functionName: pip._internal.locations._sysconfig.get_platlib
    functionSourceFile: pip._internal.locations._sysconfig
    functionUses: 14
    functionsReached:
    - sysconfig.get_paths
    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: 171
    functionName: pip._internal.locations._distutils.get_platlib
    functionSourceFile: pip._internal.locations._distutils
    functionUses: 14
    functionsReached:
    - distutils.sysconfig.get_python_lib
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.locations._sysconfig
    functionSourceFile: pip._internal.locations._sysconfig
    functionUses: 0
    functionsReached:
    - sysconfig.get_config_var
    - <builtin>.set
    - logging.getLogger
    - sysconfig.get_scheme_names
    - <builtin>.getattr
    - _HOME_KEYS.append
    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: sysconfig.get_scheme_names
    functionSourceFile: sysconfig
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 29
    functionName: pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    functionSourceFile: pip._internal.locations._sysconfig
    functionUses: 26
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.bool
    - <builtin>.hasattr
    - sysconfig.get_config_var
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._internal.locations.base.is_osx_framework
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 55
    functionName: pip._internal.locations._sysconfig._infer_prefix
    functionSourceFile: pip._internal.locations._sysconfig
    functionUses: 25
    functionsReached:
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.bool
    - <builtin>.hasattr
    - sysconfig.get_config_var
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._internal.locations.base.is_osx_framework
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    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: 3
    functionLinenumber: 86
    functionName: pip._internal.locations._sysconfig._infer_user
    functionSourceFile: pip._internal.locations._sysconfig
    functionUses: 25
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.bool
    - <builtin>.hasattr
    - sysconfig.get_config_var
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._internal.locations.base.is_osx_framework
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    linkageType: pythonLinkage
    raised:
    - UserInstallationInvalid
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 101
    functionName: pip._internal.locations._sysconfig._infer_home
    functionSourceFile: pip._internal.locations._sysconfig
    functionUses: 25
    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: _HOME_KEYS.append
    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: variables.get
    functionSourceFile: <builtin>
    functionUses: 25
    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: 19
    functionName: pip._internal.locations.base.get_major_minor_version
    functionSourceFile: ''
    functionUses: 40
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - platlib
    - purelib
    - headers
    - scripts
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 19
    functionName: pip._internal.models.scheme.Scheme.__init__
    functionSourceFile: ''
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - new_root
    - pathname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 27
    functionName: pip._internal.locations.base.change_root
    functionSourceFile: pip._internal.locations.base
    functionUses: 25
    functionsReached:
    - os.path.splitdrive
    - os.path.join
    - os.path.isabs
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: pip._internal.locations.base
    functionSourceFile: pip._internal.locations.base
    functionUses: 0
    functionsReached:
    - pip._internal.utils.appdirs.user_cache_dir
    - functools.lru_cache
    - site.getusersitepackages
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - pip._vendor.platformdirs.user_cache_dir
    - sysconfig.get_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - appname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 16
    functionName: pip._internal.utils.appdirs.user_cache_dir
    functionSourceFile: pip._internal.utils.appdirs
    functionUses: 1
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - pip._vendor.platformdirs.user_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: sysconfig.get_path
    functionSourceFile: sysconfig
    functionUses: 17
    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.splitdrive
    functionSourceFile: os
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 55
    functionName: pip._internal.locations.base.get_src_prefix
    functionSourceFile: pip._internal.locations.base
    functionUses: 1
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - sys.exit
    - os.getcwd
    - <builtin>.getattr
    - os.path.join
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.abspath
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    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: site.getusersitepackages
    functionSourceFile: site
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.utils.virtualenv
    functionSourceFile: pip._internal.utils.virtualenv
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 14
    functionName: pip._internal.utils.virtualenv._running_under_venv
    functionSourceFile: pip._internal.utils.virtualenv
    functionUses: 49
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 22
    functionName: pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    functionSourceFile: pip._internal.utils.virtualenv
    functionUses: 49
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: pip._internal.utils.virtualenv._get_pyvenv_cfg_lines
    functionSourceFile: pip._internal.utils.virtualenv
    functionUses: 10
    functionsReached:
    - <builtin>.open
    - os.path.join
    - f.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 51
    functionName: pip._internal.utils.virtualenv._no_global_under_venv
    functionSourceFile: pip._internal.utils.virtualenv
    functionUses: 9
    functionsReached:
    - match.group
    - _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match
    - <builtin>.open
    - pip._internal.utils.virtualenv._get_pyvenv_cfg_lines
    - os.path.join
    - f.read
    - logger.warning
    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: _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match
    functionSourceFile: <builtin>
    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: 1
    functionLinenumber: 80
    functionName: pip._internal.utils.virtualenv._no_global_under_legacy_virtualenv
    functionSourceFile: pip._internal.utils.virtualenv
    functionUses: 9
    functionsReached:
    - os.path.abspath
    - os.path.exists
    - os.path.dirname
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 94
    functionName: pip._internal.utils.virtualenv.virtualenv_no_global
    functionSourceFile: pip._internal.utils.virtualenv
    functionUses: 8
    functionsReached:
    - match.group
    - os.path.exists
    - os.path.dirname
    - _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match
    - pip._internal.utils.virtualenv._no_global_under_legacy_virtualenv
    - <builtin>.open
    - pip._internal.utils.virtualenv._get_pyvenv_cfg_lines
    - <builtin>.getattr
    - os.path.join
    - f.read
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.abspath
    - pip._internal.utils.virtualenv._no_global_under_venv
    - logger.warning
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    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: pip._internal.utils.appdirs
    functionSourceFile: pip._internal.utils.appdirs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d568b5e0>
    argNames:
    - appname
    - roaming
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 20
    functionName: pip._internal.utils.appdirs._macos_user_config_dir
    functionSourceFile: pip._internal.utils.appdirs
    functionUses: 10
    functionsReached:
    - pip._vendor.platformdirs.user_data_dir
    - os.path.isdir
    - os.path.join
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.expanduser
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2112610>
    argNames:
    - appname
    - roaming
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 34
    functionName: pip._internal.utils.appdirs.user_config_dir
    functionSourceFile: pip._internal.utils.appdirs
    functionUses: 9
    functionsReached:
    - pip._internal.utils.appdirs._macos_user_config_dir
    - pip._vendor.platformdirs.user_data_dir
    - pip._vendor.platformdirs.user_config_dir
    - os.path.isdir
    - os.path.join
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.expanduser
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - appname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 43
    functionName: pip._internal.utils.appdirs.site_config_dirs
    functionSourceFile: pip._internal.utils.appdirs
    functionUses: 9
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - dirval.split
    - pip._vendor.platformdirs.site_data_dir
    - pip._vendor.platformdirs.site_config_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: dirval.split
    functionSourceFile: <builtin>
    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: pip._internal.models.scheme
    functionSourceFile: pip._internal.models.scheme
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.utils.compat
    functionSourceFile: pip._internal.utils.compat
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - sys.platform.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 14
    functionName: pip._internal.utils.compat.has_tls
    functionSourceFile: pip._internal.utils.compat
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 27
    functionName: pip._internal.utils.compat.get_path_uid
    functionSourceFile: pip._internal.utils.compat
    functionUses: 7
    functionsReached:
    - os.close
    - os.stat
    - os.path.islink
    - os.open
    - os.fstat
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - OSError
    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.open
    functionSourceFile: os
    functionUses: 18
    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.fstat
    functionSourceFile: os
    functionUses: 40
    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.islink
    functionSourceFile: os
    functionUses: 25
    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: pip._vendor.urllib3.util
    functionSourceFile: pip._vendor.urllib3.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.util.connection
    functionSourceFile: pip._vendor.urllib3.util.connection
    functionUses: 0
    functionsReached:
    - sock.close
    - pip._vendor.urllib3.contrib._appengine_environ.is_appengine
    - socket.socket
    - sock.bind
    - pip._vendor.urllib3.util.connection._has_ipv6
    - pip._vendor.urllib3.contrib._appengine_environ.is_prod_appengine
    - pip._vendor.urllib3.contrib._appengine_environ.is_appengine_sandbox
    - pip._vendor.urllib3.contrib._appengine_environ.is_local_appengine
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - conn
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 11
    functionName: pip._vendor.urllib3.util.connection.is_connection_dropped
    functionSourceFile: pip._vendor.urllib3.util.connection
    functionUses: 5
    functionsReached:
    - pip._vendor.urllib3.util.wait.null_wait_for_socket
    - wcheck.append
    - pip._vendor.urllib3.util.wait._retry_on_intr
    - pip._vendor.urllib3.util.wait._have_working_poll
    - functools.partial
    - time.time
    - <builtin>.bool
    - pip._vendor.urllib3.util.wait.select_wait_for_socket
    - select.poll
    - <builtin>.float
    - time.monotonic
    - pip._vendor.urllib3.util.wait.poll_wait_for_socket
    - poll_obj.register
    - <builtin>.getattr
    - rcheck.append
    - pip._vendor.urllib3.util.wait.wait_for_read
    - pip._vendor.urllib3.util.wait.wait_for_socket
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f21122e0>
    argNames:
    - sock
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 141
    functionName: pip._vendor.urllib3.util.wait.wait_for_read
    functionSourceFile: pip._vendor.urllib3.util.wait
    functionUses: 6
    functionsReached:
    - pip._vendor.urllib3.util.wait.null_wait_for_socket
    - wcheck.append
    - pip._vendor.urllib3.util.wait._have_working_poll
    - time.time
    - <builtin>.bool
    - functools.partial
    - pip._vendor.urllib3.util.wait.select_wait_for_socket
    - select.poll
    - <builtin>.float
    - time.monotonic
    - pip._vendor.urllib3.util.wait.poll_wait_for_socket
    - poll_obj.register
    - rcheck.append
    - pip._vendor.urllib3.util.wait._retry_on_intr
    - pip._vendor.urllib3.util.wait.wait_for_socket
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 7
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Attribute object at 0x7f30f20a1190>
    - <ast.Constant object at 0x7f30f20a1700>
    - <ast.Constant object at 0x7f30f20a17c0>
    argNames:
    - address
    - timeout
    - source_address
    - socket_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 37
    functionName: pip._vendor.urllib3.util.connection.create_connection
    functionSourceFile: pip._vendor.urllib3.util.connection
    functionUses: 2
    functionsReached:
    - sock.close
    - host.encode
    - sock.settimeout
    - socket.socket
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - sock.bind
    - socket.getaddrinfo
    - pip._vendor.urllib3.util.connection.allowed_gai_family
    - host.startswith
    - sock.connect
    - host.strip
    - pip._vendor.urllib3.util.connection._set_socket_options
    - HTTPError.__init__
    - pip._vendor.urllib3.packages.six.raise_from
    - sock.setsockopt
    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.startswith
    functionSourceFile: <builtin>
    functionUses: 29
    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.strip
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 108
    functionName: pip._vendor.urllib3.util.connection.allowed_gai_family
    functionSourceFile: ''
    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: host.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 161
    functionName: pip._vendor.urllib3.exceptions.LocationParseError.__init__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 54
    functionsReached:
    - HTTPError.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - value
    - from_value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 810
    functionName: pip._vendor.urllib3.packages.six.raise_from
    functionSourceFile: ''
    functionUses: 57
    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: socket.getaddrinfo
    functionSourceFile: socket
    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: socket.socket
    functionSourceFile: socket
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 100
    functionName: pip._vendor.urllib3.util.connection._set_socket_options
    functionSourceFile: pip._vendor.urllib3.util.connection
    functionUses: 3
    functionsReached:
    - sock.setsockopt
    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: sock.settimeout
    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: sock.bind
    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: sock.connect
    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: sock.close
    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: sock.setsockopt
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - host
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 119
    functionName: pip._vendor.urllib3.util.connection._has_ipv6
    functionSourceFile: pip._vendor.urllib3.util.connection
    functionUses: 1
    functionsReached:
    - sock.close
    - pip._vendor.urllib3.contrib._appengine_environ.is_appengine
    - socket.socket
    - sock.bind
    - pip._vendor.urllib3.contrib._appengine_environ.is_prod_appengine
    - pip._vendor.urllib3.contrib._appengine_environ.is_appengine_sandbox
    - pip._vendor.urllib3.contrib._appengine_environ.is_local_appengine
    - os.environ.get
    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: 3
    functionLinenumber: 12
    functionName: pip._vendor.urllib3.contrib._appengine_environ.is_appengine_sandbox
    functionSourceFile: pip._vendor.urllib3.contrib._appengine_environ
    functionUses: 2
    functionsReached:
    - pip._vendor.urllib3.contrib._appengine_environ.is_prod_appengine
    - os.environ.get
    - pip._vendor.urllib3.contrib._appengine_environ.is_local_appengine
    - pip._vendor.urllib3.contrib._appengine_environ.is_appengine
    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: pip._vendor.urllib3.util.wait
    functionSourceFile: pip._vendor.urllib3.util.wait
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - fn
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 47
    functionName: pip._vendor.urllib3.util.wait._retry_on_intr
    functionSourceFile: pip._vendor.urllib3.util.wait
    functionUses: 12
    functionsReached:
    - functools.partial
    - time.monotonic
    - <builtin>.float
    - time.time
    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: time.monotonic
    functionSourceFile: time
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bc6b20>
    - <ast.Constant object at 0x7f30f6bc6c40>
    - <ast.Constant object at 0x7f30f6bc66d0>
    argNames:
    - sock
    - read
    - write
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 70
    functionName: pip._vendor.urllib3.util.wait.select_wait_for_socket
    functionSourceFile: pip._vendor.urllib3.util.wait
    functionUses: 9
    functionsReached:
    - wcheck.append
    - functools.partial
    - <builtin>.bool
    - time.time
    - <builtin>.float
    - time.monotonic
    - rcheck.append
    - pip._vendor.urllib3.util.wait._retry_on_intr
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: rcheck.append
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wcheck.append
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ee3dc040>
    - <ast.Constant object at 0x7f30ee3dc070>
    - <ast.Constant object at 0x7f30d3231dc0>
    argNames:
    - sock
    - read
    - write
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 89
    functionName: pip._vendor.urllib3.util.wait.poll_wait_for_socket
    functionSourceFile: pip._vendor.urllib3.util.wait
    functionUses: 9
    functionsReached:
    - functools.partial
    - <builtin>.bool
    - time.time
    - select.poll
    - <builtin>.float
    - time.monotonic
    - poll_obj.register
    - pip._vendor.urllib3.util.wait._retry_on_intr
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: select.poll
    functionSourceFile: select
    functionUses: 11
    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: poll_obj.register
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - t
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 101
    functionName: pip._vendor.urllib3.util.wait.poll_wait_for_socket.do_poll
    functionSourceFile: pip._vendor.urllib3.util.wait
    functionUses: 0
    functionsReached:
    - poll_obj.poll
    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: poll_obj.poll
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 109
    functionName: pip._vendor.urllib3.util.wait.null_wait_for_socket
    functionSourceFile: pip._vendor.urllib3.util.wait
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NoWayToWaitForSocketError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 113
    functionName: pip._vendor.urllib3.util.wait._have_working_poll
    functionSourceFile: pip._vendor.urllib3.util.wait
    functionUses: 9
    functionsReached:
    - functools.partial
    - time.time
    - select.poll
    - <builtin>.float
    - time.monotonic
    - pip._vendor.urllib3.util.wait._retry_on_intr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 126
    functionName: pip._vendor.urllib3.util.wait.wait_for_socket
    functionSourceFile: pip._vendor.urllib3.util.wait
    functionUses: 8
    functionsReached:
    - pip._vendor.urllib3.util.wait.null_wait_for_socket
    - wcheck.append
    - pip._vendor.urllib3.util.wait._have_working_poll
    - time.time
    - <builtin>.bool
    - functools.partial
    - pip._vendor.urllib3.util.wait.select_wait_for_socket
    - select.poll
    - <builtin>.float
    - time.monotonic
    - pip._vendor.urllib3.util.wait.poll_wait_for_socket
    - poll_obj.register
    - rcheck.append
    - pip._vendor.urllib3.util.wait._retry_on_intr
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f21123d0>
    argNames:
    - sock
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 148
    functionName: pip._vendor.urllib3.util.wait.wait_for_write
    functionSourceFile: pip._vendor.urllib3.util.wait
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.wait.null_wait_for_socket
    - wcheck.append
    - pip._vendor.urllib3.util.wait._have_working_poll
    - time.time
    - <builtin>.bool
    - functools.partial
    - pip._vendor.urllib3.util.wait.select_wait_for_socket
    - select.poll
    - <builtin>.float
    - time.monotonic
    - pip._vendor.urllib3.util.wait.poll_wait_for_socket
    - poll_obj.register
    - rcheck.append
    - pip._vendor.urllib3.util.wait._retry_on_intr
    - pip._vendor.urllib3.util.wait.wait_for_socket
    - <builtin>.hasattr
    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: pip._vendor.urllib3.contrib._appengine_environ
    functionSourceFile: pip._vendor.urllib3.contrib._appengine_environ
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 8
    functionName: pip._vendor.urllib3.contrib._appengine_environ.is_appengine
    functionSourceFile: pip._vendor.urllib3.contrib._appengine_environ
    functionUses: 3
    functionsReached:
    - pip._vendor.urllib3.contrib._appengine_environ.is_prod_appengine
    - pip._vendor.urllib3.contrib._appengine_environ.is_local_appengine
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 22
    functionName: pip._vendor.urllib3.contrib._appengine_environ.is_local_appengine
    functionSourceFile: pip._vendor.urllib3.contrib._appengine_environ
    functionUses: 4
    functionsReached:
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: pip._vendor.urllib3.contrib._appengine_environ.is_prod_appengine
    functionSourceFile: pip._vendor.urllib3.contrib._appengine_environ
    functionUses: 6
    functionsReached:
    - os.environ.get
    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: 34
    functionName: pip._vendor.urllib3.contrib._appengine_environ.is_prod_appengine_mvms
    functionSourceFile: pip._vendor.urllib3.contrib._appengine_environ
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.contrib
    functionSourceFile: pip._vendor.urllib3.contrib
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.exceptions
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - pool
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: pip._vendor.urllib3.exceptions.PoolError.__init__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 3
    functionsReached:
    - HTTPError.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: HTTPError.__init__
    functionSourceFile: <builtin>
    functionUses: 59
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: pip._vendor.urllib3.exceptions.PoolError.__reduce__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - pool
    - url
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 35
    functionName: pip._vendor.urllib3.exceptions.RequestError.__init__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 2
    functionsReached:
    - pip._vendor.urllib3.exceptions.PoolError.__init__
    - HTTPError.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 39
    functionName: pip._vendor.urllib3.exceptions.RequestError.__reduce__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - message
    - error
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: pip._vendor.urllib3.exceptions.ProxyError.__init__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 4
    functionsReached:
    - <builtin>.super
    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 0x7f30db499850>
    argNames:
    - self
    - pool
    - url
    - reason
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 87
    functionName: pip._vendor.urllib3.exceptions.MaxRetryError.__init__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.exceptions.RequestError.__init__
    - pip._vendor.urllib3.exceptions.PoolError.__init__
    - HTTPError.__init__
    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 0x7f30f20a1ac0>
    argNames:
    - self
    - pool
    - url
    - retries
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 98
    functionName: pip._vendor.urllib3.exceptions.HostChangedError.__init__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.exceptions.RequestError.__init__
    - pip._vendor.urllib3.exceptions.PoolError.__init__
    - HTTPError.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - scheme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 171
    functionName: pip._vendor.urllib3.exceptions.URLSchemeUnknown.__init__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - partial
    - expected
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 253
    functionName: pip._vendor.urllib3.exceptions.IncompleteRead.__init__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 256
    functionName: pip._vendor.urllib3.exceptions.IncompleteRead.__repr__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - response
    - length
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 266
    functionName: pip._vendor.urllib3.exceptions.InvalidChunkLength.__init__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.urllib3.response.HTTPResponse.tell
    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: 309
    functionName: pip._vendor.urllib3.response.HTTPResponse.tell
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 273
    functionName: pip._vendor.urllib3.exceptions.InvalidChunkLength.__repr__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - scheme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 291
    functionName: pip._vendor.urllib3.exceptions.ProxySchemeUnknown.__init__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - defects
    - unparsed_data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 315
    functionName: pip._vendor.urllib3.exceptions.HeaderParsingError.__init__
    functionSourceFile: pip._vendor.urllib3.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.packages
    functionSourceFile: pip._vendor.urllib3.packages
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 27
    IfCount: 16
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.packages.six
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.exec
    - struct.Struct
    - <builtin>.isinstance
    - operator.itemgetter
    - operator.methodcaller
    - operator.attrgetter
    - pip._vendor.urllib3.packages.six.MovedAttribute.__init__
    - pip._vendor.urllib3.packages.six._SixMetaPathImporter.__init__
    - pip._vendor.urllib3.packages.six._LazyModule.__init__
    - <builtin>.enumerate
    - pip._vendor.urllib3.packages.six.MovedModule.__init__
    - <builtin>.globals
    - pip._vendor.urllib3.packages.six._SixMetaPathImporter._add_module
    - sys._getframe
    - <builtin>.super
    - <builtin>.len
    - sys.meta_path.append
    - <builtin>.int
    - functools.partial
    - pip._vendor.urllib3.packages.six.exec_
    - <builtin>.setattr
    - types.ModuleType.__init__
    - <builtin>.getattr
    - sys.platform.startswith
    - pip._vendor.urllib3.packages.six._add_doc
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 61
    functionName: pip._vendor.urllib3.packages.six.X.__len__
    functionSourceFile: pip._vendor.urllib3.packages.six
    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:
    - func
    - doc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 80
    functionName: pip._vendor.urllib3.packages.six._add_doc
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 85
    functionName: pip._vendor.urllib3.packages.six._import_module
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 4
    functionsReached:
    - <builtin>.__import__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 92
    functionName: pip._vendor.urllib3.packages.six._LazyDescr.__init__
    functionSourceFile: pip._vendor.urllib3.packages.six
    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
    - obj
    - tp
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 95
    functionName: pip._vendor.urllib3.packages.six._LazyDescr.__get__
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.packages.six.MovedAttribute._resolve
    - pip._vendor.urllib3.packages.six._import_module
    - <builtin>.__import__
    - <builtin>.setattr
    - pip._vendor.urllib3.packages.six.MovedModule._resolve
    - <builtin>.getattr
    - <builtin>.delattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 117
    functionName: pip._vendor.urllib3.packages.six.MovedModule._resolve
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 2
    functionsReached:
    - <builtin>.__import__
    - pip._vendor.urllib3.packages.six._import_module
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 160
    functionName: pip._vendor.urllib3.packages.six.MovedAttribute._resolve
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached:
    - <builtin>.__import__
    - pip._vendor.urllib3.packages.six._import_module
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.delattr
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f98a19d0>
    argNames:
    - self
    - name
    - old
    - new
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 108
    functionName: pip._vendor.urllib3.packages.six.MovedModule.__init__
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - attr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 120
    functionName: pip._vendor.urllib3.packages.six.MovedModule.__getattr__
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.packages.six._import_module
    - <builtin>.__import__
    - <builtin>.setattr
    - pip._vendor.urllib3.packages.six.MovedModule._resolve
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 128
    functionName: pip._vendor.urllib3.packages.six._LazyModule.__init__
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 132
    functionName: pip._vendor.urllib3.packages.six._LazyModule.__dir__
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9875a30>
    - <ast.Constant object at 0x7f30f9875a00>
    argNames:
    - self
    - name
    - old_mod
    - new_mod
    - old_attr
    - new_attr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 142
    functionName: pip._vendor.urllib3.packages.six.MovedAttribute.__init__
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - six_module_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 174
    functionName: pip._vendor.urllib3.packages.six._SixMetaPathImporter.__init__
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - mod
    - fullnames
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 178
    functionName: pip._vendor.urllib3.packages.six._SixMetaPathImporter._add_module
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fullname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 182
    functionName: pip._vendor.urllib3.packages.six._SixMetaPathImporter._get_module
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d568ba60>
    argNames:
    - self
    - fullname
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 185
    functionName: pip._vendor.urllib3.packages.six._SixMetaPathImporter.find_module
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d568b250>
    argNames:
    - self
    - fullname
    - path
    - target
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 190
    functionName: pip._vendor.urllib3.packages.six._SixMetaPathImporter.find_spec
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - importlib.util.spec_from_loader
    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: importlib.util.spec_from_loader
    functionSourceFile: importlib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fullname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 195
    functionName: pip._vendor.urllib3.packages.six._SixMetaPathImporter.__get_module
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fullname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 201
    functionName: pip._vendor.urllib3.packages.six._SixMetaPathImporter.load_module
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached:
    - pip._vendor.urllib3.packages.six._SixMetaPathImporter.__get_module
    - <builtin>.isinstance
    - mod._resolve
    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: mod._resolve
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fullname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 215
    functionName: pip._vendor.urllib3.packages.six._SixMetaPathImporter.is_package
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.packages.six._SixMetaPathImporter.__get_module
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fullname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 224
    functionName: pip._vendor.urllib3.packages.six._SixMetaPathImporter.get_code
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.packages.six._SixMetaPathImporter.__get_module
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - spec
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 233
    functionName: pip._vendor.urllib3.packages.six._SixMetaPathImporter.create_module
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.urllib3.packages.six._SixMetaPathImporter.__get_module
    - pip._vendor.urllib3.packages.six._SixMetaPathImporter.load_module
    - mod._resolve
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - module
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 236
    functionName: pip._vendor.urllib3.packages.six._SixMetaPathImporter.exec_module
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.packages.six.Module_six_moves_urllib
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.packages.six._SixMetaPathImporter._get_module
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 535
    functionName: pip._vendor.urllib3.packages.six.Module_six_moves_urllib.__dir__
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - move
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 544
    functionName: pip._vendor.urllib3.packages.six.add_move
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 549
    functionName: pip._vendor.urllib3.packages.six.remove_move
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.delattr
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - it
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 582
    functionName: pip._vendor.urllib3.packages.six.advance_iterator
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - it.next
    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: it.next
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 593
    functionName: pip._vendor.urllib3.packages.six.callable
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.any
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - unbound
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 610
    functionName: pip._vendor.urllib3.packages.six.get_unbound_function
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - func
    - cls
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 616
    functionName: pip._vendor.urllib3.packages.six.create_unbound_method
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - types.MethodType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - func
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 613
    functionName: pip._vendor.urllib3.packages.six.create_bound_method
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - types.MethodType
    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: types.MethodType
    functionSourceFile: types
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 620
    functionName: pip._vendor.urllib3.packages.six.Iterator.next
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - d
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 658
    functionName: pip._vendor.urllib3.packages.six.iterkeys
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 5
    functionsReached:
    - <builtin>.iter
    - d.keys
    - d.iterkeys
    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: d.keys
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - d
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 661
    functionName: pip._vendor.urllib3.packages.six.itervalues
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached:
    - <builtin>.iter
    - d.values
    - d.itervalues
    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: d.values
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - d
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 664
    functionName: pip._vendor.urllib3.packages.six.iteritems
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 32
    functionsReached:
    - d.items
    - <builtin>.iter
    - d.iteritems
    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: d.items
    functionSourceFile: <builtin>
    functionUses: 71
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - d
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 667
    functionName: pip._vendor.urllib3.packages.six.iterlists
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - d.lists
    - <builtin>.iter
    - d.iterlists
    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: d.lists
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: operator.methodcaller
    functionSourceFile: operator
    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: d.iterkeys
    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: d.itervalues
    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: d.iteritems
    functionSourceFile: <builtin>
    functionUses: 41
    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: d.iterlists
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 716
    functionName: pip._vendor.urllib3.packages.six.b
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 32
    functionsReached:
    - s.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.encode
    functionSourceFile: <builtin>
    functionUses: 55
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 721
    functionName: pip._vendor.urllib3.packages.six.u
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - s.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.Struct
    functionSourceFile: struct
    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: s.replace
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - bs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 727
    functionName: pip._vendor.urllib3.packages.six.byte2int
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - buf
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 730
    functionName: pip._vendor.urllib3.packages.six.indexbytes
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 745
    functionName: pip._vendor.urllib3.packages.six.assertCountEqual
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 749
    functionName: pip._vendor.urllib3.packages.six.assertRaisesRegex
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 753
    functionName: pip._vendor.urllib3.packages.six.assertRegex
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 757
    functionName: pip._vendor.urllib3.packages.six.assertNotRegex
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e932dfd0>
    argNames:
    - tp
    - value
    - tb
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 764
    functionName: pip._vendor.urllib3.packages.six.reraise
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e932d9a0>
    - <ast.Constant object at 0x7f30e932d970>
    argNames:
    - _code_
    - _globs_
    - _locs_
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 777
    functionName: pip._vendor.urllib3.packages.six.exec_
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached:
    - <builtin>.exec
    - sys._getframe
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 878
    functionName: pip._vendor.urllib3.packages.six.print_
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - fp.flush
    - <builtin>.isinstance
    - <builtin>.str
    - kwargs.get
    - <builtin>.enumerate
    - fp.write
    - pip._vendor.urllib3.packages.six.print_.write
    - <builtin>.getattr
    - pip._vendor.urllib3.packages.six.print_
    - data.encode
    - kwargs.pop
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 823
    functionName: pip._vendor.urllib3.packages.six.print_.write
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    - fp.write
    - <builtin>.getattr
    - data.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.encode
    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: fp.write
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.get
    functionSourceFile: <builtin>
    functionUses: 81
    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: fp.flush
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Attribute object at 0x7f30e9341370>
    - <ast.Attribute object at 0x7f30e9341310>
    argNames:
    - wrapper
    - wrapped
    - assigned
    - updated
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 894
    functionName: pip._vendor.urllib3.packages.six._update_wrapper
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7f30e9336820>
    - <ast.Attribute object at 0x7f30e93367c0>
    argNames:
    - wrapped
    - assigned
    - updated
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 914
    functionName: pip._vendor.urllib3.packages.six.wraps
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - functools.partial
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - meta
    - bases
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 929
    functionName: pip._vendor.urllib3.packages.six.with_metaclass
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - type.__new__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - name
    - this_bases
    - d
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 935
    functionName: pip._vendor.urllib3.packages.six.with_metaclass.metaclass.__new__
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - types.resolve_bases
    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: types.resolve_bases
    functionSourceFile: types
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - name
    - this_bases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 947
    functionName: pip._vendor.urllib3.packages.six.with_metaclass.metaclass.__prepare__
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - meta.__prepare__
    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: meta.__prepare__
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - metaclass
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 953
    functionName: pip._vendor.urllib3.packages.six.add_metaclass
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 956
    functionName: pip._vendor.urllib3.packages.six.add_metaclass.wrapper
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached:
    - cls.__dict__.copy
    - <builtin>.isinstance
    - orig_vars.pop
    - orig_vars.get
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cls.__dict__.copy
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: orig_vars.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: orig_vars.pop
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e9337ac0>
    - <ast.Constant object at 0x7f30e9337af0>
    argNames:
    - s
    - encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 973
    functionName: pip._vendor.urllib3.packages.six.ensure_binary
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 1
    functionsReached:
    - s.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e9359220>
    - <ast.Constant object at 0x7f30e9359250>
    argNames:
    - s
    - encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 991
    functionName: pip._vendor.urllib3.packages.six.ensure_str
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 54
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e9359e80>
    - <ast.Constant object at 0x7f30e9359eb0>
    argNames:
    - s
    - encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1014
    functionName: pip._vendor.urllib3.packages.six.ensure_text
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 53
    functionsReached:
    - s.decode
    - <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: s.decode
    functionSourceFile: <builtin>
    functionUses: 62
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - klass
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1033
    functionName: pip._vendor.urllib3.packages.six.python_2_unicode_compatible
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: pip._vendor.urllib3.packages.six.python_2_unicode_compatible.<lambda1>
    functionSourceFile: pip._vendor.urllib3.packages.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.meta_path.append
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.util.timeout
    functionSourceFile: pip._vendor.urllib3.util.timeout
    functionUses: 0
    functionsReached:
    - <builtin>.object
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f21144f0>
    - <ast.Name object at 0x7f30f2114ca0>
    - <ast.Name object at 0x7f30f21147f0>
    argNames:
    - self
    - total
    - connect
    - read
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 101
    functionName: pip._vendor.urllib3.util.timeout.Timeout.__init__
    functionSourceFile: pip._vendor.urllib3.util.timeout
    functionUses: 12
    functionsReached:
    - <builtin>.float
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - value
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 123
    functionName: pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    functionSourceFile: pip._vendor.urllib3.util.timeout
    functionUses: 13
    functionsReached:
    - <builtin>.float
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 107
    functionName: pip._vendor.urllib3.util.timeout.Timeout.__repr__
    functionSourceFile: pip._vendor.urllib3.util.timeout
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 119
    functionName: pip._vendor.urllib3.util.timeout.Timeout.resolve_default_timeout
    functionSourceFile: pip._vendor.urllib3.util.timeout
    functionUses: 5
    functionsReached:
    - socket.getdefaulttimeout
    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.getdefaulttimeout
    functionSourceFile: socket
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 169
    functionName: pip._vendor.urllib3.util.timeout.Timeout.from_float
    functionSourceFile: pip._vendor.urllib3.util.timeout
    functionUses: 9
    functionsReached:
    - <builtin>.float
    - pip._vendor.urllib3.util.timeout.Timeout.__init__
    - <builtin>.isinstance
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 184
    functionName: pip._vendor.urllib3.util.timeout.Timeout.clone
    functionSourceFile: pip._vendor.urllib3.util.timeout
    functionUses: 6
    functionsReached:
    - <builtin>.float
    - pip._vendor.urllib3.util.timeout.Timeout.__init__
    - <builtin>.isinstance
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    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: 0
    functionLinenumber: 198
    functionName: pip._vendor.urllib3.util.timeout.Timeout.start_connect
    functionSourceFile: pip._vendor.urllib3.util.timeout
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TimeoutStateError
    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: 0
    functionLinenumber: 209
    functionName: pip._vendor.urllib3.util.timeout.Timeout.get_connect_duration
    functionSourceFile: pip._vendor.urllib3.util.timeout
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - TimeoutStateError
    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: 1
    functionLinenumber: 224
    functionName: pip._vendor.urllib3.util.timeout.Timeout.connect_timeout
    functionSourceFile: pip._vendor.urllib3.util.timeout
    functionUses: 0
    functionsReached:
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 242
    functionName: pip._vendor.urllib3.util.timeout.Timeout.read_timeout
    functionSourceFile: pip._vendor.urllib3.util.timeout
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - pip._vendor.urllib3.util.timeout.Timeout.get_connect_duration
    - <builtin>.min
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.util.retry
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 0
    functionsReached:
    - <builtin>.object
    - warnings.warn
    - <builtin>.frozenset
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - logging.getLogger
    - <builtin>.set
    - <builtin>.tuple
    - h.lower
    - collections.namedtuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: pip._vendor.urllib3.util.retry._RetryMeta.DEFAULT_METHOD_WHITELIST
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 0
    functionsReached:
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    functionName: pip._vendor.urllib3.util.retry._RetryMeta.DEFAULT_REDIRECT_HEADERS_BLACKLIST
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 0
    functionsReached:
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 82
    functionName: pip._vendor.urllib3.util.retry._RetryMeta.BACKOFF_MAX
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 0
    functionsReached:
    - warnings.warn
    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: pip._vendor.urllib3.util.retry.Retry
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 0
    functionsReached:
    - <builtin>.frozenset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 16
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd6820>
    - <ast.Constant object at 0x7f30f6bd6850>
    - <ast.Constant object at 0x7f30f6bd65b0>
    - <ast.Constant object at 0x7f30f6bd6fd0>
    - <ast.Constant object at 0x7f30f6bd68e0>
    - <ast.Constant object at 0x7f30f6bd6d90>
    - <ast.Name object at 0x7f30de0f7fa0>
    - <ast.Constant object at 0x7f30e7895940>
    - <ast.Constant object at 0x7f30e7895580>
    - <ast.Constant object at 0x7f30d8c055b0>
    - <ast.Constant object at 0x7f30d8c056a0>
    - <ast.Constant object at 0x7f30d8c05a60>
    - <ast.Constant object at 0x7f30d8c052e0>
    - <ast.Name object at 0x7f30d8c05670>
    - <ast.Name object at 0x7f30d8c05a30>
    argNames:
    - self
    - total
    - connect
    - read
    - redirect
    - status
    - other
    - allowed_methods
    - status_forcelist
    - backoff_factor
    - raise_on_redirect
    - raise_on_status
    - history
    - respect_retry_after_header
    - remove_headers_on_redirect
    - method_whitelist
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 243
    functionName: pip._vendor.urllib3.util.retry.Retry.__init__
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 20
    functionsReached:
    - warnings.warn
    - <builtin>.set
    - <builtin>.frozenset
    - <builtin>.tuple
    - h.lower
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: h.lower
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 304
    functionName: pip._vendor.urllib3.util.retry.Retry.new
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 1
    functionsReached:
    - <builtin>.dict
    - params.update
    - warnings.warn
    - <builtin>.type
    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: params.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2114e80>
    - <ast.Constant object at 0x7f30f2114e50>
    argNames:
    - cls
    - retries
    - redirect
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 341
    functionName: pip._vendor.urllib3.util.retry.Retry.from_int
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 18
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bool
    - warnings.warn
    - <builtin>.set
    - <builtin>.frozenset
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - <builtin>.tuple
    - h.lower
    - log.debug
    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: log.debug
    functionSourceFile: <builtin>
    functionUses: 26
    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: 1
    functionLinenumber: 354
    functionName: pip._vendor.urllib3.util.retry.Retry.get_backoff_time
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 2
    functionsReached:
    - <builtin>.reversed
    - <builtin>.len
    - <builtin>.min
    - itertools.takewhile
    - <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: pip._vendor.urllib3.util.retry.Retry.get_backoff_time.<lambda1>
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: itertools.takewhile
    functionSourceFile: itertools
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_after
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 371
    functionName: pip._vendor.urllib3.util.retry.Retry.parse_retry_after
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 3
    functionsReached:
    - <builtin>.int
    - email.utils.parsedate_tz
    - time.time
    - email.utils.mktime_tz
    - re.match
    linkageType: pythonLinkage
    raised:
    - InvalidHeader
    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: email.utils.parsedate_tz
    functionSourceFile: email
    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: email.utils.mktime_tz
    functionSourceFile: email
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 394
    functionName: pip._vendor.urllib3.util.retry.Retry.get_retry_after
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 2
    functionsReached:
    - response.headers.get
    - <builtin>.int
    - email.utils.parsedate_tz
    - time.time
    - email.utils.mktime_tz
    - re.match
    - pip._vendor.urllib3.util.retry.Retry.parse_retry_after
    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: response.headers.get
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30dbade640>
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 404
    functionName: pip._vendor.urllib3.util.retry.Retry.sleep_for_retry
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 1
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.get_retry_after
    - response.headers.get
    - <builtin>.int
    - email.utils.parsedate_tz
    - time.time
    - email.utils.mktime_tz
    - re.match
    - time.sleep
    - pip._vendor.urllib3.util.retry.Retry.parse_retry_after
    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: 412
    functionName: pip._vendor.urllib3.util.retry.Retry._sleep_backoff
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 1
    functionsReached:
    - <builtin>.reversed
    - pip._vendor.urllib3.util.retry.Retry.get_backoff_time
    - <builtin>.len
    - <builtin>.min
    - time.sleep
    - itertools.takewhile
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30eb1e53d0>
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 418
    functionName: pip._vendor.urllib3.util.retry.Retry.sleep
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.get_retry_after
    - response.headers.get
    - <builtin>.reversed
    - pip._vendor.urllib3.util.retry.Retry._sleep_backoff
    - <builtin>.int
    - pip._vendor.urllib3.util.retry.Retry.parse_retry_after
    - pip._vendor.urllib3.util.retry.Retry.get_backoff_time
    - time.time
    - email.utils.parsedate_tz
    - <builtin>.len
    - pip._vendor.urllib3.util.retry.Retry.sleep_for_retry
    - re.match
    - email.utils.mktime_tz
    - <builtin>.min
    - time.sleep
    - itertools.takewhile
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - err
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 434
    functionName: pip._vendor.urllib3.util.retry.Retry._is_connection_error
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - err
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 442
    functionName: pip._vendor.urllib3.util.retry.Retry._is_read_error
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - method
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 448
    functionName: pip._vendor.urllib3.util.retry.Retry._is_method_retryable
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 2
    functionsReached:
    - warnings.warn
    - method.upper
    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: method.upper
    functionSourceFile: <builtin>
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2418580>
    argNames:
    - self
    - method
    - status_code
    - has_retry_after
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 468
    functionName: pip._vendor.urllib3.util.retry.Retry.is_retry
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry._is_method_retryable
    - warnings.warn
    - method.upper
    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: 1
    functionLinenumber: 488
    functionName: pip._vendor.urllib3.util.retry.Retry.is_exhausted
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 0
    functionsReached:
    - <builtin>.filter
    - <builtin>.list
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 2
    IfCount: 15
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2413460>
    - <ast.Constant object at 0x7f30f2413430>
    - <ast.Constant object at 0x7f30f2413400>
    - <ast.Constant object at 0x7f30f24133d0>
    - <ast.Constant object at 0x7f30f24133a0>
    - <ast.Constant object at 0x7f30f2413370>
    argNames:
    - self
    - method
    - url
    - response
    - error
    - _pool
    - _stacktrace
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 504
    functionName: pip._vendor.urllib3.util.retry.Retry.increment
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 0
    functionsReached:
    - log.debug
    - <builtin>.isinstance
    - pip._vendor.urllib3.util.retry.Retry._is_read_error
    - params.update
    - ResponseError.SPECIFIC_ERROR.format
    - pip._vendor.urllib3.util.retry.Retry._is_connection_error
    - warnings.warn
    - pip._vendor.urllib3.util.retry.Retry._is_method_retryable
    - response.get_redirect_location
    - new_retry.is_exhausted
    - pip._vendor.urllib3.util.retry.Retry.new
    - method.upper
    - <builtin>.dict
    - collections.namedtuple
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - MaxRetryError
    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: response.get_redirect_location
    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: ResponseError.SPECIFIC_ERROR.format
    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: new_retry.is_exhausted
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 598
    functionName: pip._vendor.urllib3.util.retry.Retry.__repr__
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 604
    functionName: pip._vendor.urllib3.util.retry.Retry.__getattr__
    functionSourceFile: pip._vendor.urllib3.util.retry
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.getattr
    - warnings.warn
    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: pip._vendor.urllib3.util.response
    functionSourceFile: pip._vendor.urllib3.util.response
    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:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 9
    functionName: pip._vendor.urllib3.util.response.is_fp_closed
    functionSourceFile: pip._vendor.urllib3.util.response
    functionUses: 19
    functionsReached:
    - obj.isclosed
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: obj.isclosed
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - headers
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: pip._vendor.urllib3.util.response.assert_header_parsing
    functionSourceFile: pip._vendor.urllib3.util.response
    functionUses: 5
    functionsReached:
    - <builtin>.getattr
    - <builtin>.isinstance
    - headers.is_multipart
    linkageType: pythonLinkage
    raised:
    - HeaderParsingError
    - 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: headers.is_multipart
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - response
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 94
    functionName: pip._vendor.urllib3.util.response.is_response_to_head
    functionSourceFile: pip._vendor.urllib3.util.response
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - io.IOBase._method.upper
    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: io.IOBase._method.upper
    functionSourceFile: io
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.util.request
    functionSourceFile: pip._vendor.urllib3.util.request
    functionUses: 0
    functionsReached:
    - <builtin>.frozenset
    - <builtin>.object
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c01af0>
    - <ast.Constant object at 0x7f30d8c01d60>
    - <ast.Constant object at 0x7f30d8c012b0>
    - <ast.Constant object at 0x7f30d8c01310>
    - <ast.Constant object at 0x7f30d8c01220>
    - <ast.Constant object at 0x7f30d8c01880>
    argNames:
    - keep_alive
    - accept_encoding
    - user_agent
    - basic_auth
    - proxy_basic_auth
    - disable_cache
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 20
    functionName: pip._vendor.urllib3.util.request.make_headers
    functionSourceFile: pip._vendor.urllib3.util.request
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - s.encode
    - base64.b64encode
    - pip._vendor.urllib3.packages.six.b
    - base64.b64encode.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.b64encode
    functionSourceFile: base64
    functionUses: 34
    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: base64.b64encode.decode
    functionSourceFile: base64
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - body
    - pos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 92
    functionName: pip._vendor.urllib3.util.request.set_file_position
    functionSourceFile: pip._vendor.urllib3.util.request
    functionUses: 4
    functionsReached:
    - body.tell
    - <builtin>.getattr
    - <builtin>.isinstance
    - pip._vendor.urllib3.util.request.rewind_body
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - body
    - body_pos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: pip._vendor.urllib3.util.request.rewind_body
    functionSourceFile: pip._vendor.urllib3.util.request
    functionUses: 5
    functionsReached:
    - <builtin>.getattr
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - UnrewindableBodyError
    - ValueError
    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: body.tell
    functionSourceFile: <builtin>
    functionUses: 5
    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: pip._internal.models
    functionSourceFile: pip._internal.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.locations._distutils
    functionSourceFile: pip._internal.locations._distutils
    functionUses: 0
    functionsReached:
    - <builtin>.__import__
    - logging.getLogger
    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: distutils.dist.Distribution.parse_config_files
    functionSourceFile: distutils
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: distutils.dist.Distribution.find_config_files
    functionSourceFile: distutils
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: distutils.dist.Distribution.get_command_obj
    functionSourceFile: distutils
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.finalize_options
    functionSourceFile: typing
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: distutils.dist.Distribution.get_option_dict
    functionSourceFile: distutils
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: scheme.update
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: distutils.sysconfig.get_python_lib
    functionSourceFile: distutils
    functionUses: 17
    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: pip._internal.utils.deprecation
    functionSourceFile: pip._internal.utils.deprecation
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c01100>
    - <ast.Constant object at 0x7f30d8c01760>
    argNames:
    - message
    - category
    - filename
    - lineno
    - file
    - line
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: pip._internal.utils.deprecation._showwarning
    functionSourceFile: pip._internal.utils.deprecation
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - logger.warning
    - <builtin>.issubclass
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: pip._internal.utils.deprecation.install_warning_logger
    functionSourceFile: pip._internal.utils.deprecation
    functionUses: 5
    functionsReached:
    - warnings.simplefilter
    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: format_str.format
    functionSourceFile: <builtin>
    functionUses: 95
    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: pip
    functionSourceFile: pip
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c010d0>
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6
    functionName: pip.main
    functionSourceFile: pip
    functionUses: 0
    functionsReached:
    - pip._internal.cli.main_parser.create_main_parser
    - pathlib.Path
    - typing.cast.Environment.default
    - difflib.get_close_matches
    - pip._internal.cli.main_parser.identify_python_interpreter
    - optparse.OptionGroup
    - optparse.OptionGroup.add_option
    - warnings.filterwarnings
    - pip._internal.metadata.get_default_environment
    - <builtin>.str
    - warnings.simplefilter
    - commands_dict.keys
    - sys.exit
    - pip._internal.metadata.select_backend
    - os.access
    - subprocess.run
    - os.path.basename
    - pip._internal.locations.base.get_major_minor_version
    - optparse.OptionParser.disable_interspersed_args
    - os.path.split
    - shutil.get_terminal_size
    - sys.stdout.write
    - pip._internal.cli.autocompletion.autocomplete
    - name.lower
    - pip._internal.utils.misc.get_pip_version
    - pip._internal.utils.deprecation.install_warning_logger
    - optparse.OptionParser.add_option_group
    - pip._internal.cli.main_parser.parse_command
    - source.is_dir
    - os.path.join
    - pip._internal.commands.create_command
    - opt.metavar.split
    - <builtin>.super
    - current.lower
    - os.path.isdir
    - os.path.abspath
    - pip._internal.build_env.get_runnable_pip
    - itertools.chain.from_iterable
    - importlib.import_module
    - pip._internal.cli.parser.ConfigOptionParser.__init__
    - msg.append
    - os.path.normcase
    - os.path.exists
    - pip._internal.configuration.Configuration.__init__
    - os.path.dirname
    - <builtin>.bool
    - pip._internal.utils.entrypoints._wrapper
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.cli.autocompletion.get_path_completion_type
    - opts.append
    - command.main
    - cmd_args.remove
    - x.startswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.utils.misc.get_prog
    - os.path.isfile
    - <builtin>.len
    - typing.cast
    - pip._internal.cli.parser.PrettyHelpFormatter.__init__
    - <builtin>.int
    - os.listdir
    - x.split
    - <builtin>.getattr
    - contextlib.suppress
    - dist.canonical_name.startswith
    - val.lower
    - k.startswith
    - logger.debug
    - pip._internal.cli.autocompletion.auto_complete_paths
    - env.iter_installed_distributions
    - pip._internal.commands.get_similar_commands
    - os.fsdecode
    - pip._internal.cli.cmdoptions.make_option_group
    - optparse.OptionParser.print_help
    - pip_cmd.extend
    - locale.setlocale
    - optparse.OptionParser.parse_args
    - pip._internal.utils.misc.strtobool
    - sys.stderr.write
    - current.startswith
    - commands_dict.items
    - <builtin>.print
    - pip._internal.cli.main.main
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8bf5b80>
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 23
    functionName: pip._internal.utils.entrypoints._wrapper
    functionSourceFile: pip._internal.utils.entrypoints
    functionUses: 2
    functionsReached:
    - pip._internal.cli.main_parser.create_main_parser
    - pathlib.Path
    - typing.cast.Environment.default
    - difflib.get_close_matches
    - pip._internal.cli.main_parser.identify_python_interpreter
    - optparse.OptionGroup
    - optparse.OptionGroup.add_option
    - warnings.filterwarnings
    - pip._internal.metadata.get_default_environment
    - <builtin>.str
    - warnings.simplefilter
    - commands_dict.keys
    - sys.exit
    - pip._internal.metadata.select_backend
    - os.access
    - subprocess.run
    - os.path.basename
    - pip._internal.locations.base.get_major_minor_version
    - optparse.OptionParser.disable_interspersed_args
    - os.path.split
    - shutil.get_terminal_size
    - sys.stdout.write
    - pip._internal.cli.autocompletion.autocomplete
    - name.lower
    - pip._internal.utils.misc.get_pip_version
    - pip._internal.utils.deprecation.install_warning_logger
    - optparse.OptionParser.add_option_group
    - pip._internal.cli.main_parser.parse_command
    - source.is_dir
    - os.path.join
    - pip._internal.commands.create_command
    - opt.metavar.split
    - <builtin>.super
    - current.lower
    - os.path.isdir
    - os.path.abspath
    - pip._internal.build_env.get_runnable_pip
    - itertools.chain.from_iterable
    - importlib.import_module
    - pip._internal.cli.parser.ConfigOptionParser.__init__
    - msg.append
    - os.path.normcase
    - os.path.exists
    - pip._internal.configuration.Configuration.__init__
    - os.path.dirname
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.cli.autocompletion.get_path_completion_type
    - opts.append
    - command.main
    - cmd_args.remove
    - x.startswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.utils.misc.get_prog
    - os.path.isfile
    - <builtin>.len
    - typing.cast
    - pip._internal.cli.parser.PrettyHelpFormatter.__init__
    - <builtin>.int
    - os.listdir
    - x.split
    - <builtin>.getattr
    - contextlib.suppress
    - dist.canonical_name.startswith
    - val.lower
    - k.startswith
    - logger.debug
    - pip._internal.cli.autocompletion.auto_complete_paths
    - env.iter_installed_distributions
    - pip._internal.commands.get_similar_commands
    - os.fsdecode
    - pip._internal.cli.cmdoptions.make_option_group
    - optparse.OptionParser.print_help
    - pip_cmd.extend
    - locale.setlocale
    - optparse.OptionParser.parse_args
    - pip._internal.utils.misc.strtobool
    - sys.stderr.write
    - current.startswith
    - commands_dict.items
    - <builtin>.print
    - pip._internal.cli.main.main
    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: pip._internal.utils.entrypoints
    functionSourceFile: pip._internal.utils.entrypoints
    functionUses: 0
    functionsReached:
    - itertools.product
    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: itertools.product
    functionSourceFile: itertools
    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: sys.stderr.write
    functionSourceFile: sys
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 8
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8a3e310>
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 46
    functionName: pip._internal.cli.main.main
    functionSourceFile: pip._internal.cli.main
    functionUses: 4
    functionsReached:
    - pip._internal.cli.main_parser.create_main_parser
    - pathlib.Path
    - typing.cast.Environment.default
    - difflib.get_close_matches
    - pip._internal.cli.main_parser.identify_python_interpreter
    - optparse.OptionGroup
    - optparse.OptionGroup.add_option
    - warnings.filterwarnings
    - pip._internal.metadata.get_default_environment
    - <builtin>.str
    - warnings.simplefilter
    - commands_dict.keys
    - sys.exit
    - pip._internal.metadata.select_backend
    - os.access
    - subprocess.run
    - os.path.basename
    - pip._internal.locations.base.get_major_minor_version
    - optparse.OptionParser.disable_interspersed_args
    - os.path.split
    - shutil.get_terminal_size
    - sys.stdout.write
    - pip._internal.cli.autocompletion.autocomplete
    - name.lower
    - pip._internal.utils.misc.get_pip_version
    - pip._internal.utils.deprecation.install_warning_logger
    - optparse.OptionParser.add_option_group
    - pip._internal.cli.main_parser.parse_command
    - source.is_dir
    - os.path.join
    - pip._internal.commands.create_command
    - opt.metavar.split
    - <builtin>.super
    - current.lower
    - os.path.isdir
    - os.path.abspath
    - pip._internal.build_env.get_runnable_pip
    - itertools.chain.from_iterable
    - importlib.import_module
    - pip._internal.cli.parser.ConfigOptionParser.__init__
    - msg.append
    - os.path.normcase
    - os.path.exists
    - pip._internal.configuration.Configuration.__init__
    - os.path.dirname
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.cli.autocompletion.get_path_completion_type
    - opts.append
    - command.main
    - cmd_args.remove
    - x.startswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.utils.misc.get_prog
    - os.path.isfile
    - <builtin>.len
    - typing.cast
    - pip._internal.cli.parser.PrettyHelpFormatter.__init__
    - <builtin>.int
    - os.listdir
    - x.split
    - <builtin>.getattr
    - contextlib.suppress
    - dist.canonical_name.startswith
    - val.lower
    - k.startswith
    - logger.debug
    - pip._internal.cli.autocompletion.auto_complete_paths
    - env.iter_installed_distributions
    - pip._internal.commands.get_similar_commands
    - os.fsdecode
    - pip._internal.cli.cmdoptions.make_option_group
    - optparse.OptionParser.print_help
    - pip_cmd.extend
    - locale.setlocale
    - optparse.OptionParser.parse_args
    - pip._internal.utils.misc.strtobool
    - sys.stderr.write
    - current.startswith
    - commands_dict.items
    - <builtin>.print
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 46
    functionName: pip._internal.utils.entrypoints.get_best_invocation_for_this_pip
    functionSourceFile: pip._internal.utils.entrypoints
    functionUses: 1
    functionsReached:
    - os.path.samefile
    - shutil.which
    - pip._internal.utils.entrypoints.get_best_invocation_for_this_python
    - os.path.basename
    - os.path.exists
    - os.path.normcase
    - os.path.join
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shutil.which
    functionSourceFile: shutil
    functionUses: 23
    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.samefile
    functionSourceFile: os
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 73
    functionName: pip._internal.utils.entrypoints.get_best_invocation_for_this_python
    functionSourceFile: pip._internal.utils.entrypoints
    functionUses: 2
    functionsReached:
    - os.path.samefile
    - shutil.which
    - os.path.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.cli.main
    functionSourceFile: pip._internal.cli.main
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 10
    IfCount: 13
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 15
    functionName: pip._internal.cli.autocompletion.autocomplete
    functionSourceFile: pip._internal.cli.autocompletion
    functionUses: 5
    functionsReached:
    - dist.canonical_name.startswith
    - shutil.get_terminal_size
    - val.lower
    - pip._internal.cli.main_parser.create_main_parser
    - typing.cast.Environment.default
    - <builtin>.bool
    - k.startswith
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.cli.autocompletion.auto_complete_paths
    - pip._internal.utils.misc.get_pip_version
    - optparse.OptionGroup.add_option
    - optparse.OptionGroup
    - env.iter_installed_distributions
    - pip._internal.cli.autocompletion.get_path_completion_type
    - optparse.OptionParser.add_option_group
    - <builtin>.str
    - pip._internal.metadata.get_default_environment
    - opts.append
    - pip._internal.cli.cmdoptions.make_option_group
    - x.startswith
    - os.path.join
    - optparse.OptionParser.disable_interspersed_args
    - <builtin>.list
    - pip._internal.commands.create_command
    - opt.metavar.split
    - <builtin>.any
    - <builtin>.super
    - pip._internal.utils.misc.get_prog
    - sys.exit
    - os.path.isfile
    - os.access
    - pip._internal.metadata.select_backend
    - current.lower
    - os.path.isdir
    - os.path.abspath
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - pip._internal.cli.parser.PrettyHelpFormatter.__init__
    - itertools.chain.from_iterable
    - importlib.import_module
    - pip._internal.cli.parser.ConfigOptionParser.__init__
    - current.startswith
    - commands_dict.items
    - <builtin>.int
    - os.path.basename
    - os.path.normcase
    - os.listdir
    - pip._internal.configuration.Configuration.__init__
    - os.path.dirname
    - <builtin>.print
    - pip._internal.locations.base.get_major_minor_version
    - x.split
    - <builtin>.getattr
    - os.path.split
    - contextlib.suppress
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 9
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 69
    functionName: pip._internal.cli.main_parser.parse_command
    functionSourceFile: pip._internal.cli.main_parser
    functionUses: 5
    functionsReached:
    - shutil.get_terminal_size
    - sys.stdout.write
    - pip._internal.cli.main_parser.create_main_parser
    - pathlib.Path
    - difflib.get_close_matches
    - name.lower
    - pip._internal.cli.main_parser.identify_python_interpreter
    - pip._internal.utils.misc.get_pip_version
    - optparse.OptionGroup.add_option
    - optparse.OptionGroup
    - optparse.OptionParser.add_option_group
    - pip._internal.commands.get_similar_commands
    - source.is_dir
    - <builtin>.str
    - os.fsdecode
    - pip._internal.cli.cmdoptions.make_option_group
    - cmd_args.remove
    - os.path.join
    - optparse.OptionParser.print_help
    - commands_dict.keys
    - <builtin>.super
    - pip._internal.utils.misc.get_prog
    - sys.exit
    - <builtin>.len
    - pip_cmd.extend
    - os.path.isdir
    - os.path.abspath
    - optparse.OptionParser.parse_args
    - pip._internal.cli.parser.PrettyHelpFormatter.__init__
    - pip._internal.build_env.get_runnable_pip
    - subprocess.run
    - pip._internal.cli.parser.ConfigOptionParser.__init__
    - msg.append
    - commands_dict.items
    - os.path.basename
    - os.path.exists
    - pip._internal.configuration.Configuration.__init__
    - os.path.dirname
    - pip._internal.locations.base.get_major_minor_version
    - optparse.OptionParser.disable_interspersed_args
    linkageType: pythonLinkage
    raised:
    - CommandError
    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: locale.setlocale
    functionSourceFile: locale
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - name
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 109
    functionName: pip._internal.commands.create_command
    functionSourceFile: pip._internal.commands
    functionUses: 7
    functionsReached:
    - importlib.import_module
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: command.main
    functionSourceFile: <builtin>
    functionUses: 5
    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: pip._internal.cli.autocompletion
    functionSourceFile: pip._internal.cli.autocompletion
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 19
    functionName: pip._internal.cli.main_parser.create_main_parser
    functionSourceFile: pip._internal.cli.main_parser
    functionUses: 7
    functionsReached:
    - <builtin>.super
    - shutil.get_terminal_size
    - pip._internal.cli.parser.ConfigOptionParser.__init__
    - commands_dict.items
    - os.path.basename
    - pip._internal.utils.misc.get_prog
    - pip._internal.cli.cmdoptions.make_option_group
    - pip._internal.configuration.Configuration.__init__
    - os.path.dirname
    - optparse.OptionGroup
    - pip._internal.locations.base.get_major_minor_version
    - os.path.join
    - pip._internal.utils.misc.get_pip_version
    - os.path.abspath
    - optparse.OptionGroup.add_option
    - optparse.OptionParser.disable_interspersed_args
    - pip._internal.cli.parser.PrettyHelpFormatter.__init__
    - optparse.OptionParser.add_option_group
    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: current.startswith
    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: current.lower
    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: env.iter_installed_distributions
    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: dist.canonical_name.startswith
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - current
    - completion_type
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 144
    functionName: pip._internal.cli.autocompletion.auto_complete_paths
    functionSourceFile: pip._internal.cli.autocompletion
    functionUses: 6
    functionsReached:
    - os.path.normcase
    - os.path.isfile
    - os.listdir
    - os.access
    - os.path.isdir
    - os.path.join
    - os.path.abspath
    - os.path.split
    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: x.split
    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: k.startswith
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - cwords
    - cword
    - opts
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 120
    functionName: pip._internal.cli.autocompletion.get_path_completion_type
    functionSourceFile: pip._internal.cli.autocompletion
    functionUses: 6
    functionsReached:
    - opt.metavar.split
    - <builtin>.any
    - <builtin>.str
    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: opts.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: opt.metavar.split
    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: os.access
    functionSourceFile: os
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.metadata
    functionSourceFile: pip._internal.metadata
    functionUses: 0
    functionsReached:
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 29
    functionName: pip._internal.metadata._should_use_importlib_metadata
    functionSourceFile: pip._internal.metadata
    functionUses: 73
    functionsReached:
    - val.lower
    - <builtin>.bool
    - <builtin>.getattr
    - contextlib.suppress
    - pip._internal.utils.misc.strtobool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 260
    functionName: pip._internal.utils.misc.strtobool
    functionSourceFile: pip._internal.utils.misc
    functionUses: 77
    functionsReached:
    - val.lower
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 59
    functionName: pip._internal.metadata.select_backend
    functionSourceFile: pip._internal.metadata
    functionUses: 72
    functionsReached:
    - val.lower
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - <builtin>.getattr
    - typing.cast
    - contextlib.suppress
    - pip._internal.utils.misc.strtobool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.Environment.default
    functionSourceFile: typing
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - paths
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 79
    functionName: pip._internal.metadata.get_environment
    functionSourceFile: pip._internal.metadata
    functionUses: 11
    functionsReached:
    - val.lower
    - typing.cast.Environment.from_paths
    - <builtin>.bool
    - pip._internal.metadata.select_backend
    - pip._internal.metadata._should_use_importlib_metadata
    - <builtin>.getattr
    - typing.cast
    - contextlib.suppress
    - pip._internal.utils.misc.strtobool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.Environment.from_paths
    functionSourceFile: typing
    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: typing.cast.Distribution.from_directory
    functionSourceFile: typing
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.Distribution.from_wheel
    functionSourceFile: typing
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - metadata_contents
    - filename
    - canonical_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 109
    functionName: pip._internal.metadata.get_metadata_distribution
    functionSourceFile: pip._internal.metadata
    functionUses: 3
    functionsReached:
    - val.lower
    - typing.cast.Distribution.from_metadata_file_contents
    - <builtin>.bool
    - pip._internal.metadata.select_backend
    - pip._internal.metadata._should_use_importlib_metadata
    - <builtin>.getattr
    - typing.cast
    - contextlib.suppress
    - pip._internal.utils.misc.strtobool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.Distribution.from_metadata_file_contents
    functionSourceFile: typing
    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: 3
    functionLinenumber: -1
    functionName: pip._internal.utils.misc
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.tenacity._utils.to_seconds
    - <builtin>.isinstance
    - time_unit.total_seconds
    - contextlib.contextmanager
    - typing.TypeVar
    - pip._vendor.tenacity.wait.wait_fixed.__init__
    - <builtin>.float
    - logging.getLogger
    - pip._vendor.tenacity.stop.stop_after_delay.__init__
    - pip._vendor.tenacity.retry.retry_if_exception_type.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: pip._internal.utils.misc.get_pip_version
    functionSourceFile: pip._internal.utils.misc
    functionUses: 11
    functionsReached:
    - os.path.abspath
    - os.path.dirname
    - os.path.join
    - pip._internal.locations.base.get_major_minor_version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - py_version_info
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 83
    functionName: pip._internal.utils.misc.normalize_version_info
    functionSourceFile: pip._internal.utils.misc
    functionUses: 26
    functionsReached:
    - <builtin>.len
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 102
    functionName: pip._internal.utils.misc.ensure_dir
    functionSourceFile: pip._internal.utils.misc
    functionUses: 29
    functionsReached:
    - os.makedirs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 112
    functionName: pip._internal.utils.misc.get_prog
    functionSourceFile: pip._internal.utils.misc
    functionUses: 16
    functionsReached:
    - os.path.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - max_delay
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 97
    functionName: pip._vendor.tenacity.stop.stop_after_delay.__init__
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 2
    functionsReached:
    - <builtin>.float
    - pip._vendor.tenacity._utils.to_seconds
    - <builtin>.isinstance
    - time_unit.total_seconds
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - wait
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 50
    functionName: pip._vendor.tenacity.wait.wait_fixed.__init__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 2
    functionsReached:
    - <builtin>.float
    - pip._vendor.tenacity._utils.to_seconds
    - <builtin>.isinstance
    - time_unit.total_seconds
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30d8bf3190>
    argNames:
    - self
    - exception_types
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: pip._vendor.tenacity.retry.retry_if_exception_type.__init__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 9
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c055e0>
    - <ast.Constant object at 0x7f30de0f7fa0>
    argNames:
    - dir
    - ignore_errors
    - onexc
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 127
    functionName: pip._internal.utils.misc.rmtree
    functionSourceFile: pip._internal.utils.misc
    functionUses: 6
    functionsReached:
    - functools.partial
    - typing.cast
    - shutil.rmtree
    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: shutil.rmtree
    functionSourceFile: shutil
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - _args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 149
    functionName: pip._internal.utils.misc._onerror_ignore
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - _args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 153
    functionName: pip._internal.utils.misc._onerror_reraise
    functionSourceFile: pip._internal.utils.misc
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - func
    - path
    - exc_info
    - onexc
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 157
    functionName: pip._internal.utils.misc.rmtree_errorhandler
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached:
    - os.stat
    - os.chmod
    - pip._internal.utils.misc._onerror_reraise
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - message
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 233
    functionName: pip._internal.utils.misc.ask
    functionSourceFile: pip._internal.utils.misc
    functionUses: 8
    functionsReached:
    - pip._internal.utils.misc._check_no_input
    - response.strip
    - <builtin>.print
    - <builtin>.input
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - message
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 225
    functionName: pip._internal.utils.misc._check_no_input
    functionSourceFile: pip._internal.utils.misc
    functionUses: 12
    functionsReached:
    - os.environ.get
    linkageType: pythonLinkage
    raised:
    - Exception
    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>.input
    functionSourceFile: <builtin>
    functionUses: 11
    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: response.strip
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - message
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 248
    functionName: pip._internal.utils.misc.ask_input
    functionSourceFile: pip._internal.utils.misc
    functionUses: 2
    functionsReached:
    - <builtin>.input
    - pip._internal.utils.misc._check_no_input
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - message
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 254
    functionName: pip._internal.utils.misc.ask_password
    functionSourceFile: pip._internal.utils.misc
    functionUses: 2
    functionsReached:
    - pip._internal.utils.misc._check_no_input
    - os.environ.get
    - getpass.getpass
    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: val.lower
    functionSourceFile: <builtin>
    functionUses: 78
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - bytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 276
    functionName: pip._internal.utils.misc.format_size
    functionSourceFile: pip._internal.utils.misc
    functionUses: 8
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - rows
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 287
    functionName: pip._internal.utils.misc.tabulate
    functionSourceFile: pip._internal.utils.misc
    functionUses: 3
    functionsReached:
    - <builtin>.max
    - itertools.zip_longest
    - <builtin>.map
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Attribute object at 0x7f30fe125b80>
    argNames:
    - file
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 318
    functionName: pip._internal.utils.misc.read_chunks
    functionSourceFile: pip._internal.utils.misc
    functionUses: 21
    functionsReached:
    - file.read
    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: file.read
    functionSourceFile: <builtin>
    functionUses: 68
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fe1254f0>
    argNames:
    - path
    - resolve_symlinks
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 329
    functionName: pip._internal.utils.misc.normalize_path
    functionSourceFile: pip._internal.utils.misc
    functionUses: 26
    functionsReached:
    - os.path.realpath
    - os.path.expanduser
    - os.path.normcase
    - os.path.abspath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 342
    functionName: pip._internal.utils.misc.splitext
    functionSourceFile: pip._internal.utils.misc
    functionUses: 38
    functionsReached:
    - posixpath.splitext
    - base.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: posixpath.splitext
    functionSourceFile: posixpath
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base.lower
    functionSourceFile: <builtin>
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - old
    - new
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 351
    functionName: pip._internal.utils.misc.renames
    functionSourceFile: pip._internal.utils.misc
    functionUses: 4
    functionsReached:
    - os.removedirs
    - shutil.move
    - os.path.exists
    - os.path.split
    - os.makedirs
    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.removedirs
    functionSourceFile: os
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 368
    functionName: pip._internal.utils.misc.is_local
    functionSourceFile: pip._internal.utils.misc
    functionUses: 1
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - os.path.realpath
    - os.path.normcase
    - <builtin>.getattr
    - pip._internal.utils.misc.normalize_path
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.abspath
    - os.path.expanduser
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - msg
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 382
    functionName: pip._internal.utils.misc.write_output
    functionSourceFile: pip._internal.utils.misc
    functionUses: 19
    functionsReached:
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - orig_stream
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 390
    functionName: pip._internal.utils.misc.StreamWrapper.from_stream
    functionSourceFile: pip._internal.utils.misc
    functionUses: 6
    functionsReached:
    - io.StringIO.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.StringIO.__init__
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 398
    functionName: pip._internal.utils.misc.StreamWrapper.encoding
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - stream_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 403
    functionName: pip._internal.utils.misc.captured_output
    functionSourceFile: pip._internal.utils.misc
    functionUses: 5
    functionsReached:
    - pip._internal.utils.misc.StreamWrapper.from_stream
    - <builtin>.getattr
    - io.StringIO.__init__
    - <builtin>.setattr
    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: 3
    functionLinenumber: 417
    functionName: pip._internal.utils.misc.captured_stdout
    functionSourceFile: pip._internal.utils.misc
    functionUses: 3
    functionsReached:
    - pip._internal.utils.misc.StreamWrapper.from_stream
    - io.StringIO.__init__
    - <builtin>.setattr
    - <builtin>.getattr
    - pip._internal.utils.misc.captured_output
    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: 3
    functionLinenumber: 429
    functionName: pip._internal.utils.misc.captured_stderr
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached:
    - pip._internal.utils.misc.StreamWrapper.from_stream
    - io.StringIO.__init__
    - <builtin>.setattr
    - <builtin>.getattr
    - pip._internal.utils.misc.captured_output
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - sequential
    - named
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 437
    functionName: pip._internal.utils.misc.enum
    functionSourceFile: pip._internal.utils.misc
    functionUses: 2
    functionsReached:
    - enums.items
    - <builtin>.len
    - <builtin>.zip
    - <builtin>.type
    - <builtin>.dict
    - <builtin>.range
    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: enums.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - host
    - port
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 444
    functionName: pip._internal.utils.misc.build_netloc
    functionSourceFile: pip._internal.utils.misc
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfd8fac0>
    argNames:
    - netloc
    - scheme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 456
    functionName: pip._internal.utils.misc.build_url_from_netloc
    functionSourceFile: pip._internal.utils.misc
    functionUses: 23
    functionsReached:
    - netloc.count
    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: netloc.count
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - netloc
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 466
    functionName: pip._internal.utils.misc.parse_netloc
    functionSourceFile: pip._internal.utils.misc
    functionUses: 22
    functionsReached:
    - netloc.count
    - urllib.parse.urlparse
    - pip._internal.utils.misc.build_url_from_netloc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse
    functionSourceFile: <builtin>
    functionUses: 175
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - netloc
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 475
    functionName: pip._internal.utils.misc.split_auth_from_netloc
    functionSourceFile: pip._internal.utils.misc
    functionUses: 55
    functionsReached:
    - urllib.parse.unquote
    - auth.split
    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: auth.split
    functionSourceFile: <builtin>
    functionUses: 56
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.unquote
    functionSourceFile: <builtin>
    functionUses: 100
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - netloc
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 504
    functionName: pip._internal.utils.misc.redact_netloc
    functionSourceFile: pip._internal.utils.misc
    functionUses: 50
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc.split_auth_from_netloc
    - auth.split
    - urllib.parse.quote
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote
    functionSourceFile: <builtin>
    functionUses: 91
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - transform_netloc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 524
    functionName: pip._internal.utils.misc._transform_url
    functionSourceFile: pip._internal.utils.misc
    functionUses: 48
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc._redact_netloc
    - typing.cast
    - pip._internal.utils.misc.split_auth_from_netloc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlsplit
    functionSourceFile: <builtin>
    functionUses: 112
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - netloc
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 548
    functionName: pip._internal.utils.misc._redact_netloc
    functionSourceFile: pip._internal.utils.misc
    functionUses: 49
    functionsReached:
    - urllib.parse.unquote
    - auth.split
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - pip._internal.utils.misc.split_auth_from_netloc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - netloc
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 544
    functionName: pip._internal.utils.misc._get_netloc
    functionSourceFile: pip._internal.utils.misc
    functionUses: 49
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc.split_auth_from_netloc
    - auth.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlunsplit
    functionSourceFile: <builtin>
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 552
    functionName: pip._internal.utils.misc.split_auth_netloc_from_url
    functionSourceFile: pip._internal.utils.misc
    functionUses: 4
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc._redact_netloc
    - typing.cast
    - pip._internal.utils.misc.split_auth_from_netloc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 564
    functionName: pip._internal.utils.misc.remove_auth_from_url
    functionSourceFile: pip._internal.utils.misc
    functionUses: 5
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc._redact_netloc
    - typing.cast
    - pip._internal.utils.misc.split_auth_from_netloc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - secret
    - redacted
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 584
    functionName: pip._internal.utils.misc.HiddenText.__init__
    functionSourceFile: pip._internal.utils.misc
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 588
    functionName: pip._internal.utils.misc.HiddenText.__repr__
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 591
    functionName: pip._internal.utils.misc.HiddenText.__str__
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 595
    functionName: pip._internal.utils.misc.HiddenText.__eq__
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 604
    functionName: pip._internal.utils.misc.hide_value
    functionSourceFile: pip._internal.utils.misc
    functionUses: 4
    functionsReached:
    - pip._internal.utils.misc.HiddenText.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - modifying_pip
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 613
    functionName: pip._internal.utils.misc.protect_pip_from_modification_on_windows
    functionSourceFile: pip._internal.utils.misc
    functionUses: 3
    functionsReached:
    - os.path.basename
    linkageType: pythonLinkage
    raised:
    - CommandError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 639
    functionName: pip._internal.utils.misc.check_externally_managed
    functionSourceFile: pip._internal.utils.misc
    functionUses: 3
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - os.path.isfile
    - pip._internal.utils.virtualenv._running_under_venv
    - <builtin>.getattr
    - os.path.join
    - sysconfig.get_path
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 654
    functionName: pip._internal.utils.misc.is_console_interactive
    functionSourceFile: pip._internal.utils.misc
    functionUses: 6
    functionsReached:
    - sys.stdin.isatty
    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.stdin.isatty
    functionSourceFile: sys
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.BinOp object at 0x7f30dfd69af0>
    argNames:
    - path
    - blocksize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 659
    functionName: pip._internal.utils.misc.hash_file
    functionSourceFile: pip._internal.utils.misc
    functionUses: 16
    functionsReached:
    - <builtin>.len
    - file.read
    - <builtin>.open
    - hashlib.sha256
    - h.update
    - pip._internal.utils.misc.read_chunks
    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: hashlib.sha256
    functionSourceFile: hashlib
    functionUses: 23
    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: h.update
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - iterable
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 671
    functionName: pip._internal.utils.misc.pairwise
    functionSourceFile: pip._internal.utils.misc
    functionUses: 8
    functionsReached:
    - <builtin>.iter
    - itertools.zip_longest
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - pred
    - iterable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 682
    functionName: pip._internal.utils.misc.partition
    functionSourceFile: pip._internal.utils.misc
    functionUses: 3
    functionsReached:
    - itertools.tee
    - <builtin>.filter
    - itertools.filterfalse
    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: itertools.tee
    functionSourceFile: itertools
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfd76f10>
    - <ast.Constant object at 0x7f30dfd76f40>
    argNames:
    - self
    - wheel_directory
    - config_settings
    - metadata_directory
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 711
    functionName: pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.build_wheel
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfd6d670>
    argNames:
    - self
    - sdist_directory
    - config_settings
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 722
    functionName: pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.build_sdist
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfd6ddc0>
    - <ast.Constant object at 0x7f30dfd6ddf0>
    argNames:
    - self
    - wheel_directory
    - config_settings
    - metadata_directory
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 730
    functionName: pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.build_editable
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfd8d4c0>
    argNames:
    - self
    - config_settings
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 741
    functionName: pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.get_requires_for_build_wheel
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfd8db20>
    argNames:
    - self
    - config_settings
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 747
    functionName: pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.get_requires_for_build_sdist
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfd801c0>
    argNames:
    - self
    - config_settings
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 753
    functionName: pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.get_requires_for_build_editable
    functionSourceFile: pip._internal.utils.misc
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfd808e0>
    - <ast.Constant object at 0x7f30dfd80910>
    argNames:
    - self
    - metadata_directory
    - config_settings
    - _allow_fallback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 759
    functionName: pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.prepare_metadata_for_build_wheel
    functionSourceFile: pip._internal.utils.misc
    functionUses: 2
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfd8a0d0>
    - <ast.Constant object at 0x7f30dfd8a100>
    argNames:
    - self
    - metadata_directory
    - config_settings
    - _allow_fallback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 772
    functionName: pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.prepare_metadata_for_build_editable
    functionSourceFile: pip._internal.utils.misc
    functionUses: 2
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.tenacity
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - <builtin>.object
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 128
    functionName: pip._vendor.tenacity.BaseAction.__repr__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 132
    functionName: pip._vendor.tenacity.BaseAction.__str__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sleep
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 140
    functionName: pip._vendor.tenacity.RetryAction.__init__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 6
    functionsReached:
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - first
    - second
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 147
    functionName: pip._vendor.tenacity._first_set
    functionSourceFile: pip._vendor.tenacity
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - last_attempt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 154
    functionName: pip._vendor.tenacity.RetryError.__init__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 6
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 158
    functionName: pip._vendor.tenacity.RetryError.reraise
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 163
    functionName: pip._vendor.tenacity.RetryError.__str__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 170
    functionName: pip._vendor.tenacity.AttemptManager.__init__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 173
    functionName: pip._vendor.tenacity.AttemptManager.__enter__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_value
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 176
    functionName: pip._vendor.tenacity.AttemptManager.__exit__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.tenacity.Future.__init__
    - concurrent.futures.Future.set_result
    - pip._vendor.tenacity.RetryCallState.set_exception
    - time.monotonic
    - concurrent.futures.Future.set_exception
    - pip._vendor.tenacity.RetryCallState.set_result
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - exc_info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 475
    functionName: pip._vendor.tenacity.RetryCallState.set_exception
    functionSourceFile: pip._vendor.tenacity
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - time.monotonic
    - pip._vendor.tenacity.Future.__init__
    - concurrent.futures.Future.set_exception
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - val
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 469
    functionName: pip._vendor.tenacity.RetryCallState.set_result
    functionSourceFile: pip._vendor.tenacity
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - time.monotonic
    - pip._vendor.tenacity.Future.__init__
    - concurrent.futures.Future.set_result
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 11
    argDefaultValues:
    - <ast.Name object at 0x7f30dbadeca0>
    - <ast.Name object at 0x7f30dbade670>
    - <ast.Call object at 0x7f30dbade970>
    - <ast.Call object at 0x7f30df0efb80>
    - <ast.Name object at 0x7f30d5679730>
    - <ast.Name object at 0x7f30d5679280>
    - <ast.Constant object at 0x7f30e7833cd0>
    - <ast.Constant object at 0x7f30e7833df0>
    - <ast.Name object at 0x7f30e7833910>
    - <ast.Constant object at 0x7f30e7833310>
    argNames:
    - self
    - sleep
    - stop
    - wait
    - retry
    - before
    - after
    - before_sleep
    - reraise
    - retry_error_cls
    - retry_error_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 192
    functionName: pip._vendor.tenacity.BaseRetrying.__init__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 1
    functionsReached:
    - threading.local
    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: threading.local
    functionSourceFile: threading
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 11
    argDefaultValues:
    - <ast.Name object at 0x7f30c8d156a0>
    - <ast.Name object at 0x7f30c8d152e0>
    - <ast.Name object at 0x7f30c8d15eb0>
    - <ast.Name object at 0x7f30c8d15970>
    - <ast.Name object at 0x7f30c8d15670>
    - <ast.Name object at 0x7f30c8d15d00>
    - <ast.Name object at 0x7f30c8d15be0>
    - <ast.Name object at 0x7f30c8d15d90>
    - <ast.Name object at 0x7f30c8d150d0>
    - <ast.Name object at 0x7f30c8d15070>
    argNames:
    - self
    - sleep
    - stop
    - wait
    - retry
    - before
    - after
    - before_sleep
    - reraise
    - retry_error_cls
    - retry_error_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 217
    functionName: pip._vendor.tenacity.BaseRetrying.copy
    functionSourceFile: pip._vendor.tenacity
    functionUses: 1
    functionsReached:
    - pip._vendor.tenacity._first_set
    - abc.ABC.__class__
    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: abc.ABC.__class__
    functionSourceFile: abc
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 244
    functionName: pip._vendor.tenacity.BaseRetrying.__repr__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - <builtin>.id
    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: 256
    functionName: pip._vendor.tenacity.BaseRetrying.statistics
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 283
    functionName: pip._vendor.tenacity.BaseRetrying.wraps
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - functools.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 290
    functionName: pip._vendor.tenacity.BaseRetrying.wraps.wrapped_f
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - threading.local
    - pip._vendor.tenacity.BaseRetrying.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 293
    functionName: pip._vendor.tenacity.BaseRetrying.wraps.retry_with
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - pip._vendor.tenacity._first_set
    - abc.ABC.__class__
    - pip._vendor.tenacity.BaseRetrying.copy
    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: 301
    functionName: pip._vendor.tenacity.BaseRetrying.begin
    functionSourceFile: pip._vendor.tenacity
    functionUses: 5
    functionsReached:
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 3
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 307
    functionName: pip._vendor.tenacity.BaseRetrying.iter
    functionSourceFile: pip._vendor.tenacity
    functionUses: 5
    functionsReached:
    - abc.ABC.__init__
    - <builtin>.super
    - <builtin>.isinstance
    - pip._vendor.tenacity.RetryAction.__init__
    - pip._vendor.tenacity.wait.wait_none.__init__
    - pip._vendor.tenacity.before.before_nothing
    - pip._vendor.tenacity.RetryError.__init__
    - <builtin>.float
    - pip._vendor.tenacity.after.after_nothing
    - concurrent.futures.Future.result
    - concurrent.futures.Future.exception
    - pip._vendor.tenacity.retry.retry_if_exception_type.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - retry_state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: pip._vendor.tenacity.before.before_nothing
    functionSourceFile: ''
    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: concurrent.futures.Future.exception
    functionSourceFile: concurrent
    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: concurrent.futures.Future.result
    functionSourceFile: concurrent
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - retry_state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: pip._vendor.tenacity.after.after_nothing
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 60
    functionName: pip._vendor.tenacity.wait.wait_none.__init__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 6
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 344
    functionName: pip._vendor.tenacity.BaseRetrying.__iter__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - pip._vendor.tenacity.RetryCallState.__init__
    - <builtin>.isinstance
    - pip._vendor.tenacity.RetryAction.__init__
    - pip._vendor.tenacity.BaseRetrying.begin
    - pip._vendor.tenacity.RetryError.__init__
    - concurrent.futures.Future.result
    - concurrent.futures.Future.exception
    - time.sleep
    - pip._vendor.tenacity.retry.retry_if_exception_type.__init__
    - abc.ABC.__init__
    - pip._vendor.tenacity.wait.wait_none.__init__
    - pip._vendor.tenacity.RetryCallState.prepare_for_next_attempt
    - <builtin>.float
    - <builtin>.super
    - pip._vendor.tenacity.BaseRetrying.iter
    - pip._vendor.tenacity.after.after_nothing
    - pip._vendor.tenacity.before.before_nothing
    - pip._vendor.tenacity.AttemptManager.__init__
    - asyncio.sleep
    - pip._vendor.tenacity.nap.sleep
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - retry_object
    - fn
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 428
    functionName: pip._vendor.tenacity.RetryCallState.__init__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 5
    functionsReached:
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 463
    functionName: pip._vendor.tenacity.RetryCallState.prepare_for_next_attempt
    functionSourceFile: ''
    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: asyncio.sleep
    functionSourceFile: asyncio
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - seconds
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 25
    functionName: pip._vendor.tenacity.nap.sleep
    functionSourceFile: pip._vendor.tenacity.nap
    functionUses: 2
    functionsReached:
    - time.sleep
    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: pip._vendor.tenacity.BaseRetrying
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - fn
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 359
    functionName: pip._vendor.tenacity.BaseRetrying.__call__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - fn
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 371
    functionName: pip._vendor.tenacity.Retrying.__call__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - pip._vendor.tenacity.Future.__init__
    - pip._vendor.tenacity.RetryCallState.__init__
    - <builtin>.isinstance
    - pip._vendor.tenacity.RetryAction.__init__
    - pip._vendor.tenacity.BaseRetrying.begin
    - pip._vendor.tenacity.RetryError.__init__
    - concurrent.futures.Future.set_exception
    - concurrent.futures.Future.result
    - concurrent.futures.Future.exception
    - pip._vendor.tenacity.RetryCallState.set_result
    - time.sleep
    - pip._vendor.tenacity.retry.retry_if_exception_type.__init__
    - abc.ABC.__init__
    - pip._vendor.tenacity.wait.wait_none.__init__
    - pip._vendor.tenacity.RetryCallState.prepare_for_next_attempt
    - pip._vendor.tenacity.RetryCallState.set_exception
    - <builtin>.float
    - <builtin>.super
    - pip._vendor.tenacity.BaseRetrying.iter
    - pip._vendor.tenacity.after.after_nothing
    - pip._vendor.tenacity.before.before_nothing
    - concurrent.futures.Future.set_result
    - asyncio.sleep
    - pip._vendor.tenacity.nap.sleep
    - time.monotonic
    - sys.exc_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - attempt_number
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 405
    functionName: pip._vendor.tenacity.Future.__init__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 7
    functionsReached:
    - <builtin>.super
    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: 410
    functionName: pip._vendor.tenacity.Future.failed
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - concurrent.futures.Future.exception
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - attempt_number
    - value
    - has_exception
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 415
    functionName: pip._vendor.tenacity.Future.construct
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.tenacity.Future.__init__
    - fut.set_exception
    - fut.set_result
    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: fut.set_exception
    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: fut.set_result
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 458
    functionName: pip._vendor.tenacity.RetryCallState.seconds_since_start
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: concurrent.futures.Future.set_result
    functionSourceFile: concurrent
    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: concurrent.futures.Future.set_exception
    functionSourceFile: concurrent
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 483
    functionName: pip._vendor.tenacity.RetryCallState.__repr__
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - <builtin>.id
    - <builtin>.float
    - <builtin>.round
    - concurrent.futures.Future.result
    - concurrent.futures.Future.exception
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - dargs
    - dkw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 518
    functionName: pip._vendor.tenacity.retry
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - abc.ABC.__init__
    - <builtin>.super
    - <builtin>.len
    - <builtin>.callable
    - pip._vendor.tenacity.retry.retry_if_exception_type.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 529
    functionName: pip._vendor.tenacity.retry.wrap
    functionSourceFile: pip._vendor.tenacity
    functionUses: 0
    functionsReached:
    - r.wraps
    - <builtin>.isinstance
    - tornado.gen.is_coroutine_function
    - warnings.warn
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tornado.gen.is_coroutine_function
    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: r.wraps
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.tenacity.tornadoweb
    functionSourceFile: pip._vendor.tenacity.tornadoweb
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7f30d568ba60>
    argNames:
    - self
    - sleep
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: pip._vendor.tenacity.tornadoweb.TornadoRetrying.__init__
    functionSourceFile: pip._vendor.tenacity.tornadoweb
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.tenacity.tornadoweb.TornadoRetrying
    functionSourceFile: pip._vendor.tenacity.tornadoweb
    functionUses: 0
    functionsReached:
    - tornado.gen.coroutine
    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: tornado.gen.coroutine
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - fn
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 37
    functionName: pip._vendor.tenacity.tornadoweb.TornadoRetrying.__call__
    functionSourceFile: pip._vendor.tenacity.tornadoweb
    functionUses: 0
    functionsReached:
    - pip._vendor.tenacity.Future.__init__
    - pip._vendor.tenacity.RetryCallState.__init__
    - <builtin>.isinstance
    - pip._vendor.tenacity.RetryAction.__init__
    - pip._vendor.tenacity.BaseRetrying.begin
    - pip._vendor.tenacity.RetryError.__init__
    - concurrent.futures.Future.set_exception
    - concurrent.futures.Future.result
    - concurrent.futures.Future.exception
    - pip._vendor.tenacity.RetryCallState.set_result
    - pip._vendor.tenacity.retry.retry_if_exception_type.__init__
    - abc.ABC.__init__
    - pip._vendor.tenacity.wait.wait_none.__init__
    - pip._vendor.tenacity.RetryCallState.prepare_for_next_attempt
    - pip._vendor.tenacity.RetryCallState.set_exception
    - <builtin>.float
    - <builtin>.super
    - pip._vendor.tenacity.BaseRetrying.iter
    - pip._vendor.tenacity.after.after_nothing
    - pip._vendor.tenacity.before.before_nothing
    - concurrent.futures.Future.set_result
    - time.monotonic
    - sys.exc_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.tenacity.stop
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached:
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.tenacity.stop.stop_base
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 31
    functionName: pip._vendor.tenacity.stop.stop_base.__call__
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: pip._vendor.tenacity.stop.stop_base.__and__
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached:
    - pip._vendor.tenacity.stop.stop_all.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stops
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 57
    functionName: pip._vendor.tenacity.stop.stop_all.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: pip._vendor.tenacity.stop.stop_base.__or__
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached:
    - pip._vendor.tenacity.stop.stop_any.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stops
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 47
    functionName: pip._vendor.tenacity.stop.stop_any.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: pip._vendor.tenacity.stop.stop_any.__call__
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached:
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 60
    functionName: pip._vendor.tenacity.stop.stop_all.__call__
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached:
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 67
    functionName: pip._vendor.tenacity.stop._stop_never.__call__
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 77
    functionName: pip._vendor.tenacity.stop.stop_when_event_set.__init__
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 80
    functionName: pip._vendor.tenacity.stop.stop_when_event_set.__call__
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - max_attempt_number
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: pip._vendor.tenacity.stop.stop_after_attempt.__init__
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 90
    functionName: pip._vendor.tenacity.stop.stop_after_attempt.__call__
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - time_unit
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: pip._vendor.tenacity._utils.to_seconds
    functionSourceFile: pip._vendor.tenacity._utils
    functionUses: 7
    functionsReached:
    - <builtin>.float
    - <builtin>.isinstance
    - time_unit.total_seconds
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 100
    functionName: pip._vendor.tenacity.stop.stop_after_delay.__call__
    functionSourceFile: pip._vendor.tenacity.stop
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: pip._vendor.tenacity._utils
    functionSourceFile: pip._vendor.tenacity._utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - pos_num
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 27
    functionName: pip._vendor.tenacity._utils.find_ordinal
    functionSourceFile: pip._vendor.tenacity._utils
    functionUses: 3
    functionsReached:
    - pip._vendor.tenacity._utils.find_ordinal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - pos_num
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 43
    functionName: pip._vendor.tenacity._utils.to_ordinal
    functionSourceFile: pip._vendor.tenacity._utils
    functionUses: 2
    functionsReached:
    - pip._vendor.tenacity._utils.find_ordinal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - cb
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 47
    functionName: pip._vendor.tenacity._utils.get_callback_name
    functionSourceFile: pip._vendor.tenacity._utils
    functionUses: 3
    functionsReached:
    - segments.insert
    - <builtin>.repr
    - segments.append
    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: segments.append
    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: segments.insert
    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: time_unit.total_seconds
    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: pip._vendor.tenacity.before
    functionSourceFile: pip._vendor.tenacity.before
    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:
    - logger
    - log_level
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 31
    functionName: pip._vendor.tenacity.before.before_log
    functionSourceFile: pip._vendor.tenacity.before
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - retry_state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 34
    functionName: pip._vendor.tenacity.before.before_log.log_it
    functionSourceFile: pip._vendor.tenacity.before
    functionUses: 0
    functionsReached:
    - segments.insert
    - pip._vendor.tenacity._utils.find_ordinal
    - pip._vendor.tenacity._utils.get_callback_name
    - segments.append
    - <builtin>.repr
    - logger.log
    - pip._vendor.tenacity._utils.to_ordinal
    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: pip._vendor.tenacity.nap
    functionSourceFile: pip._vendor.tenacity.nap
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 37
    functionName: pip._vendor.tenacity.nap.sleep_using_event.__init__
    functionSourceFile: pip._vendor.tenacity.nap
    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
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 40
    functionName: pip._vendor.tenacity.nap.sleep_using_event.__call__
    functionSourceFile: pip._vendor.tenacity.nap
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.tenacity.after
    functionSourceFile: pip._vendor.tenacity.after
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d568b7f0>
    argNames:
    - logger
    - log_level
    - sec_format
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 31
    functionName: pip._vendor.tenacity.after.after_log
    functionSourceFile: pip._vendor.tenacity.after
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - retry_state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 38
    functionName: pip._vendor.tenacity.after.after_log.log_it
    functionSourceFile: pip._vendor.tenacity.after
    functionUses: 0
    functionsReached:
    - segments.insert
    - pip._vendor.tenacity._utils.find_ordinal
    - pip._vendor.tenacity._utils.get_callback_name
    - segments.append
    - <builtin>.repr
    - logger.log
    - pip._vendor.tenacity._utils.to_ordinal
    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: pip._vendor.tenacity._asyncio
    functionSourceFile: pip._vendor.tenacity._asyncio
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30ea990dc0>
    argNames:
    - self
    - sleep
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: pip._vendor.tenacity._asyncio.AsyncRetrying.__init__
    functionSourceFile: pip._vendor.tenacity._asyncio
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - fn
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 40
    functionName: pip._vendor.tenacity._asyncio.AsyncRetrying.__call__
    functionSourceFile: pip._vendor.tenacity._asyncio
    functionUses: 0
    functionsReached:
    - pip._vendor.tenacity.Future.__init__
    - pip._vendor.tenacity.RetryCallState.__init__
    - <builtin>.isinstance
    - pip._vendor.tenacity.RetryAction.__init__
    - pip._vendor.tenacity.BaseRetrying.begin
    - pip._vendor.tenacity.RetryError.__init__
    - concurrent.futures.Future.set_exception
    - concurrent.futures.Future.result
    - concurrent.futures.Future.exception
    - pip._vendor.tenacity.RetryCallState.set_result
    - pip._vendor.tenacity.retry.retry_if_exception_type.__init__
    - abc.ABC.__init__
    - pip._vendor.tenacity.wait.wait_none.__init__
    - pip._vendor.tenacity.RetryCallState.prepare_for_next_attempt
    - pip._vendor.tenacity.RetryCallState.set_exception
    - <builtin>.float
    - <builtin>.super
    - pip._vendor.tenacity.BaseRetrying.iter
    - pip._vendor.tenacity.after.after_nothing
    - pip._vendor.tenacity.before.before_nothing
    - concurrent.futures.Future.set_result
    - asyncio.sleep
    - time.monotonic
    - sys.exc_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 61
    functionName: pip._vendor.tenacity._asyncio.AsyncRetrying.__iter__
    functionSourceFile: pip._vendor.tenacity._asyncio
    functionUses: 0
    functionsReached: []
    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: 2
    functionLinenumber: 64
    functionName: pip._vendor.tenacity._asyncio.AsyncRetrying.__aiter__
    functionSourceFile: pip._vendor.tenacity._asyncio
    functionUses: 0
    functionsReached:
    - time.monotonic
    - pip._vendor.tenacity.BaseRetrying.begin
    - pip._vendor.tenacity.RetryCallState.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 69
    functionName: pip._vendor.tenacity._asyncio.AsyncRetrying.__anext__
    functionSourceFile: pip._vendor.tenacity._asyncio
    functionUses: 0
    functionsReached:
    - abc.ABC.__init__
    - <builtin>.super
    - <builtin>.isinstance
    - pip._vendor.tenacity.RetryAction.__init__
    - pip._vendor.tenacity.wait.wait_none.__init__
    - pip._vendor.tenacity.RetryCallState.prepare_for_next_attempt
    - pip._vendor.tenacity.AttemptManager.__init__
    - asyncio.sleep
    - pip._vendor.tenacity.BaseRetrying.iter
    - pip._vendor.tenacity.before.before_nothing
    - pip._vendor.tenacity.RetryError.__init__
    - pip._vendor.tenacity.after.after_nothing
    - <builtin>.float
    - concurrent.futures.Future.result
    - concurrent.futures.Future.exception
    - pip._vendor.tenacity.retry.retry_if_exception_type.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 82
    functionName: pip._vendor.tenacity._asyncio.AsyncRetrying.wraps
    functionSourceFile: pip._vendor.tenacity._asyncio
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - functools.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: pip._vendor.tenacity._asyncio.AsyncRetrying.wraps.async_wrapped
    functionSourceFile: pip._vendor.tenacity._asyncio
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.tenacity.before_sleep
    functionSourceFile: pip._vendor.tenacity.before_sleep
    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:
    - retry_state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: pip._vendor.tenacity.before_sleep.before_sleep_nothing
    functionSourceFile: pip._vendor.tenacity.before_sleep
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f114f730>
    argNames:
    - logger
    - log_level
    - exc_info
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 31
    functionName: pip._vendor.tenacity.before_sleep.before_sleep_log
    functionSourceFile: pip._vendor.tenacity.before_sleep
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - retry_state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 38
    functionName: pip._vendor.tenacity.before_sleep.before_sleep_log.log_it
    functionSourceFile: pip._vendor.tenacity.before_sleep
    functionUses: 0
    functionsReached:
    - segments.insert
    - retry_state.outcome.exception
    - pip._vendor.tenacity._utils.get_callback_name
    - segments.append
    - <builtin>.repr
    - logger.log
    - retry_state.outcome.result
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: retry_state.outcome.exception
    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: retry_state.outcome.result
    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: pip._vendor.tenacity.wait
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.tenacity.wait.wait_base
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 31
    functionName: pip._vendor.tenacity.wait.wait_base.__call__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: pip._vendor.tenacity.wait.wait_base.__add__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 1
    functionsReached:
    - pip._vendor.tenacity.wait.wait_combine.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - strategies
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 78
    functionName: pip._vendor.tenacity.wait.wait_combine.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 37
    functionName: pip._vendor.tenacity.wait.wait_base.__radd__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached:
    - pip._vendor.tenacity.wait.wait_combine.__init__
    - pip._vendor.tenacity.wait.wait_base.__add__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 53
    functionName: pip._vendor.tenacity.wait.wait_fixed.__call__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bc6610>
    - <ast.Constant object at 0x7f30f6bc6b20>
    argNames:
    - self
    - min
    - max
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 67
    functionName: pip._vendor.tenacity.wait.wait_random.__init__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached:
    - <builtin>.float
    - pip._vendor.tenacity._utils.to_seconds
    - <builtin>.isinstance
    - time_unit.total_seconds
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 71
    functionName: pip._vendor.tenacity.wait.wait_random.__call__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached:
    - random.random
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 81
    functionName: pip._vendor.tenacity.wait.wait_combine.__call__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - strategies
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 101
    functionName: pip._vendor.tenacity.wait.wait_chain.__init__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 104
    functionName: pip._vendor.tenacity.wait.wait_chain.__call__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - <builtin>.len
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c05670>
    - <ast.Constant object at 0x7f30d8c05a30>
    - <ast.Attribute object at 0x7f30d8c05a60>
    argNames:
    - self
    - start
    - increment
    - max
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 117
    functionName: pip._vendor.tenacity.wait.wait_incrementing.__init__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached:
    - <builtin>.float
    - pip._vendor.tenacity._utils.to_seconds
    - <builtin>.isinstance
    - time_unit.total_seconds
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 127
    functionName: pip._vendor.tenacity.wait.wait_incrementing.__call__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached:
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30eb9b0b80>
    - <ast.Attribute object at 0x7f30ee3d01c0>
    - <ast.Constant object at 0x7f30ee3d0280>
    - <ast.Constant object at 0x7f30ee3d0250>
    argNames:
    - self
    - multiplier
    - max
    - exp_base
    - min
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 145
    functionName: pip._vendor.tenacity.wait.wait_exponential.__init__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached:
    - <builtin>.float
    - pip._vendor.tenacity._utils.to_seconds
    - <builtin>.isinstance
    - time_unit.total_seconds
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 157
    functionName: pip._vendor.tenacity.wait.wait_exponential.__call__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 192
    functionName: pip._vendor.tenacity.wait.wait_random_exponential.__call__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - random.uniform
    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: random.uniform
    functionSourceFile: random
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d568b3a0>
    - <ast.Attribute object at 0x7f30d568b5b0>
    - <ast.Constant object at 0x7f30d568b7f0>
    - <ast.Constant object at 0x7f30d568b040>
    argNames:
    - self
    - initial
    - max
    - exp_base
    - jitter
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 209
    functionName: pip._vendor.tenacity.wait.wait_exponential_jitter.__init__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 221
    functionName: pip._vendor.tenacity.wait.wait_exponential_jitter.__call__
    functionSourceFile: pip._vendor.tenacity.wait
    functionUses: 0
    functionsReached:
    - random.uniform
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: pip._vendor.packaging.requirements
    functionSourceFile: pip._vendor.packaging.requirements
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Regex.__init__
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Word.__init__
    - pip._vendor.pyparsing.core.Combine.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - re.compile
    - pip._vendor.pyparsing.core.ParserElement.setParseAction
    - re.escape
    - itertools.chain
    - _VERSION_SPEC.setParseAction
    - VERSION_SPEC.setParseAction
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - <builtin>.set
    - pip._vendor.pyparsing.helpers.originalTextFor
    - pip._vendor.pyparsing.core.ParserElement.suppress
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.super
    - ret.append
    - <builtin>.len
    - pip._vendor.pyparsing.core.ZeroOrMore.__init__
    - <builtin>.sorted
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace
    - <builtin>.iter
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - <builtin>.ord
    - pip._vendor.pyparsing.core.Forward.copy
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - itertools.groupby
    - pip._vendor.pyparsing.core.Suppress.suppress
    - itertools.count
    - traceback.extract_stack
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 20
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 29
    ICount: 1
    IfCount: 20
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7f30f49f3850>
    - <ast.Constant object at 0x7f30f49f3820>
    - <ast.Constant object at 0x7f30f49f37f0>
    - <ast.Constant object at 0x7f30f49f37c0>
    - <ast.Constant object at 0x7f30f49f3790>
    - <ast.Constant object at 0x7f30f49f3760>
    - <ast.Constant object at 0x7f30f49f3730>
    argNames:
    - self
    - init_chars
    - body_chars
    - min
    - max
    - exact
    - as_keyword
    - exclude_chars
    - initChars
    - bodyChars
    - asKeyword
    - excludeChars
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2803
    functionName: pip._vendor.pyparsing.core.Word.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 7
    functionsReached:
    - <builtin>.super
    - ret.append
    - itertools.chain
    - collections.deque
    - <builtin>.len
    - <builtin>.sorted
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - itertools.groupby
    - <builtin>.set
    - re.compile
    - <builtin>.iter
    - re.escape
    - itertools.count
    - <builtin>.next
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    - <builtin>.ord
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f481dca0>
    argNames:
    - self
    - match_string
    - matchString
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2431
    functionName: pip._vendor.pyparsing.core.Literal.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 66
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 5875
    functionName: pip._vendor.pyparsing.core.Suppress.suppress
    functionSourceFile: ''
    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: 3
    functionLinenumber: 1710
    functionName: pip._vendor.pyparsing.core.ParserElement.suppress
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    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 0x7f30f4364c10>
    argNames:
    - self
    - expr
    - stop_on
    - stopOn
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5068
    functionName: pip._vendor.pyparsing.core.ZeroOrMore.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 9
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4333fd0>
    - <ast.Constant object at 0x7f30f4337040>
    argNames:
    - self
    - expr
    - join_string
    - adjacent
    - joinString
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 5662
    functionName: pip._vendor.pyparsing.core.Combine.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 10
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - <builtin>.set
    - pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace
    - pip._vendor.pyparsing.core.Forward.__init__
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30f48ffac0>
    - <ast.Constant object at 0x7f30f48ffa90>
    - <ast.Constant object at 0x7f30f48ffa60>
    argNames:
    - self
    - pattern
    - flags
    - as_group_list
    - as_match
    - asGroupList
    - asMatch
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3038
    functionName: pip._vendor.pyparsing.core.Regex.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 5
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30f4376340>
    argNames:
    - self
    - expr
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5203
    functionName: pip._vendor.pyparsing.core.Opt.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 40
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.packaging.requirements.<lambda1>
    functionSourceFile: pip._vendor.packaging.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _VERSION_SPEC.setParseAction
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1084
    functionName: pip._vendor.pyparsing.helpers.originalTextFor
    functionSourceFile: ''
    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: pip._vendor.packaging.requirements.<lambda2>
    functionSourceFile: pip._vendor.packaging.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: VERSION_SPEC.setParseAction
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f438ae20>
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5397
    functionName: pip._vendor.pyparsing.core.Forward.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 38
    functionsReached:
    - <builtin>.super
    - traceback.extract_stack
    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: 3
    functionLinenumber: -1
    functionName: pip._vendor.packaging.requirements.<lambda3>
    functionSourceFile: pip._vendor.packaging.requirements
    functionUses: 0
    functionsReached:
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - <builtin>.isinstance
    - pip._vendor.packaging.markers._coerce_parse_result
    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: 2264
    functionName: pip._vendor.pyparsing.core.ParserElement.setParseAction
    functionSourceFile: ''
    functionUses: 2
    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: 2287
    functionName: pip._vendor.pyparsing.core.ParserElement.parseString
    functionSourceFile: ''
    functionUses: 58
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlunparse
    functionSourceFile: <builtin>
    functionUses: 91
    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.extras.asList
    functionSourceFile: <builtin>
    functionUses: 51
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dad014c0>
    - <ast.Constant object at 0x7f30dad01490>
    argNames:
    - self
    - specifiers
    - prereleases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 621
    functionName: pip._vendor.packaging.specifiers.SpecifierSet.__init__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 69
    functionsReached:
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - match.group
    - warnings.warn
    - <builtin>.set
    - <builtin>.frozenset
    - specifiers.split
    - parsed.add
    - s.strip
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 125
    functionName: pip._vendor.packaging.requirements.Requirement.__str__
    functionSourceFile: pip._vendor.packaging.requirements
    functionUses: 0
    functionsReached:
    - parts.append
    - <builtin>.sorted
    - <builtin>.str
    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: parts.append
    functionSourceFile: <builtin>
    functionUses: 241
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 145
    functionName: pip._vendor.packaging.requirements.Requirement.__repr__
    functionSourceFile: pip._vendor.packaging.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing
    functionSourceFile: pip._vendor.pyparsing
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.globals
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 107
    functionName: pip._vendor.pyparsing.version_info.__version__
    functionSourceFile: pip._vendor.pyparsing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 116
    functionName: pip._vendor.pyparsing.version_info.__str__
    functionSourceFile: pip._vendor.pyparsing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 119
    functionName: pip._vendor.pyparsing.version_info.__repr__
    functionSourceFile: pip._vendor.pyparsing
    functionUses: 0
    functionsReached:
    - <builtin>.zip
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.Combine.__init__
    - cur.recurse
    - <builtin>.str
    - itertools.chain
    - pip._vendor.pyparsing.core.Group.__init__
    - abc.ABC.upper
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ZeroOrMore.__init__
    - <builtin>.sorted
    - abc.ABC.replace
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.util.replaced_by_pep8
    - <builtin>.hasattr
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Word.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - re.escape
    - inspect.signature
    - abc.ABC.ignoreExprs.append
    - pip._vendor.pyparsing.core.ParserElement.add_parse_action
    - <builtin>.super
    - pip._vendor.pyparsing.helpers._makeTags
    - collections.deque.extend
    - pip._vendor.pyparsing.core._trim_arity
    - <builtin>.iter
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - itertools.groupby
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.callable
    - expr.set_debug
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Regex.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - pip._vendor.pyparsing.core.Combine.ignore
    - <builtin>.list
    - pip._vendor.pyparsing.core.Opt.__init__
    - ret.append
    - k.rstrip
    - html.entities.html5.items
    - <builtin>.len
    - pip._vendor.pyparsing.core.Keyword.set_default_keyword_chars.chars.upper
    - typing.cast
    - <builtin>.ord
    - collections.deque
    - pip._vendor.pyparsing.util._make_synonym_function
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - seen.add
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.util.replaced_by_pep8.<lambda1>
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    - <builtin>.type
    - pip._vendor.pyparsing.core.Keyword.__init__
    - pip._vendor.pyparsing.core.ParserElement.__init__
    - re.compile
    - <builtin>.set
    - pip._vendor.pyparsing.core.Dict.__init__
    - <builtin>.vars
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace
    - functools.wraps
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.Keyword.DEFAULT_KEYWORD_CHARS.upper
    - pip._vendor.pyparsing.core.Forward.copy
    - string.ascii_uppercase.upper
    - pip._vendor.pyparsing.core.ParserElement.copy
    - kwargs.get
    - pip._vendor.pyparsing.helpers.make_html_tags
    - itertools.count
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc1a670>
    argNames:
    - expr
    - int_expr
    - intExpr
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 20
    functionName: pip._vendor.pyparsing.helpers.counted_array
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.Word.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - re.compile
    - re.escape
    - cur.recurse
    - <builtin>.str
    - itertools.chain
    - pip._vendor.pyparsing.core.ParserElement.add_parse_action
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - <builtin>.set
    - collections.deque.popleft
    - <builtin>.list
    - <builtin>.super
    - ret.append
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.sorted
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - pip._vendor.pyparsing.core._trim_arity
    - <builtin>.iter
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - <builtin>.next
    - <builtin>.ord
    - pip._vendor.pyparsing.core.Forward.copy
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - seen.add
    - kwargs.get
    - itertools.groupby
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.callable
    - expr.set_debug
    - <builtin>.getattr
    - <builtin>.all
    - traceback.extract_stack
    - itertools.count
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 64
    functionName: pip._vendor.pyparsing.helpers.counted_array.count_field_parse_action
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.Empty.__init__
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4a1bfa0>
    argNames:
    - self
    - match_string
    - matchString
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2457
    functionName: pip._vendor.pyparsing.core.Empty.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 38
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers.counted_array.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - fns
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 618
    functionName: pip._vendor.pyparsing.core.ParserElement.set_parse_action
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 13
    functionsReached:
    - kwargs.get
    - pip._vendor.pyparsing.core._trim_arity
    - <builtin>.callable
    - <builtin>.all
    - <builtin>.getattr
    - traceback.extract_stack
    - <builtin>.list
    linkageType: pythonLinkage
    raised:
    - TypeError
    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: 1
    functionLinenumber: 522
    functionName: pip._vendor.pyparsing.core.ParserElement.copy
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 33
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5598
    functionName: pip._vendor.pyparsing.core.Forward.copy
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 33
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.Forward.__init__
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1877
    functionName: pip._vendor.pyparsing.core.ParserElement.set_name
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 39
    functionsReached:
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.set
    - collections.deque.popleft
    - expr.set_debug
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - cur.recurse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - fns
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 704
    functionName: pip._vendor.pyparsing.core.ParserElement.add_parse_action
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 10
    functionsReached:
    - kwargs.get
    - <builtin>.getattr
    - pip._vendor.pyparsing.core._trim_arity
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - expr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 80
    functionName: pip._vendor.pyparsing.helpers.match_previous_literal
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - traceback.extract_stack
    - expr.add_parse_action
    - <builtin>.str
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.set
    - pip._vendor.pyparsing.core.Forward.__init__
    - collections.deque.popleft
    - expr.set_debug
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - cur.recurse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 97
    functionName: pip._vendor.pyparsing.helpers.match_previous_literal.copy_token_to_repeater
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - abc.ABC.ignoreExprs.append
    - <builtin>.str
    - tmp.append
    - <builtin>.enumerate
    - <builtin>.set
    - pip._vendor.pyparsing.core.Combine.ignore
    - <builtin>.list
    - <builtin>.super
    - ret.append
    - pip._vendor.pyparsing.core.And.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - pip._vendor.pyparsing.core.Literal.__init__
    - ret.extend
    - pip._vendor.pyparsing.util._flatten
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - typing.cast
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.Empty.__init__
    - pip._vendor.pyparsing.core.ParserElement.copy
    - t.as_list
    - <builtin>.all
    - traceback.extract_stack
    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: t.as_list
    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:
    - ll
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 230
    functionName: pip._vendor.pyparsing.util._flatten
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 5
    functionsReached:
    - ret.extend
    - pip._vendor.pyparsing.util._flatten
    - <builtin>.isinstance
    - ret.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f47dc7f0>
    argNames:
    - self
    - exprs_arg
    - savelist
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 3927
    functionName: pip._vendor.pyparsing.core.And.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - abc.ABC.ignoreExprs.append
    - <builtin>.str
    - tmp.append
    - <builtin>.enumerate
    - <builtin>.set
    - pip._vendor.pyparsing.core.Combine.ignore
    - <builtin>.list
    - <builtin>.super
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - pip._vendor.pyparsing.core.Literal.__init__
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.Empty.__init__
    - pip._vendor.pyparsing.core.ParserElement.copy
    - <builtin>.all
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised:
    - Exception
    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: expr.add_parse_action
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - expr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 113
    functionName: pip._vendor.pyparsing.helpers.match_previous_expr
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - traceback.extract_stack
    - expr.add_parse_action
    - <builtin>.str
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - seen.add
    - cur.recurse
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.set
    - pip._vendor.pyparsing.core.Forward.__init__
    - collections.deque.popleft
    - expr.set_debug
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - expr.copy
    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: expr.copy
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 132
    functionName: pip._vendor.pyparsing.helpers.match_previous_expr.copy_token_to_repeater
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - ret.append
    - kwargs.get
    - pip._vendor.pyparsing.core._trim_arity
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - <builtin>.callable
    - t.as_list
    - <builtin>.all
    - <builtin>.getattr
    - traceback.extract_stack
    - ret.extend
    - pip._vendor.pyparsing.util._flatten
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 135
    functionName: pip._vendor.pyparsing.helpers.match_previous_expr.copy_token_to_repeater.must_match_these_tokens
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - ret.append
    - t.as_list
    - ret.extend
    - pip._vendor.pyparsing.util._flatten
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 5
    IfCount: 12
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc70ee0>
    - <ast.Constant object at 0x7f30fcc70eb0>
    - <ast.Constant object at 0x7f30fcc70e80>
    argNames:
    - strs
    - caseless
    - use_regex
    - as_keyword
    - useRegex
    - asKeyword
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 149
    functionName: pip._vendor.pyparsing.helpers.one_of
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.helpers.one_of.<lambda4>
    - pip._vendor.pyparsing.core.Regex.__init__
    - pip._vendor.pyparsing.helpers.one_of.<lambda1>
    - re.escape
    - cur.recurse
    - symbols.insert
    - pip._vendor.pyparsing.util._escape_regex_range_chars
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.add_parse_action
    - <builtin>.enumerate
    - <builtin>.set
    - collections.deque.popleft
    - strs.split
    - <builtin>.list
    - <builtin>.super
    - <builtin>.any
    - s.replace
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.helpers.one_of.<lambda2>
    - pip._vendor.pyparsing.core._trim_arity
    - sym.lower
    - pip._vendor.pyparsing.helpers.one_of.<lambda3>
    - pip._vendor.pyparsing.core.MatchFirst.__init__
    - a.upper
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - b.startswith
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - typing.cast
    - collections.deque
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - warnings.warn
    - b.upper
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.all
    - expr.set_debug
    - <builtin>.getattr
    - traceback.extract_stack
    - <builtin>.hasattr
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers.one_of.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 1
    functionsReached:
    - a.upper
    - b.upper
    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: a.upper
    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: b.upper
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers.one_of.<lambda2>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 1
    functionsReached:
    - a.upper
    - b.upper
    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: pip._vendor.pyparsing.helpers.one_of.<lambda3>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers.one_of.<lambda4>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 1
    functionsReached:
    - b.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: b.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: strs.split
    functionSourceFile: <builtin>
    functionUses: 1
    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: 2389
    functionName: pip._vendor.pyparsing.core.NoMatch.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 47
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: symbols.insert
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 177
    functionName: pip._vendor.pyparsing.util._escape_regex_range_chars
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 3
    functionsReached:
    - s.replace
    - <builtin>.str
    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: sym.lower
    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: pip._vendor.pyparsing.helpers.one_of.<lambda5>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f475d400>
    argNames:
    - self
    - exprs
    - savelist
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4242
    functionName: pip._vendor.pyparsing.core.MatchFirst.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    functionsReached:
    - <builtin>.super
    - <builtin>.any
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - key
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 275
    functionName: pip._vendor.pyparsing.helpers.dict_of
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Group.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.Dict.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f433c760>
    argNames:
    - self
    - expr
    - aslist
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5721
    functionName: pip._vendor.pyparsing.core.Group.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 36
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f44566d0>
    argNames:
    - self
    - expr
    - stop_on
    - stopOn
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4946
    functionName: pip._vendor.pyparsing.core._MultipleMatch.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 33
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4341250>
    argNames:
    - self
    - expr
    - asdict
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5779
    functionName: pip._vendor.pyparsing.core.Dict.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 5
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ef5d3760>
    argNames:
    - expr
    - as_string
    - asString
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 315
    functionName: pip._vendor.pyparsing.helpers.original_text_for
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - matchExpr.suppress_warning
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.Empty.__init__
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.ParserElement.__init__
    - typing.NamedTuple.__init__
    - matchExpr.set_parse_action
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - <builtin>.set
    - <builtin>.callable
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core._trim_arity
    - <builtin>.all
    - <builtin>.getattr
    - traceback.extract_stack
    - <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: pip._vendor.pyparsing.helpers.original_text_for.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4982550>
    argNames:
    - self
    - savelist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 461
    functionName: pip._vendor.pyparsing.core.ParserElement.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 10
    functionsReached:
    - <builtin>.set
    - <builtin>.list
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers.original_text_for.<lambda2>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 359
    functionName: pip._vendor.pyparsing.helpers.original_text_for.extractText
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - t.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: t.pop
    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: matchExpr.set_parse_action
    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: matchExpr.suppress_warning
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - expr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 368
    functionName: pip._vendor.pyparsing.helpers.ungroup
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.TokenConverter.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.add_parse_action
    - pip._vendor.pyparsing.core._trim_arity
    - <builtin>.getattr
    - traceback.extract_stack
    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: pip._vendor.pyparsing.helpers.ungroup.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f43339d0>
    argNames:
    - self
    - expr
    - savelist
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5638
    functionName: pip._vendor.pyparsing.core.TokenConverter.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - expr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 375
    functionName: pip._vendor.pyparsing.helpers.locatedExpr
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.Forward.leaveWhitespace
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.Empty.__init__
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.core.ParserElement.__init__
    - typing.NamedTuple.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - <builtin>.set
    - <builtin>.callable
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core._trim_arity
    - <builtin>.all
    - <builtin>.getattr
    - traceback.extract_stack
    - <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: pip._vendor.pyparsing.helpers.locatedExpr.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 5626
    functionName: pip._vendor.pyparsing.core.Forward.leaveWhitespace
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc1b6a0>
    - <ast.Constant object at 0x7f30fcc1b6d0>
    - <ast.Constant object at 0x7f30fcc1b700>
    - <ast.Call object at 0x7f30fcc1b730>
    argNames:
    - opener
    - closer
    - content
    - ignore_expr
    - ignoreExpr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 410
    functionName: pip._vendor.pyparsing.helpers.nested_expr
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.ParserElement.__init__
    - pip._vendor.pyparsing.core.Combine.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - cur.recurse
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - <builtin>.set
    - collections.deque.popleft
    - <builtin>.list
    - <builtin>.super
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core.ZeroOrMore.__init__
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.core._trim_arity
    - pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - pip._vendor.pyparsing.core.CharsNotIn.__init__
    - pip._vendor.pyparsing.core.Forward.copy
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - kwargs.get
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.callable
    - expr.set_debug
    - <builtin>.all
    - <builtin>.getattr
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: pip._vendor.pyparsing.helpers.nested_expr.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f48bba90>
    - <ast.Constant object at 0x7f30f48bbac0>
    - <ast.Constant object at 0x7f30f48bbaf0>
    - <ast.Constant object at 0x7f30f48bbb20>
    argNames:
    - self
    - not_chars
    - min
    - max
    - exact
    - notChars
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3394
    functionName: pip._vendor.pyparsing.core.CharsNotIn.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    functionsReached:
    - <builtin>.super
    - <builtin>.set
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: pip._vendor.pyparsing.helpers.nested_expr.<lambda2>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers.nested_expr.<lambda3>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers.nested_expr.<lambda4>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f434b5b0>
    argNames:
    - self
    - expr
    - savelist
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5855
    functionName: pip._vendor.pyparsing.core.Suppress.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 28
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Call object at 0x7f30fcc8b700>
    - <ast.Call object at 0x7f30fcc8b670>
    argNames:
    - tagStr
    - xml
    - suppress_LT
    - suppress_GT
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 541
    functionName: pip._vendor.pyparsing.helpers._makeTags
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Keyword.__init__
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.ParserElement.__init__
    - pip._vendor.pyparsing.core.Word.__init__
    - pip._vendor.pyparsing.core.Combine.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - re.compile
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - re.escape
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - cur.recurse
    - traceback.extract_stack
    - abc.ABC.ignoreExprs.append
    - <builtin>.str
    - itertools.chain
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.core.ParserElement.add_parse_action
    - abc.ABC.upper
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - <builtin>.set
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.Combine.ignore
    - pip._vendor.pyparsing.core.Dict.__init__
    - <builtin>.list
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.super
    - ret.append
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core.ZeroOrMore.__init__
    - <builtin>.sorted
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - pip._vendor.pyparsing.core._trim_arity
    - pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace
    - pip._vendor.pyparsing.core.Keyword.set_default_keyword_chars.chars.upper
    - <builtin>.iter
    - abc.ABC.replace
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.Keyword.DEFAULT_KEYWORD_CHARS.upper
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - <builtin>.ord
    - pip._vendor.pyparsing.core.Forward.copy
    - string.ascii_uppercase.upper
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.copy
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - itertools.groupby
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.callable
    - seen.add
    - expr.set_debug
    - <builtin>.getattr
    - <builtin>.all
    - itertools.count
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4a17c40>
    - <ast.Constant object at 0x7f30f4a17c10>
    - <ast.Constant object at 0x7f30f4a17be0>
    argNames:
    - self
    - match_string
    - ident_chars
    - caseless
    - matchString
    - identChars
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2508
    functionName: pip._vendor.pyparsing.core.Keyword.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - string.ascii_uppercase.upper
    - <builtin>.len
    - abc.ABC.upper
    - <builtin>.set
    - pip._vendor.pyparsing.core.Keyword.set_default_keyword_chars.chars.upper
    - pip._vendor.pyparsing.core.Keyword.DEFAULT_KEYWORD_CHARS.upper
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: pip._vendor.pyparsing.helpers._makeTags.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers._makeTags.<lambda2>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers._makeTags.<lambda3>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers._makeTags.<lambda4>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - t.__setitem__
    - abc.ABC.replace
    - t.copy
    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: abc.ABC.replace
    functionSourceFile: abc
    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: t.copy
    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: t.__setitem__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4380550>
    - <ast.Constant object at 0x7f30f4380580>
    - <ast.Constant object at 0x7f30f43805b0>
    argNames:
    - self
    - other
    - include
    - ignore
    - fail_on
    - failOn
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 5300
    functionName: pip._vendor.pyparsing.core.SkipTo.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 13
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - traceback.extract_stack
    - abc.ABC.ignoreExprs.append
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.Suppress.__init__
    - <builtin>.len
    - <builtin>.set
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - pip._vendor.pyparsing.core.Combine.ignore
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - pip._vendor.pyparsing.core.NoMatch.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - tag_str
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 599
    functionName: pip._vendor.pyparsing.helpers.make_html_tags
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Keyword.__init__
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.ParserElement.__init__
    - pip._vendor.pyparsing.core.Word.__init__
    - pip._vendor.pyparsing.core.Combine.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - re.compile
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - re.escape
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - cur.recurse
    - traceback.extract_stack
    - abc.ABC.ignoreExprs.append
    - <builtin>.str
    - itertools.chain
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.core.ParserElement.add_parse_action
    - abc.ABC.upper
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - <builtin>.set
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.Combine.ignore
    - pip._vendor.pyparsing.core.Dict.__init__
    - <builtin>.list
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.super
    - pip._vendor.pyparsing.helpers._makeTags
    - ret.append
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core.ZeroOrMore.__init__
    - <builtin>.sorted
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - pip._vendor.pyparsing.core._trim_arity
    - pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace
    - pip._vendor.pyparsing.core.Keyword.set_default_keyword_chars.chars.upper
    - <builtin>.iter
    - abc.ABC.replace
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.Keyword.DEFAULT_KEYWORD_CHARS.upper
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - <builtin>.ord
    - pip._vendor.pyparsing.core.Forward.copy
    - string.ascii_uppercase.upper
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.copy
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - itertools.groupby
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.callable
    - seen.add
    - expr.set_debug
    - <builtin>.getattr
    - <builtin>.all
    - itertools.count
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - tag_str
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 626
    functionName: pip._vendor.pyparsing.helpers.make_xml_tags
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Keyword.__init__
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.ParserElement.__init__
    - pip._vendor.pyparsing.core.Word.__init__
    - pip._vendor.pyparsing.core.Combine.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - re.compile
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - re.escape
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - cur.recurse
    - traceback.extract_stack
    - abc.ABC.ignoreExprs.append
    - <builtin>.str
    - itertools.chain
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.core.ParserElement.add_parse_action
    - abc.ABC.upper
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - <builtin>.set
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.Combine.ignore
    - pip._vendor.pyparsing.core.Dict.__init__
    - <builtin>.list
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.super
    - pip._vendor.pyparsing.helpers._makeTags
    - ret.append
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core.ZeroOrMore.__init__
    - <builtin>.sorted
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - pip._vendor.pyparsing.core._trim_arity
    - pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace
    - pip._vendor.pyparsing.core.Keyword.set_default_keyword_chars.chars.upper
    - <builtin>.iter
    - abc.ABC.replace
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.Keyword.DEFAULT_KEYWORD_CHARS.upper
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - <builtin>.ord
    - pip._vendor.pyparsing.core.Forward.copy
    - string.ascii_uppercase.upper
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.copy
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - itertools.groupby
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.callable
    - seen.add
    - expr.set_debug
    - <builtin>.getattr
    - <builtin>.all
    - itertools.count
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    - <builtin>.type
    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: k.rstrip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: html.entities.html5.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 649
    functionName: pip._vendor.pyparsing.helpers.replace_html_entity
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - _htmlEntityMap.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _htmlEntityMap.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 21
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 30
    ICount: 3
    IfCount: 21
    argCount: 4
    argDefaultValues:
    - <ast.Call object at 0x7f30fcc733a0>
    - <ast.Call object at 0x7f30fcc73310>
    argNames:
    - base_expr
    - op_list
    - lpar
    - rpar
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 680
    functionName: pip._vendor.pyparsing.helpers.infix_notation
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.ParserElement.setName
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - cur.recurse
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.Group.__init__
    - <builtin>.enumerate
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - <builtin>.set
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.FollowedBy.__init__
    - <builtin>.list
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.super
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core._trim_arity
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - kwargs.get
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.callable
    - <builtin>.all
    - expr.set_debug
    - <builtin>.getattr
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc73070>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 767
    functionName: pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 25
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - instring
    - loc
    - raise_fatal
    - do_actions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 906
    functionName: pip._vendor.pyparsing.core.ParserElement.try_parse
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 25
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - expr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4765
    functionName: pip._vendor.pyparsing.core.FollowedBy.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    functionsReached:
    - <builtin>.super
    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: 2317
    functionName: pip._vendor.pyparsing.core.ParserElement.setName
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc097c0>
    - <ast.List object at 0x7f30fcc09790>
    argNames:
    - blockStatementExpr
    - indentStack
    - indent
    - backup_stacks
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 857
    functionName: pip._vendor.pyparsing.helpers.indentedBlock
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Suppress.__init__
    - backup_stacks.append
    - cur.recurse
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineEnd.__init__
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.core.ParserElement.add_parse_action
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - <builtin>.set
    - collections.deque.popleft
    - <builtin>.list
    - pip._vendor.pyparsing.core.ParserElement.suppress
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.super
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - pip._vendor.pyparsing.core._trim_arity
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - blockStatementExpr.ignore
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - kwargs.get
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.callable
    - pip._vendor.pyparsing.core.Suppress.suppress
    - expr.set_debug
    - <builtin>.getattr
    - <builtin>.all
    - traceback.extract_stack
    - pip._vendor.pyparsing.core.ParserElement.set_fail_action
    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: backup_stacks.append
    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: 945
    functionName: pip._vendor.pyparsing.helpers.indentedBlock.reset_stack
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 948
    functionName: pip._vendor.pyparsing.helpers.indentedBlock.checkPeerIndent
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - s.rfind
    - <builtin>.len
    - pip._vendor.pyparsing.util.col
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - loc
    - strg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: pip._vendor.pyparsing.util.col
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 36
    functionsReached:
    - <builtin>.len
    - s.rfind
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 957
    functionName: pip._vendor.pyparsing.helpers.indentedBlock.checkSubIndent
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - s.rfind
    - indentStack.append
    - pip._vendor.pyparsing.util.col
    linkageType: pythonLinkage
    raised:
    - ParseException
    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: indentStack.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 964
    functionName: pip._vendor.pyparsing.helpers.indentedBlock.checkUnindent
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - s.rfind
    - <builtin>.len
    - indentStack.pop
    - pip._vendor.pyparsing.util.col
    linkageType: pythonLinkage
    raised:
    - ParseException
    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: indentStack.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3620
    functionName: pip._vendor.pyparsing.core.LineEnd.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 3
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f495c130>
    argNames:
    - self
    - chars
    - copy_defaults
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1738
    functionName: pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 13
    functionsReached:
    - <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: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers.indentedBlock.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - backup_stacks.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: backup_stacks.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.helpers.indentedBlock.<lambda2>
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.helpers.indentedBlock.reset_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 753
    functionName: pip._vendor.pyparsing.core.ParserElement.set_fail_action
    functionSourceFile: ''
    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: blockStatementExpr.ignore
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4326be0>
    argNames:
    - self
    - recursive
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 5554
    functionName: pip._vendor.pyparsing.core.Forward.leave_whitespace
    functionSourceFile: ''
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f495c5e0>
    argNames:
    - self
    - recursive
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1727
    functionName: pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    functionSourceFile: ''
    functionUses: 15
    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: 6
    functionLinenumber: 1066
    functionName: pip._vendor.pyparsing.helpers.delimited_list
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Combine.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - <builtin>.set
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.super
    - <builtin>.len
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace
    - pip._vendor.pyparsing.core.DelimitedList.__init__
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4368df0>
    - <ast.Constant object at 0x7f30f4368e20>
    - <ast.Constant object at 0x7f30f4368e50>
    - <ast.Constant object at 0x7f30f4368e80>
    argNames:
    - self
    - expr
    - delim
    - combine
    - min
    - max
    - allow_trailing_delim
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 5089
    functionName: pip._vendor.pyparsing.core.DelimitedList.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Combine.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - <builtin>.set
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.super
    - <builtin>.len
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fn
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 280
    functionName: pip._vendor.pyparsing.util.replaced_by_pep8
    functionSourceFile: ''
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.util.replaced_by_pep8.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 8
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.util._make_synonym_function
    - inspect.signature
    - functools.wraps
    - <builtin>.getattr
    - typing.cast
    - <builtin>.list
    - <builtin>.hasattr
    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: 1063
    functionName: pip._vendor.pyparsing.helpers.delimitedList
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1069
    functionName: pip._vendor.pyparsing.helpers.countedArray
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1072
    functionName: pip._vendor.pyparsing.helpers.matchPreviousLiteral
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1075
    functionName: pip._vendor.pyparsing.helpers.matchPreviousExpr
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1078
    functionName: pip._vendor.pyparsing.helpers.oneOf
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1081
    functionName: pip._vendor.pyparsing.helpers.dictOf
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1087
    functionName: pip._vendor.pyparsing.helpers.nestedExpr
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1090
    functionName: pip._vendor.pyparsing.helpers.makeHTMLTags
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1093
    functionName: pip._vendor.pyparsing.helpers.makeXMLTags
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1096
    functionName: pip._vendor.pyparsing.helpers.replaceHTMLEntity
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1099
    functionName: pip._vendor.pyparsing.helpers.infixNotation
    functionSourceFile: pip._vendor.pyparsing.helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.exceptions
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached:
    - ret.append
    - itertools.chain
    - collections.deque
    - <builtin>.len
    - itertools.groupby
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - <builtin>.sorted
    - <builtin>.set
    - re.compile
    - <builtin>.iter
    - itertools.count
    - <builtin>.next
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4ab7df0>
    argNames:
    - s
    - re_escape
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 186
    functionName: pip._vendor.pyparsing.util._collapse_string_to_ranges
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 13
    functionsReached:
    - ret.append
    - itertools.chain
    - collections.deque
    - <builtin>.len
    - itertools.groupby
    - <builtin>.sorted
    - <builtin>.set
    - <builtin>.iter
    - itertools.count
    - <builtin>.next
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f8d85190>
    - <ast.Constant object at 0x7f30f8d85160>
    - <ast.Constant object at 0x7f30f8d85130>
    argNames:
    - self
    - pstr
    - loc
    - msg
    - elem
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 44
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 8
    IfCount: 9
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f8d7f970>
    argNames:
    - exc
    - depth
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException.explain_exception
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 1
    functionsReached:
    - inspect.getinnerframes
    - <builtin>.isinstance
    - ret.append
    - sys.getrecursionlimit
    - seen.add
    - <builtin>.id
    - <builtin>.enumerate
    - frm.f_locals.get
    - <builtin>.set
    - frm.f_code.co_name.startswith
    - <builtin>.type
    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.getrecursionlimit
    functionSourceFile: sys
    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: ret.append
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.getinnerframes
    functionSourceFile: inspect
    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: frm.f_locals.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: frm.f_code.co_name.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - pe
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 128
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException._from_exception
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 136
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException.line
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.exceptions.ParseBaseException.line
    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: 143
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException.lineno
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.exceptions.ParseBaseException.lineno
    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: 150
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException.col
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 1
    functionsReached:
    - pip._vendor.pyparsing.exceptions.ParseBaseException.col
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 157
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException.column
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.exceptions.ParseBaseException.col
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - elem
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 169
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException.parserElement
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 172
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException.__str__
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached:
    - found_match.group
    - _exception_word_extractor.match
    - <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: _exception_word_extractor.match
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: found_match.group
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 188
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException.__repr__
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2112d30>
    argNames:
    - self
    - marker_string
    - markerString
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 191
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException.mark_input_line
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8bf5a90>
    argNames:
    - self
    - depth
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 207
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException.explain
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached:
    - inspect.getinnerframes
    - <builtin>.isinstance
    - ret.append
    - sys.getrecursionlimit
    - seen.add
    - <builtin>.id
    - <builtin>.enumerate
    - frm.f_locals.get
    - <builtin>.set
    - frm.f_code.co_name.startswith
    - pip._vendor.pyparsing.exceptions.ParseBaseException.explain_exception
    - <builtin>.type
    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: 3
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.util._make_synonym_function
    - inspect.signature
    - pip._vendor.pyparsing.util.replaced_by_pep8
    - functools.wraps
    - <builtin>.getattr
    - pip._vendor.pyparsing.util.replaced_by_pep8.<lambda1>
    - typing.cast
    - <builtin>.list
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 248
    functionName: pip._vendor.pyparsing.exceptions.ParseBaseException.markInputline
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parseElementList
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 295
    functionName: pip._vendor.pyparsing.exceptions.RecursiveGrammarException.__init__
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 298
    functionName: pip._vendor.pyparsing.exceptions.RecursiveGrammarException.__str__
    functionSourceFile: pip._vendor.pyparsing.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.Each.streamline
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - best_expr._parse
    - failed.append
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core.Combine.__init__
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.StringStart.__init__
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - name.endswith
    - pip._vendor.pyparsing.core.Forward.streamline
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - pip._vendor.pyparsing.core.CharsNotIn.__init__
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.util.replaced_by_pep8
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - <builtin>.hasattr
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - inspect.signature
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - pip._vendor.pyparsing.core.LineEnd.__init__
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - pip._vendor.pyparsing.core.Forward._setResultsName
    - typing.NamedTuple.debug_try
    - pip._vendor.pyparsing.core.ParserElement.parse_string
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - <builtin>.iter
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._setResultsName
    - <builtin>.chr
    - match.group
    - fatals.clear
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.callable
    - w_action.lower
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - <builtin>.range
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Regex.__init__
    - pe.__class__
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - os.environ.get
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pip._vendor.pyparsing.core._should_enable_warnings
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - pip._vendor.pyparsing.core.enable_all_warnings
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - <builtin>.ord
    - retToks.haskeys
    - instring.expandtabs
    - pip._vendor.pyparsing.core.ParserElement.set_results_name
    - e._parse
    - pip._vendor.pyparsing.core.srange
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - seen.add
    - pip._vendor.pyparsing.util._make_synonym_function
    - ret.replace
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.pyparsing.util.replaced_by_pep8.<lambda1>
    - pip._vendor.pyparsing.core.__diag__.enable_all_warnings
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - pip._vendor.pyparsing.core.srange.<lambda1>
    - d.items
    - prev.add_parse_action
    - pip._vendor.pyparsing.core.LineStart.__init__
    - pip._vendor.pyparsing.core.Or._setResultsName
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - abc.ABC.ignoreExprs.streamline
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - sys.warnoptions.split
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - <builtin>.vars
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - kwargs.get
    - pip._vendor.pyparsing.core.MatchFirst._setResultsName
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - func
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 85
    functionName: pip._vendor.pyparsing.core.cached_property.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4a4f700>
    argNames:
    - self
    - instance
    - owner
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 88
    functionName: pip._vendor.pyparsing.core.cached_property.__get__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - functools.cached_property._func
    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.cached_property._func
    functionSourceFile: functools
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.__compat__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.locals
    - __.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: __.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.__diag__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - name.startswith
    - <builtin>.locals
    - __.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 133
    functionName: pip._vendor.pyparsing.core.__diag__.enable_all_warnings
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - diag_enum
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 172
    functionName: pip._vendor.pyparsing.core.enable_diag
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - diag_enum
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 179
    functionName: pip._vendor.pyparsing.core.disable_diag
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 186
    functionName: pip._vendor.pyparsing.core.enable_all_warnings
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - pip._vendor.pyparsing.core.__diag__.enable_all_warnings
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cmd_line_warn_options
    - warn_env_var
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 197
    functionName: pip._vendor.pyparsing.core._should_enable_warnings
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.bool
    - w_action.lower
    - sys.warnoptions.split
    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.warnoptions.split
    functionSourceFile: sys
    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: w_action.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d322bdf0>
    argNames:
    - func
    - max_limit
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 269
    functionName: pip._vendor.pyparsing.core._trim_arity
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 49
    functionsReached:
    - <builtin>.getattr
    - traceback.extract_stack
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core._trim_arity.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 4
    functionsReached:
    - pip._vendor.pyparsing.core._trim_arity.wrapper
    - traceback.extract_tb
    - pip._vendor.pyparsing.core._trim_arity.<lambda1>
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 289
    functionName: pip._vendor.pyparsing.core._trim_arity.wrapper
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 4
    functionsReached:
    - pip._vendor.pyparsing.core._trim_arity.wrapper
    - traceback.extract_tb
    - pip._vendor.pyparsing.core._trim_arity.<lambda1>
    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: traceback.extract_stack
    functionSourceFile: traceback
    functionUses: 80
    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: traceback.extract_tb
    functionSourceFile: traceback
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c01d60>
    - <ast.Constant object at 0x7f30d8c010d0>
    argNames:
    - fn
    - message
    - fatal
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 326
    functionName: pip._vendor.pyparsing.core.condition_as_parse_action
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 30
    functionsReached:
    - <builtin>.getattr
    - functools.wraps
    - pip._vendor.pyparsing.core._trim_arity
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 347
    functionName: pip._vendor.pyparsing.core.condition_as_parse_action.pa
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core._trim_arity.<lambda1>
    - <builtin>.bool
    - traceback.extract_tb
    - pip._vendor.pyparsing.core._trim_arity.wrapper
    linkageType: pythonLinkage
    raised:
    - exc_type
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30c8d15520>
    argNames:
    - instring
    - loc
    - expr
    - cache_hit
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 354
    functionName: pip._vendor.pyparsing.core._default_start_debug_action
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - s.rfind
    - strg.find
    - pip._vendor.pyparsing.util.col
    - <builtin>.print
    - <builtin>.len
    - strg.count
    - pip._vendor.pyparsing.util.line
    - pip._vendor.pyparsing.util.lineno
    - strg.rfind
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - loc
    - strg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: pip._vendor.pyparsing.util.lineno
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 1
    functionsReached:
    - strg.count
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - loc
    - strg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 71
    functionName: pip._vendor.pyparsing.util.line
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 2
    functionsReached:
    - strg.rfind
    - strg.find
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f20a10d0>
    argNames:
    - instring
    - startloc
    - endloc
    - expr
    - toks
    - cache_hit
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 367
    functionName: pip._vendor.pyparsing.core._default_success_debug_action
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - toks.as_list
    - <builtin>.print
    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: toks.as_list
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2114880>
    argNames:
    - instring
    - loc
    - expr
    - exc
    - cache_hit
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 379
    functionName: pip._vendor.pyparsing.core._default_exception_debug_action
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.print
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 390
    functionName: pip._vendor.pyparsing.core.null_debug_action
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - chars
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 402
    functionName: pip._vendor.pyparsing.core.ParserElement.set_default_whitespace_chars
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    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:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 423
    functionName: pip._vendor.pyparsing.core.ParserElement.inline_literals_using
    functionSourceFile: pip._vendor.pyparsing.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:
    - cls
    - seq
    - class_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 445
    functionName: pip._vendor.pyparsing.core.ParserElement.using_each
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - pip._vendor.pyparsing.core.ParserElement.__init__
    - <builtin>.list
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - warning_type
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 489
    functionName: pip._vendor.pyparsing.core.ParserElement.suppress_warning
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - abc.ABC.suppress_warnings_.append
    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: abc.ABC.suppress_warnings_.append
    functionSourceFile: abc
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 505
    functionName: pip._vendor.pyparsing.core.ParserElement.visit_all
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 41
    functionsReached:
    - collections.deque.extend
    - collections.deque
    - seen.add
    - <builtin>.set
    - collections.deque.popleft
    - cur.recurse
    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.deque
    functionSourceFile: collections
    functionUses: 53
    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.deque.popleft
    functionSourceFile: collections
    functionUses: 42
    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: cur.recurse
    functionSourceFile: <builtin>
    functionUses: 48
    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.deque.extend
    functionSourceFile: collections
    functionUses: 42
    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 0x7f30f49798e0>
    argNames:
    - self
    - name
    - list_all_matches
    - listAllMatches
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 551
    functionName: pip._vendor.pyparsing.core.ParserElement.set_results_name
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - <builtin>.any
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.ParserElement._setResultsName
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - warnings.warn
    - pip._vendor.pyparsing.core.Forward._setResultsName
    - <builtin>.set
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.MatchFirst._setResultsName
    - traceback.extract_stack
    - pip._vendor.pyparsing.core.Or._setResultsName
    - name.endswith
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4759700>
    argNames:
    - self
    - name
    - listAllMatches
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4197
    functionName: pip._vendor.pyparsing.core.Or._setResultsName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 3
    functionsReached:
    - <builtin>.super
    - <builtin>.any
    - <builtin>.isinstance
    - warnings.warn
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f44ac7c0>
    argNames:
    - self
    - name
    - listAllMatches
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4313
    functionName: pip._vendor.pyparsing.core.MatchFirst._setResultsName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 3
    functionsReached:
    - <builtin>.super
    - <builtin>.any
    - <builtin>.isinstance
    - warnings.warn
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f49794c0>
    argNames:
    - self
    - name
    - listAllMatches
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 584
    functionName: pip._vendor.pyparsing.core.ParserElement._setResultsName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 3
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - <builtin>.set
    - pip._vendor.pyparsing.core.Forward.__init__
    - traceback.extract_stack
    - name.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f432ec10>
    argNames:
    - self
    - name
    - list_all_matches
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5606
    functionName: pip._vendor.pyparsing.core.Forward._setResultsName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 3
    functionsReached:
    - <builtin>.super
    - warnings.warn
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.endswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4976be0>
    argNames:
    - self
    - break_flag
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 595
    functionName: pip._vendor.pyparsing.core.ParserElement.set_break
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    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 0x7f30f49768e0>
    - <ast.Constant object at 0x7f30f49768b0>
    argNames:
    - instring
    - loc
    - doActions
    - callPreParse
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 604
    functionName: pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 25
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    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: pdb.set_trace
    functionSourceFile: pdb
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4ace6d0>
    - <ast.Constant object at 0x7f30f4ace6a0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    - callPreParse
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 957
    functionName: pip._vendor.pyparsing.core.ParserElement._parseCache
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 25
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 5
    IfCount: 15
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f496a670>
    - <ast.Constant object at 0x7f30f496a640>
    argNames:
    - self
    - instring
    - loc
    - doActions
    - callPreParse
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 804
    functionName: pip._vendor.pyparsing.core.ParserElement._parseNoCache
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 25
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Each.parseImpl
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - <builtin>.hex
    - typing.cast
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - fns
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 716
    functionName: pip._vendor.pyparsing.core.ParserElement.add_condition
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 29
    functionsReached:
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - <builtin>.str
    - <builtin>.bool
    - kwargs.get
    - pip._vendor.pyparsing.core._trim_arity
    - functools.wraps
    - <builtin>.getattr
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - instring
    - loc
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 769
    functionName: pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - instring
    - loc
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 785
    functionName: pip._vendor.pyparsing.core.ParserElement.preParse
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 29
    functionsReached:
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f496aac0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 797
    functionName: pip._vendor.pyparsing.core.ParserElement.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - instring
    - loc
    - tokenlist
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 800
    functionName: pip._vendor.pyparsing.core.ParserElement.postParse
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - instring
    - loc
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3599
    functionName: pip._vendor.pyparsing.core.LineStart.preParse
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 28
    functionsReached:
    - pip._vendor.pyparsing.core.LineStart.preParse
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.debug_try
    functionSourceFile: typing
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4368070>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5078
    functionName: pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.str
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f47aa640>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3647
    functionName: pip._vendor.pyparsing.core.StringStart.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - pip._vendor.pyparsing.core.LineStart.preParse
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f444fa00>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 4936
    functionName: pip._vendor.pyparsing.core.NotAny.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 25
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4818d90>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2395
    functionName: pip._vendor.pyparsing.core.NoMatch.parseImpl
    functionSourceFile: ''
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4a207f0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2444
    functionName: pip._vendor.pyparsing.core.Literal.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - instring.startswith
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4384310>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 5323
    functionName: pip._vendor.pyparsing.core.SkipTo.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 25
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f48f3340>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3127
    functionName: pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - result.end
    - pip._vendor.pyparsing.core.Regex.re_match
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f43979a0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5459
    functionName: pip._vendor.pyparsing.core.Forward.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.super
    - <builtin>.reversed
    - <builtin>.isinstance
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - <builtin>.enumerate
    - warnings.warn
    - traceback.extract_stack
    - prev_result.copy
    - prev_peek.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f47a5850>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3626
    functionName: pip._vendor.pyparsing.core.LineEnd.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4735160>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4013
    functionName: pip._vendor.pyparsing.core.And.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - e._parse
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - ParseSyntaxException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2366
    functionName: pip._vendor.pyparsing.core._PendingSkip.parseImpl
    functionSourceFile: ''
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - Exception
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4904fa0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2982
    functionName: pip._vendor.pyparsing.core.Word.parseImpl_regex
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - result.end
    - result.group
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 10
    IfCount: 8
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f44b5a00>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4423
    functionName: pip._vendor.pyparsing.core.Each.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - tmpOpt.remove
    - e._parse
    - fatals.append
    - <builtin>.isinstance
    - failed.append
    - <builtin>.str
    - fatals.clear
    - <builtin>.len
    - <builtin>.id
    - failed.clear
    - fatals.sort
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - e.try_parse
    - matchOrder.append
    - <builtin>.dict
    - e.expr.set_results_name
    - tmpReqd.remove
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f48c42b0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3436
    functionName: pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.len
    - <builtin>.min
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f442ca60>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 4652
    functionName: pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 25
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.util.col
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - <builtin>.hex
    - typing.cast
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - seen.add
    - ret.replace
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4a1ba30>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2465
    functionName: pip._vendor.pyparsing.core.Empty.parseImpl
    functionSourceFile: ''
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 5
    IfCount: 16
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f47470a0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 4102
    functionName: pip._vendor.pyparsing.core.Or.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - pip._vendor.pyparsing.core.LineStart.preParse
    - fatals.append
    - operator.itemgetter
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - <builtin>.len
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - fatals.sort
    - e.try_parse
    - <builtin>.all
    - matches.sort
    - matches.append
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - expr1._parse
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f43768e0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 5211
    functionName: pip._vendor.pyparsing.core.Opt.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 25
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4a12700>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2540
    functionName: pip._vendor.pyparsing.core.Keyword.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.len
    - instring.startswith
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f48f3af0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3118
    functionName: pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - result.end
    - pip._vendor.pyparsing.core.Regex.re_match
    - result.groups
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f48b3a60>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3334
    functionName: pip._vendor.pyparsing.core.QuotedString.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.isinstance
    - match.group
    - ret.replace
    - result.group
    - result.end
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f44a2b50>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4266
    functionName: pip._vendor.pyparsing.core.MatchFirst.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.len
    - e._parse
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f47a1ca0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3609
    functionName: pip._vendor.pyparsing.core.LineStart.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.len
    - s.rfind
    - pip._vendor.pyparsing.util.col
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f47aafa0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3664
    functionName: pip._vendor.pyparsing.core.StringEnd.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f48f76a0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3105
    functionName: pip._vendor.pyparsing.core.Regex.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - result.groupdict
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.str
    - pip._vendor.pyparsing.core.Regex.re_match
    - d.items
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - result.group
    - result.end
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f490e9d0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2950
    functionName: pip._vendor.pyparsing.core.Word.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.len
    - <builtin>.min
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.debug_fail
    functionSourceFile: typing
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - instring
    - loc
    - tokenlist
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5726
    functionName: pip._vendor.pyparsing.core.Group.postParse
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.list
    - <builtin>.isinstance
    - tokenlist.asList
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - instring
    - loc
    - tokenlist
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 5872
    functionName: pip._vendor.pyparsing.core.Suppress.postParse
    functionSourceFile: ''
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - instring
    - loc
    - tokenlist
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5784
    functionName: pip._vendor.pyparsing.core.Dict.postParse
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.len
    - <builtin>.enumerate
    - <builtin>.TypeError
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - tokenlist.as_dict
    - dictvalue.haskeys
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - instring
    - loc
    - tokenlist
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5687
    functionName: pip._vendor.pyparsing.core.Combine.postParse
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.str
    - tokenlist.copy
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - tokenlist._asStringList
    - retToks.haskeys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 0
    IfCount: 8
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc70fa0>
    - <ast.Constant object at 0x7f30fcc707f0>
    - <ast.Constant object at 0x7f30fcc708e0>
    - <ast.Constant object at 0x7f30fcc70eb0>
    - <ast.Name object at 0x7f30fcc70b50>
    argNames:
    - self
    - toklist
    - name
    - asList
    - modal
    - isinstance
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 171
    functionName: pip._vendor.pyparsing.results.ParseResults.__init__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 36
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.debug_match
    functionSourceFile: typing
    functionUses: 26
    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 0x7f30f4ad1820>
    argNames:
    - self
    - instring
    - loc
    - do_actions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 921
    functionName: pip._vendor.pyparsing.core.ParserElement.can_parse_next
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 25
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    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: 3
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.ParserElement
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.util._make_synonym_function
    - inspect.signature
    - threading.RLock
    - pip._vendor.pyparsing.util.replaced_by_pep8
    - <builtin>.getattr
    - abc.abstractmethod
    - functools.wraps
    - pip._vendor.pyparsing.util.replaced_by_pep8.<lambda1>
    - typing.cast
    - <builtin>.list
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 942
    functionName: pip._vendor.pyparsing.core.ParserElement._CacheType.get
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 945
    functionName: pip._vendor.pyparsing.core.ParserElement._CacheType.set
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    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: pe.__class__
    functionSourceFile: <builtin>
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1009
    functionName: pip._vendor.pyparsing.core.ParserElement.reset_cache
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 17
    functionsReached:
    - <builtin>.len
    - pip._vendor.pyparsing.util.LRUMemo.clear
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 163
    functionName: pip._vendor.pyparsing.util.LRUMemo.clear
    functionSourceFile: ''
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1020
    functionName: pip._vendor.pyparsing.core.ParserElement.disable_memoization
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 4
    functionsReached:
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.util.LRUMemo.clear
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4ac1ee0>
    argNames:
    - cache_size_limit
    - force
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1034
    functionName: pip._vendor.pyparsing.core.ParserElement.enable_left_recursion
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - collections.OrderedDict
    - pip._vendor.pyparsing.util.LRUMemo.__init__
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - pip._vendor.pyparsing.core.ParserElement.disable_memoization
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - capacity
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 137
    functionName: pip._vendor.pyparsing.util.LRUMemo.__init__
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 1
    functionsReached:
    - collections.OrderedDict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4ac1430>
    argNames:
    - cache_size_limit
    - force
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1082
    functionName: pip._vendor.pyparsing.core.ParserElement.enable_packrat
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    functionsReached:
    - <builtin>.object
    - <builtin>.len
    - pip._vendor.pyparsing.util._UnboundedCache.__init__
    - pip._vendor.pyparsing.core.ParserElement.disable_memoization
    - types.MethodType
    - itertools.cycle
    - pip._vendor.pyparsing.util._FifoCache.__init__
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 81
    functionName: pip._vendor.pyparsing.util._UnboundedCache.__init__
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 3
    functionsReached:
    - <builtin>.object
    - types.MethodType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 102
    functionName: pip._vendor.pyparsing.util._FifoCache.__init__
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 3
    functionsReached:
    - <builtin>.object
    - itertools.cycle
    - types.MethodType
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4abe910>
    argNames:
    - self
    - instring
    - parse_all
    - parseAll
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1125
    functionName: pip._vendor.pyparsing.core.ParserElement.parse_string
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 7
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.Each.streamline
    - failed.append
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.Forward.streamline
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - <builtin>.iter
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - <builtin>.hex
    - typing.cast
    - retToks.haskeys
    - instring.expandtabs
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - prev.add_parse_action
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - abc.ABC.ignoreExprs.streamline
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    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: 5562
    functionName: pip._vendor.pyparsing.core.Forward.streamline
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 17
    functionsReached:
    - pip._vendor.pyparsing.core.Each.streamline
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Or.streamline
    - prev.add_parse_action
    - cur.recurse
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - <builtin>.set
    - <builtin>.super
    - pip._vendor.pyparsing.core.Forward.streamline
    - <builtin>.any
    - pip._vendor.pyparsing.core.And.streamline
    - <builtin>.id
    - <builtin>.iter
    - <builtin>.zip
    - <builtin>.next
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - seen.add
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1903
    functionName: pip._vendor.pyparsing.core.ParserElement.streamline
    functionSourceFile: ''
    functionUses: 18
    functionsReached: []
    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: 1
    functionLinenumber: 4250
    functionName: pip._vendor.pyparsing.core.MatchFirst.streamline
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 18
    functionsReached:
    - <builtin>.super
    - <builtin>.any
    - <builtin>.all
    - <builtin>.isinstance
    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: 1
    functionLinenumber: 4415
    functionName: pip._vendor.pyparsing.core.Each.streamline
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 18
    functionsReached:
    - <builtin>.super
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 3
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3962
    functionName: pip._vendor.pyparsing.core.And.streamline
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 18
    functionsReached:
    - <builtin>.super
    - <builtin>.any
    - <builtin>.isinstance
    - seen.add
    - <builtin>.id
    - <builtin>.enumerate
    - prev.add_parse_action
    - <builtin>.set
    - typing.cast
    - <builtin>.iter
    - <builtin>.zip
    - <builtin>.all
    - <builtin>.next
    - cur.recurse
    - pip._vendor.pyparsing.core.NoMatch.__init__
    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: 1
    functionLinenumber: 4090
    functionName: pip._vendor.pyparsing.core.Or.streamline
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 18
    functionsReached:
    - <builtin>.super
    - <builtin>.any
    - <builtin>.all
    - <builtin>.isinstance
    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: abc.ABC.ignoreExprs.streamline
    functionSourceFile: abc
    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: instring.expandtabs
    functionSourceFile: <builtin>
    functionUses: 8
    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: 3660
    functionName: pip._vendor.pyparsing.core.StringEnd.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 27
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 6
    IfCount: 7
    argCount: 6
    argDefaultValues:
    - <ast.Name object at 0x7f30f4ab6550>
    - <ast.Constant object at 0x7f30f4ab6520>
    argNames:
    - self
    - instring
    - max_matches
    - overlap
    - debug
    - maxMatches
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1194
    functionName: pip._vendor.pyparsing.core.ParserElement.scan_string
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 4
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.Each.streamline
    - failed.append
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.Forward.streamline
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - <builtin>.iter
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - <builtin>.hex
    - typing.cast
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - prev.add_parse_action
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - abc.ABC.ignoreExprs.streamline
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - <builtin>.print
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - instring
    - debug
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1285
    functionName: pip._vendor.pyparsing.core.ParserElement.transform_string
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.Each.streamline
    - failed.append
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core.ParserElement.scan_string
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.Forward.streamline
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - <builtin>.iter
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - t.as_list
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - ret.append
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - ret.extend
    - <builtin>.hex
    - typing.cast
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - out.append
    - d.items
    - prev.add_parse_action
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - abc.ABC.ignoreExprs.streamline
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - out.extend
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.util._flatten
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - <builtin>.print
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    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: out.append
    functionSourceFile: <builtin>
    functionUses: 11
    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: out.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Name object at 0x7f30f4aa4760>
    argNames:
    - self
    - instring
    - max_matches
    - debug
    - maxMatches
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1331
    functionName: pip._vendor.pyparsing.core.ParserElement.search_string
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.Each.streamline
    - failed.append
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core.ParserElement.scan_string
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.Forward.streamline
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - <builtin>.iter
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - <builtin>.hex
    - typing.cast
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - prev.add_parse_action
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - abc.ABC.ignoreExprs.streamline
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - <builtin>.print
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Name object at 0x7f30f4a4ed30>
    - <ast.Constant object at 0x7f30f4a4ed00>
    argNames:
    - self
    - instring
    - maxsplit
    - include_separators
    - includeSeparators
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1371
    functionName: pip._vendor.pyparsing.core.ParserElement.split
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.Each.streamline
    - failed.append
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core.ParserElement.scan_string
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.Forward.streamline
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - <builtin>.iter
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - <builtin>.hex
    - typing.cast
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - prev.add_parse_action
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - abc.ABC.ignoreExprs.streamline
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - <builtin>.print
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1403
    functionName: pip._vendor.pyparsing.core.ParserElement.__add__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - abc.ABC.ignoreExprs.append
    - <builtin>.str
    - tmp.append
    - <builtin>.enumerate
    - <builtin>.set
    - pip._vendor.pyparsing.core.Combine.ignore
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.pyparsing.core.And.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.Empty.__init__
    - pip._vendor.pyparsing.core.ParserElement.copy
    - <builtin>.all
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f480e5e0>
    argNames:
    - self
    - expr
    - must_skip
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2334
    functionName: pip._vendor.pyparsing.core._PendingSkip.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 30
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1439
    functionName: pip._vendor.pyparsing.core.ParserElement.__radd__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - traceback.extract_stack
    - abc.ABC.ignoreExprs.append
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.Suppress.__init__
    - <builtin>.len
    - <builtin>.set
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - pip._vendor.pyparsing.core.Combine.ignore
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - pip._vendor.pyparsing.core.NoMatch.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1452
    functionName: pip._vendor.pyparsing.core.ParserElement.__sub__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.And._ErrorStop.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - pip._vendor.pyparsing.core.Literal.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3920
    functionName: pip._vendor.pyparsing.core.And._ErrorStop.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1462
    functionName: pip._vendor.pyparsing.core.ParserElement.__rsub__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Literal.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 1
    IfCount: 16
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1472
    functionName: pip._vendor.pyparsing.core.ParserElement.__mul__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - abc.ABC.ignoreExprs.append
    - <builtin>.str
    - tmp.append
    - <builtin>.enumerate
    - <builtin>.set
    - <builtin>.tuple
    - pip._vendor.pyparsing.core.Combine.ignore
    - <builtin>.list
    - pip._vendor.pyparsing.core.ParserElement.__mul__.makeOptionalList
    - <builtin>.super
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.And.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core.ZeroOrMore.__init__
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.Empty.__init__
    - pip._vendor.pyparsing.core.ParserElement.copy
    - <builtin>.all
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - n
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1531
    functionName: pip._vendor.pyparsing.core.ParserElement.__mul__.makeOptionalList
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    functionsReached:
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement.__mul__.makeOptionalList
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1551
    functionName: pip._vendor.pyparsing.core.ParserElement.__rmul__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - abc.ABC.ignoreExprs.append
    - <builtin>.str
    - tmp.append
    - <builtin>.enumerate
    - <builtin>.set
    - <builtin>.tuple
    - pip._vendor.pyparsing.core.Combine.ignore
    - <builtin>.list
    - pip._vendor.pyparsing.core.ParserElement.__mul__.makeOptionalList
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.super
    - pip._vendor.pyparsing.core.And.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core.ZeroOrMore.__init__
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.Empty.__init__
    - pip._vendor.pyparsing.core.ParserElement.copy
    - <builtin>.all
    - traceback.extract_stack
    - pip._vendor.pyparsing.core.ParserElement.__mul__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1554
    functionName: pip._vendor.pyparsing.core.ParserElement.__or__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.super
    - <builtin>.any
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.pyparsing.core.MatchFirst.__init__
    - <builtin>.all
    - pip._vendor.pyparsing.core.Literal.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1570
    functionName: pip._vendor.pyparsing.core.ParserElement.__ror__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Literal.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1580
    functionName: pip._vendor.pyparsing.core.ParserElement.__xor__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.any
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.pyparsing.core.Or.__init__
    - <builtin>.all
    - pip._vendor.pyparsing.core.Literal.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f473eaf0>
    argNames:
    - self
    - exprs
    - savelist
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4082
    functionName: pip._vendor.pyparsing.core.Or.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - <builtin>.any
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1590
    functionName: pip._vendor.pyparsing.core.ParserElement.__rxor__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Literal.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1600
    functionName: pip._vendor.pyparsing.core.ParserElement.__and__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - <builtin>.len
    - <builtin>.all
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.Each.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f44b04f0>
    argNames:
    - self
    - exprs
    - savelist
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4398
    functionName: pip._vendor.pyparsing.core.Each.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1610
    functionName: pip._vendor.pyparsing.core.ParserElement.__rand__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Literal.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1620
    functionName: pip._vendor.pyparsing.core.ParserElement.__invert__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.str
    - pip._vendor.pyparsing.core.NotAny.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - expr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4927
    functionName: pip._vendor.pyparsing.core.NotAny.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1630
    functionName: pip._vendor.pyparsing.core.ParserElement.__getitem__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - <builtin>.len
    - abc.ABC.stopOn
    - <builtin>.iter
    - <builtin>.tuple
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.ABC.stopOn
    functionSourceFile: abc
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4a22040>
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1690
    functionName: pip._vendor.pyparsing.core.ParserElement.__call__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._setResultsName
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - warnings.warn
    - pip._vendor.pyparsing.core.Forward._setResultsName
    - <builtin>.set
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.MatchFirst._setResultsName
    - traceback.extract_stack
    - pip._vendor.pyparsing.core.Or._setResultsName
    - name.endswith
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f495c910>
    argNames:
    - self
    - recursive
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1717
    functionName: pip._vendor.pyparsing.core.ParserElement.ignore_whitespace
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    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: 1749
    functionName: pip._vendor.pyparsing.core.ParserElement.parse_with_tabs
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1758
    functionName: pip._vendor.pyparsing.core.ParserElement.ignore
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 17
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - abc.ABC.ignoreExprs.append
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.Suppress.__init__
    - <builtin>.set
    - pip._vendor.pyparsing.core.Forward.__init__
    - traceback.extract_stack
    - pip._vendor.pyparsing.core.NoMatch.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.ABC.ignoreExprs.append
    functionSourceFile: abc
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - start_action
    - success_action
    - exception_action
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1786
    functionName: pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 41
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4954790>
    - <ast.Constant object at 0x7f30f4954760>
    argNames:
    - self
    - flag
    - recurse
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1812
    functionName: pip._vendor.pyparsing.core.ParserElement.set_debug
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 40
    functionsReached:
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - collections.deque
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.set
    - collections.deque.popleft
    - expr.set_debug
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - cur.recurse
    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: expr.set_debug
    functionSourceFile: <builtin>
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1866
    functionName: pip._vendor.pyparsing.core.ParserElement.default_name
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.Each.streamline
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.NotAny._generateDefaultName
    - pip._vendor.pyparsing.core.Or.streamline
    - pip._vendor.pyparsing.core.OneOrMore._generateDefaultName
    - prev.add_parse_action
    - pip._vendor.pyparsing.core.DelimitedList._generateDefaultName
    - cur.recurse
    - pip._vendor.pyparsing.core.Opt._generateDefaultName
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - pip._vendor.pyparsing.core.Regex._generateDefaultName
    - <builtin>.str
    - pip._vendor.pyparsing.core.Word._generateDefaultName.charsAsStr
    - itertools.chain
    - <builtin>.enumerate
    - <builtin>.set
    - pip._vendor.pyparsing.core.QuotedString._generateDefaultName
    - pip._vendor.pyparsing.core.And._generateDefaultName
    - pip._vendor.pyparsing.core.ParseElementEnhance.streamline
    - pip._vendor.pyparsing.core.ParserElement._generateDefaultName
    - pip._vendor.pyparsing.core.Empty._generateDefaultName
    - <builtin>.super
    - pip._vendor.pyparsing.core.Each._generateDefaultName
    - pip._vendor.pyparsing.core.Forward.streamline
    - <builtin>.any
    - ret.append
    - <builtin>.len
    - pip._vendor.pyparsing.core.Forward._generateDefaultName
    - pip._vendor.pyparsing.core.CharsNotIn._generateDefaultName
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - <builtin>.sorted
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core._PendingSkip._generateDefaultName
    - <builtin>.id
    - <builtin>.iter
    - <builtin>.zip
    - pip._vendor.pyparsing.core.Word._generateDefaultName
    - <builtin>.next
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - <builtin>.ord
    - pip._vendor.pyparsing.core.Keyword._generateDefaultName
    - pip._vendor.pyparsing.core.And._ErrorStop._generateDefaultName
    - pip._vendor.pyparsing.core.Literal._generateDefaultName
    - pip._vendor.pyparsing.core.MatchFirst._generateDefaultName
    - collections.deque
    - pip._vendor.pyparsing.core.Empty.__init__
    - seen.add
    - itertools.groupby
    - pip._vendor.pyparsing.core.ZeroOrMore._generateDefaultName
    - pip._vendor.pyparsing.core.Or._generateDefaultName
    - <builtin>.all
    - itertools.count
    - <builtin>.repr
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4510
    functionName: pip._vendor.pyparsing.core.Each._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4941
    functionName: pip._vendor.pyparsing.core.NotAny._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5584
    functionName: pip._vendor.pyparsing.core.Forward._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3429
    functionName: pip._vendor.pyparsing.core.CharsNotIn._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - ret.append
    - itertools.chain
    - collections.deque
    - <builtin>.len
    - itertools.groupby
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - <builtin>.sorted
    - <builtin>.set
    - <builtin>.iter
    - itertools.count
    - <builtin>.next
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5050
    functionName: pip._vendor.pyparsing.core.OneOrMore._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2339
    functionName: pip._vendor.pyparsing.core._PendingSkip._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - pip._vendor.pyparsing.core.Empty.__init__
    - <builtin>.str
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2923
    functionName: pip._vendor.pyparsing.core.Word._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - ret.append
    - pip._vendor.pyparsing.core.Word._generateDefaultName.charsAsStr
    - itertools.chain
    - collections.deque
    - <builtin>.len
    - itertools.groupby
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - <builtin>.sorted
    - <builtin>.set
    - <builtin>.iter
    - itertools.count
    - <builtin>.next
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5227
    functionName: pip._vendor.pyparsing.core.Opt._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3924
    functionName: pip._vendor.pyparsing.core.And._ErrorStop._generateDefaultName
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3102
    functionName: pip._vendor.pyparsing.core.Regex._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2441
    functionName: pip._vendor.pyparsing.core.Literal._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4310
    functionName: pip._vendor.pyparsing.core.MatchFirst._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5084
    functionName: pip._vendor.pyparsing.core.ZeroOrMore._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3328
    functionName: pip._vendor.pyparsing.core.QuotedString._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4056
    functionName: pip._vendor.pyparsing.core.And._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4194
    functionName: pip._vendor.pyparsing.core.Or._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2537
    functionName: pip._vendor.pyparsing.core.Keyword._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.repr
    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: 1872
    functionName: pip._vendor.pyparsing.core.ParserElement._generateDefaultName
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 5149
    functionName: pip._vendor.pyparsing.core.DelimitedList._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - pip._vendor.pyparsing.core.Each.streamline
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Or.streamline
    - prev.add_parse_action
    - cur.recurse
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - <builtin>.set
    - pip._vendor.pyparsing.core.ParseElementEnhance.streamline
    - <builtin>.super
    - pip._vendor.pyparsing.core.Forward.streamline
    - <builtin>.any
    - pip._vendor.pyparsing.core.And.streamline
    - <builtin>.id
    - <builtin>.iter
    - <builtin>.zip
    - <builtin>.next
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - seen.add
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2462
    functionName: pip._vendor.pyparsing.core.Empty._generateDefaultName
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1893
    functionName: pip._vendor.pyparsing.core.ParserElement.name
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1897
    functionName: pip._vendor.pyparsing.core.ParserElement.__str__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1900
    functionName: pip._vendor.pyparsing.core.ParserElement.__repr__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1908
    functionName: pip._vendor.pyparsing.core.ParserElement.recurse
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parseElementList
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1911
    functionName: pip._vendor.pyparsing.core.ParserElement._checkRecursion
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 5
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - e._checkRecursion
    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: e._checkRecursion
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f494b460>
    argNames:
    - self
    - validateTrace
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1916
    functionName: pip._vendor.pyparsing.core.ParserElement.validate
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - pip._vendor.pyparsing.core.And._checkRecursion
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement._checkRecursion
    - e._checkRecursion
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parseElementList
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4049
    functionName: pip._vendor.pyparsing.core.And._checkRecursion
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 5
    functionsReached:
    - e._checkRecursion
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4947d30>
    - <ast.Constant object at 0x7f30f4947d00>
    argNames:
    - self
    - file_or_filename
    - encoding
    - parse_all
    - parseAll
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1927
    functionName: pip._vendor.pyparsing.core.ParserElement.parse_file
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.Each.streamline
    - failed.append
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.Forward.streamline
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - pip._vendor.pyparsing.core.ParserElement.parse_string
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - <builtin>.iter
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - f.read
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - instring.expandtabs
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - prev.add_parse_action
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - file_or_filename.read
    - abc.ABC.ignoreExprs.streamline
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    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: file_or_filename.read
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 1957
    functionName: pip._vendor.pyparsing.core.ParserElement.__eq__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.Each.streamline
    - failed.append
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.Forward.streamline
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - pip._vendor.pyparsing.core.ParserElement.parse_string
    - <builtin>.min
    - pip._vendor.pyparsing.core.ParserElement.matches
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - <builtin>.iter
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - <builtin>.hex
    - typing.cast
    - retToks.haskeys
    - instring.expandtabs
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - prev.add_parse_action
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - abc.ABC.ignoreExprs.streamline
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - <builtin>.vars
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4942550>
    argNames:
    - self
    - test_string
    - parse_all
    - parseAll
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1969
    functionName: pip._vendor.pyparsing.core.ParserElement.matches
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 3
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.Each.streamline
    - failed.append
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.Forward.streamline
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - pip._vendor.pyparsing.core.ParserElement.parse_string
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - <builtin>.iter
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - <builtin>.hex
    - typing.cast
    - retToks.haskeys
    - instring.expandtabs
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - prev.add_parse_action
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - abc.ABC.ignoreExprs.streamline
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1966
    functionName: pip._vendor.pyparsing.core.ParserElement.__hash__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.id
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 16
    IfCount: 12
    argCount: 15
    argDefaultValues:
    - <ast.Constant object at 0x7f30f493e220>
    - <ast.Constant object at 0x7f30f493e1f0>
    - <ast.Constant object at 0x7f30f493e1c0>
    - <ast.Constant object at 0x7f30f493e190>
    - <ast.Constant object at 0x7f30f493e160>
    - <ast.Constant object at 0x7f30f493e130>
    - <ast.Constant object at 0x7f30f493e100>
    - <ast.Constant object at 0x7f30f493e0d0>
    argNames:
    - self
    - tests
    - parse_all
    - comment
    - full_dump
    - print_results
    - failure_tests
    - post_parse
    - file
    - with_line_numbers
    - parseAll
    - fullDump
    - printResults
    - failureTests
    - postParse
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1993
    functionName: pip._vendor.pyparsing.core.ParserElement.run_tests
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - allResults.append
    - s.split
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.Each.streamline
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - best_expr._parse
    - failed.append
    - tests.rstrip
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core.ParserElement.scan_string
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - pip._vendor.pyparsing.core.Or.parseImpl
    - comments.append
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.Forward.streamline
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pp_value.dump
    - sys.stdout.write
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - abc.ABC.ignoreExprs.append
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - fatals.append
    - pip._vendor.pyparsing.core.ParserElement.add_parse_action
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - t.lstrip
    - pip._vendor.pyparsing.core.ParserElement.parse_string
    - <builtin>.min
    - pip._vendor.pyparsing.core.ParserElement.matches
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - <builtin>.iter
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - match.group
    - fatals.clear
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - t.as_list
    - expr.set_debug
    - e.expr.set_results_name
    - <builtin>.max
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.testing.pyparsing_test.with_line_numbers
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - <builtin>.range
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - str.maketrans
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.core.Combine.ignore
    - pdb.set_trace
    - pip._vendor.pyparsing.util.col
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - ret.append
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - ret.extend
    - typing.cast
    - <builtin>.hex
    - <builtin>.ord
    - retToks.haskeys
    - instring.expandtabs
    - e._parse
    - pip._vendor.pyparsing.actions.replace_with
    - pip._vendor.pyparsing.core.Empty.__init__
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - seen.add
    - ret.replace
    - result.dump
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - out.append
    - d.items
    - prev.add_parse_action
    - s.translate
    - pip._vendor.pyparsing.core.ParserElement.transform_string
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - abc.ABC.ignoreExprs.streamline
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - s.replace
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - out.extend
    - s.splitlines
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.util._flatten
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - pip._vendor.pyparsing.core.ParserElement.copy
    - kwargs.get
    - traceback.format_tb
    - <builtin>.print
    - s.expandtabs
    - pe.explain
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    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: tests.rstrip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repl_str
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: pip._vendor.pyparsing.actions.replace_with
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 5680
    functionName: pip._vendor.pyparsing.core.Combine.ignore
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 16
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - abc.ABC.ignoreExprs.append
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.Suppress.__init__
    - <builtin>.set
    - pip._vendor.pyparsing.core.Combine.ignore
    - pip._vendor.pyparsing.core.Forward.__init__
    - traceback.extract_stack
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - pip._vendor.pyparsing.core.NoMatch.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30f20a1e20>
    - <ast.Constant object at 0x7f30f20a16d0>
    - <ast.Constant object at 0x7f30f20a1610>
    - <ast.Constant object at 0x7f30f20a1a90>
    - <ast.Constant object at 0x7f30f20a1100>
    - <ast.Constant object at 0x7f30f20a15b0>
    argNames:
    - s
    - start_line
    - end_line
    - expand_tabs
    - eol_mark
    - mark_spaces
    - mark_control
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 238
    functionName: pip._vendor.pyparsing.testing.pyparsing_test.with_line_numbers
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 1
    functionsReached:
    - s.split
    - s.replace
    - <builtin>.str
    - str.maketrans
    - <builtin>.len
    - <builtin>.enumerate
    - s.expandtabs
    - <builtin>.zip
    - s.translate
    - s.splitlines
    - <builtin>.min
    - <builtin>.max
    - typing.cast
    - <builtin>.list
    - <builtin>.ord
    - <builtin>.range
    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: comments.append
    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: t.lstrip
    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: pe.explain
    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: traceback.format_tb
    functionSourceFile: traceback
    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: pp_value.dump
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.dump
    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: allResults.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30f47fc9a0>
    - <ast.Constant object at 0x7f30f47fc9d0>
    - <ast.Constant object at 0x7f30f47fca00>
    - <ast.Constant object at 0x7f30f47fca30>
    argNames:
    - self
    - output_html
    - vertical
    - show_results_names
    - show_groups
    - embed
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 2192
    functionName: pip._vendor.pyparsing.core.ParserElement.create_diagram
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.diagram._should_vertical
    - pip._vendor.pyparsing.core.Each.streamline
    - <builtin>.isinstance
    - pip._vendor.pyparsing.diagram.EditablePartial.from_call
    - pip._vendor.pyparsing.core.Or.streamline
    - prev.add_parse_action
    - pip._vendor.pyparsing.diagram._worth_extracting
    - looked_up.mark_for_extraction
    - jinja2.Template.render
    - pip._vendor.pyparsing.diagram._to_diagram_element
    - cur.recurse
    - data.append
    - diagram.diagram.writeStandalone
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.str
    - partial.items
    - pip._vendor.pyparsing.diagram.to_railroad
    - diagram.diagram.writeSvg
    - diag_file.write
    - <builtin>.enumerate
    - pip._vendor.pyparsing.diagram.EditablePartial.__init__
    - <builtin>.set
    - io.StringIO
    - output_html.write
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.pyparsing.core.Forward.streamline
    - <builtin>.any
    - deduped_diags.append
    - lookup.diagrams.values
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - pip._vendor.pyparsing.core.And.streamline
    - <builtin>.len
    - <builtin>.id
    - <builtin>.sorted
    - pip._vendor.pyparsing.diagram.ElementState.__init__
    - <builtin>.iter
    - pip._vendor.pyparsing.diagram.resolve_partial
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParseElementEnhance.recurse
    - <builtin>.next
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.diagram._visible_exprs
    - pip._vendor.pyparsing.diagram.ConverterState.extract_into_diagram
    - child.recurse
    - pip._vendor.pyparsing.diagram.ConverterState.generate_index
    - pip._vendor.pyparsing.diagram.ConverterState.__init__
    - seen.add
    - kwargs.get
    - <builtin>.open
    - pip._vendor.pyparsing.diagram.railroad_to_html
    - <builtin>.all
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - Exception
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa7dc0>
    - <ast.Constant object at 0x7f30f4aa70d0>
    - <ast.Constant object at 0x7f30f4aa7070>
    - <ast.Constant object at 0x7f30f4aa7040>
    argNames:
    - element
    - diagram_kwargs
    - vertical
    - show_results_names
    - show_groups
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 176
    functionName: pip._vendor.pyparsing.diagram.to_railroad
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 1
    functionsReached:
    - pip._vendor.pyparsing.diagram._should_vertical
    - <builtin>.isinstance
    - pip._vendor.pyparsing.diagram.EditablePartial.from_call
    - pip._vendor.pyparsing.diagram._worth_extracting
    - looked_up.mark_for_extraction
    - pip._vendor.pyparsing.diagram._to_diagram_element
    - <builtin>.str
    - partial.items
    - pip._vendor.pyparsing.diagram.EditablePartial.__init__
    - <builtin>.set
    - <builtin>.list
    - <builtin>.any
    - deduped_diags.append
    - lookup.diagrams.values
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - <builtin>.len
    - <builtin>.id
    - pip._vendor.pyparsing.diagram.ElementState.__init__
    - <builtin>.sorted
    - pip._vendor.pyparsing.diagram.resolve_partial
    - pip._vendor.pyparsing.core.ParseElementEnhance.recurse
    - pip._vendor.pyparsing.diagram._visible_exprs
    - pip._vendor.pyparsing.diagram.ConverterState.extract_into_diagram
    - pip._vendor.pyparsing.diagram.ConverterState.generate_index
    - child.recurse
    - pip._vendor.pyparsing.diagram.ConverterState.__init__
    - seen.add
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc70df0>
    argNames:
    - diagrams
    - embed
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 137
    functionName: pip._vendor.pyparsing.diagram.railroad_to_html
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 1
    functionsReached:
    - diagram.diagram.writeStandalone
    - diagram.diagram.writeSvg
    - kwargs.get
    - io.StringIO
    - jinja2.Template.render
    - data.append
    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: diag_file.write
    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: output_html.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2251
    functionName: pip._vendor.pyparsing.core.ParserElement.inlineLiteralsUsing
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2255
    functionName: pip._vendor.pyparsing.core.ParserElement.setDefaultWhitespaceChars
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2258
    functionName: pip._vendor.pyparsing.core.ParserElement.setResultsName
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2261
    functionName: pip._vendor.pyparsing.core.ParserElement.setBreak
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2267
    functionName: pip._vendor.pyparsing.core.ParserElement.addParseAction
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2270
    functionName: pip._vendor.pyparsing.core.ParserElement.addCondition
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2273
    functionName: pip._vendor.pyparsing.core.ParserElement.setFailAction
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2276
    functionName: pip._vendor.pyparsing.core.ParserElement.tryParse
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2280
    functionName: pip._vendor.pyparsing.core.ParserElement.enableLeftRecursion
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2284
    functionName: pip._vendor.pyparsing.core.ParserElement.enablePackrat
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2290
    functionName: pip._vendor.pyparsing.core.ParserElement.scanString
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2293
    functionName: pip._vendor.pyparsing.core.ParserElement.transformString
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2296
    functionName: pip._vendor.pyparsing.core.ParserElement.searchString
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2299
    functionName: pip._vendor.pyparsing.core.ParserElement.ignoreWhitespace
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2302
    functionName: pip._vendor.pyparsing.core.ParserElement.leaveWhitespace
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2305
    functionName: pip._vendor.pyparsing.core.ParserElement.setWhitespaceChars
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2308
    functionName: pip._vendor.pyparsing.core.ParserElement.parseWithTabs
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2311
    functionName: pip._vendor.pyparsing.core.ParserElement.setDebugActions
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2314
    functionName: pip._vendor.pyparsing.core.ParserElement.setDebug
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2320
    functionName: pip._vendor.pyparsing.core.ParserElement.parseFile
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2323
    functionName: pip._vendor.pyparsing.core.ParserElement.runTests
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2342
    functionName: pip._vendor.pyparsing.core._PendingSkip.__add__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.ParserElement.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - cur.recurse
    - abc.ABC.ignoreExprs.append
    - <builtin>.str
    - <builtin>.set
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.Combine.ignore
    - <builtin>.list
    - <builtin>.super
    - collections.deque.extend
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core.Forward.copy
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - t
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2346
    functionName: pip._vendor.pyparsing.core._PendingSkip.__add__.must_skip
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - t.pop
    - t._skipped.as_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: t._skipped.as_list
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - t
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2351
    functionName: pip._vendor.pyparsing.core._PendingSkip.__add__.show_skip
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - t.pop
    - t._skipped.as_list
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2363
    functionName: pip._vendor.pyparsing.core._PendingSkip.__repr__
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2377
    functionName: pip._vendor.pyparsing.core.Token.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2380
    functionName: pip._vendor.pyparsing.core.Token._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f481d220>
    argNames:
    - cls
    - match_string
    - matchString
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2415
    functionName: pip._vendor.pyparsing.core.Literal.__new__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2428
    functionName: pip._vendor.pyparsing.core.Literal.__getnewargs__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: instring.startswith
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4a1b790>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2470
    functionName: pip._vendor.pyparsing.core._SingleCharLiteral.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ParseException
    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: abc.ABC.upper
    functionSourceFile: abc
    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: pip._vendor.pyparsing.core.Keyword.set_default_keyword_chars.chars.upper
    functionSourceFile: pip
    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: pip._vendor.pyparsing.core.Keyword.DEFAULT_KEYWORD_CHARS.upper
    functionSourceFile: pip
    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: string.ascii_uppercase.upper
    functionSourceFile: string
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - chars
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2588
    functionName: pip._vendor.pyparsing.core.Keyword.set_default_keyword_chars
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4a08130>
    argNames:
    - self
    - match_string
    - matchString
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2611
    functionName: pip._vendor.pyparsing.core.CaselessLiteral.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - match_string.upper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: match_string.upper
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4a04af0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2618
    functionName: pip._vendor.pyparsing.core.CaselessLiteral.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4a04070>
    - <ast.Constant object at 0x7f30f4a04040>
    argNames:
    - self
    - match_string
    - ident_chars
    - matchString
    - identChars
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2636
    functionName: pip._vendor.pyparsing.core.CaselessKeyword.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f49ff850>
    argNames:
    - self
    - match_string
    - max_mismatches
    - maxMismatches
    - caseless
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2684
    functionName: pip._vendor.pyparsing.core.CloseMatch.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2701
    functionName: pip._vendor.pyparsing.core.CloseMatch._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f49fca60>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2704
    functionName: pip._vendor.pyparsing.core.CloseMatch.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - mat.lower
    - <builtin>.len
    - <builtin>.enumerate
    - <builtin>.zip
    - mismatches.append
    - src.lower
    linkageType: pythonLinkage
    raised:
    - ParseException
    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: src.lower
    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: mat.lower
    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: mismatches.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2924
    functionName: pip._vendor.pyparsing.core.Word._generateDefaultName.charsAsStr
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    functionsReached:
    - ret.append
    - itertools.chain
    - collections.deque
    - <builtin>.len
    - itertools.groupby
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - <builtin>.sorted
    - <builtin>.set
    - <builtin>.iter
    - itertools.count
    - <builtin>.next
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    - <builtin>.ord
    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.end
    functionSourceFile: <builtin>
    functionUses: 31
    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.group
    functionSourceFile: <builtin>
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f49044f0>
    - <ast.Constant object at 0x7f30f49044c0>
    argNames:
    - self
    - charset
    - as_keyword
    - exclude_chars
    - asKeyword
    - excludeChars
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2997
    functionName: pip._vendor.pyparsing.core.Char.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.Regex
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - functools.cached_property
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3085
    functionName: pip._vendor.pyparsing.core.Regex.re
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3095
    functionName: pip._vendor.pyparsing.core.Regex.re_match
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3099
    functionName: pip._vendor.pyparsing.core.Regex.mayReturnEmpty
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.Regex.re_match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.groupdict
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.groups
    functionSourceFile: <builtin>
    functionUses: 40
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - repl
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3136
    functionName: pip._vendor.pyparsing.core.Regex.sub
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.add_parse_action
    - pip._vendor.pyparsing.core._trim_arity
    - <builtin>.callable
    - <builtin>.getattr
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - tokens
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3162
    functionName: pip._vendor.pyparsing.core.Regex.sub.pa
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.QuotedString
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 14
    argDefaultValues:
    - <ast.Constant object at 0x7f30f48e9280>
    - <ast.Constant object at 0x7f30f48e9250>
    - <ast.Constant object at 0x7f30f48e9220>
    - <ast.Constant object at 0x7f30f48e91f0>
    - <ast.Constant object at 0x7f30f48e91c0>
    - <ast.Constant object at 0x7f30f48e9190>
    - <ast.Constant object at 0x7f30f48e9160>
    argNames:
    - self
    - quote_char
    - esc_char
    - esc_quote
    - multiline
    - unquote_results
    - end_quote_char
    - convert_whitespace_escapes
    - quoteChar
    - escChar
    - escQuote
    - unquoteResults
    - endQuoteChar
    - convertWhitespaceEscapes
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3209
    functionName: pip._vendor.pyparsing.core.QuotedString.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - s.replace
    - <builtin>.str
    - pip._vendor.pyparsing.util._escape_regex_range_chars
    - endQuoteChar.strip
    - <builtin>.len
    - re.RegexFlag
    - re.compile
    - quote_char.strip
    - re.escape
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: quote_char.strip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: endQuoteChar.strip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.RegexFlag
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.replace
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f48c9d30>
    - <ast.Constant object at 0x7f30f48c9d60>
    - <ast.Constant object at 0x7f30f48c9d90>
    - <ast.Constant object at 0x7f30f48c9dc0>
    argNames:
    - self
    - ws
    - min
    - max
    - exact
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3489
    functionName: pip._vendor.pyparsing.core.White.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3511
    functionName: pip._vendor.pyparsing.core.White._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f48d2040>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3514
    functionName: pip._vendor.pyparsing.core.White.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.min
    linkageType: pythonLinkage
    raised:
    - ParseException
    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: 3531
    functionName: pip._vendor.pyparsing.core.PositionToken.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - colno
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3542
    functionName: pip._vendor.pyparsing.core.GoToColumn.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - instring
    - loc
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3546
    functionName: pip._vendor.pyparsing.core.GoToColumn.preParse
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f48dc130>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3559
    functionName: pip._vendor.pyparsing.core.GoToColumn.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3591
    functionName: pip._vendor.pyparsing.core.LineStart.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.Empty.__init__
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - <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: 1
    functionLinenumber: 3643
    functionName: pip._vendor.pyparsing.core.StringStart.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30f47aeb20>
    argNames:
    - self
    - word_chars
    - wordChars
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3685
    functionName: pip._vendor.pyparsing.core.WordStart.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f47b3130>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3691
    functionName: pip._vendor.pyparsing.core.WordStart.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30f47b3a00>
    argNames:
    - self
    - word_chars
    - wordChars
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3710
    functionName: pip._vendor.pyparsing.core.WordEnd.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f47b8100>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3717
    functionName: pip._vendor.pyparsing.core.WordEnd.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f47b8be0>
    argNames:
    - self
    - exprs
    - savelist
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3733
    functionName: pip._vendor.pyparsing.core.ParseExpression.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.any
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3759
    functionName: pip._vendor.pyparsing.core.ParseExpression.recurse
    functionSourceFile: pip._vendor.pyparsing.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
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3762
    functionName: pip._vendor.pyparsing.core.ParseExpression.append
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 4
    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 0x7f30f47c17f0>
    argNames:
    - self
    - recursive
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3767
    functionName: pip._vendor.pyparsing.core.ParseExpression.leave_whitespace
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - e.leave_whitespace
    - e.copy
    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: e.copy
    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: e.leave_whitespace
    functionSourceFile: <builtin>
    functionUses: 1
    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 0x7f30f47c5070>
    argNames:
    - self
    - recursive
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3780
    functionName: pip._vendor.pyparsing.core.ParseExpression.ignore_whitespace
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - e.ignore_whitespace
    - e.copy
    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: e.ignore_whitespace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3792
    functionName: pip._vendor.pyparsing.core.ParseExpression.ignore
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - e.ignore
    - <builtin>.isinstance
    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: e.ignore
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3804
    functionName: pip._vendor.pyparsing.core.ParseExpression._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.str
    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: 1
    functionLinenumber: 3807
    functionName: pip._vendor.pyparsing.core.ParseExpression.streamline
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.len
    - e.streamline
    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: e.streamline
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f47d3370>
    argNames:
    - self
    - validateTrace
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3848
    functionName: pip._vendor.pyparsing.core.ParseExpression.validate
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - e.validate
    - warnings.warn
    - pip._vendor.pyparsing.core.And._checkRecursion
    - pip._vendor.pyparsing.core.ParserElement._checkRecursion
    - e._checkRecursion
    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: e.validate
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3859
    functionName: pip._vendor.pyparsing.core.ParseExpression.copy
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - typing.cast
    - e.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f47d7220>
    argNames:
    - self
    - name
    - listAllMatches
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3865
    functionName: pip._vendor.pyparsing.core.ParseExpression._setResultsName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - warnings.warn
    - <builtin>.type
    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: 3
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.ParseExpression
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.util._make_synonym_function
    - inspect.signature
    - pip._vendor.pyparsing.util.replaced_by_pep8
    - functools.wraps
    - <builtin>.getattr
    - pip._vendor.pyparsing.util.replaced_by_pep8.<lambda1>
    - typing.cast
    - <builtin>.list
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3894
    functionName: pip._vendor.pyparsing.core.ParseExpression.leaveWhitespace
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3897
    functionName: pip._vendor.pyparsing.core.ParseExpression.ignoreWhitespace
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tmp.append
    functionSourceFile: <builtin>
    functionUses: 11
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.And.streamline.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - s.rfind
    - <builtin>.setattr
    - pip._vendor.pyparsing.util.col
    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: prev.add_parse_action
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: e._parse
    functionSourceFile: <builtin>
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4042
    functionName: pip._vendor.pyparsing.core.And.__iadd__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParseExpression.append
    - pip._vendor.pyparsing.core.Literal.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: e.try_parse
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fatals.append
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: best_expr._parse
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: expr1._parse
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.Or.parseImpl.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fatals.sort
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.Or.parseImpl.<lambda2>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4187
    functionName: pip._vendor.pyparsing.core.Or.__ixor__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParseExpression.append
    - pip._vendor.pyparsing.core.Literal.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4303
    functionName: pip._vendor.pyparsing.core.MatchFirst.__ior__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParseExpression.append
    - pip._vendor.pyparsing.core.Literal.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4408
    functionName: pip._vendor.pyparsing.core.Each.__iand__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParseExpression.append
    - pip._vendor.pyparsing.core.Literal.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: e.expr.set_results_name
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: failed.clear
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fatals.clear
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: failed.append
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: matchOrder.append
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tmpReqd.remove
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tmpOpt.remove
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.Each.parseImpl.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.Each.parseImpl.<lambda2>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f44cbd90>
    argNames:
    - self
    - expr
    - savelist
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4519
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - <builtin>.set
    - abc.ABC.ignoreExprs.extend
    - pip._vendor.pyparsing.core.Literal.__init__
    - typing.cast
    - <builtin>.issubclass
    - <builtin>.type
    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: abc.ABC.ignoreExprs.extend
    functionSourceFile: abc
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 4542
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance.recurse
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f44d4760>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 4545
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f44d4e80>
    argNames:
    - self
    - recursive
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 4555
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 11
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - <builtin>.set
    - pip._vendor.pyparsing.core.Forward.__init__
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f44d95e0>
    argNames:
    - self
    - recursive
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 4564
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance.ignore_whitespace
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.Forward.ignore_whitespace
    - <builtin>.set
    - pip._vendor.pyparsing.core.ParserElement.ignore_whitespace
    - pip._vendor.pyparsing.core.Forward.__init__
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4326e80>
    argNames:
    - self
    - recursive
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 5558
    functionName: pip._vendor.pyparsing.core.Forward.ignore_whitespace
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 4573
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 14
    functionsReached:
    - <builtin>.super
    - traceback.extract_stack
    - abc.ABC.ignoreExprs.append
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.Suppress.__init__
    - <builtin>.set
    - pip._vendor.pyparsing.core.Combine.ignore
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - pip._vendor.pyparsing.core.NoMatch.__init__
    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: 4
    functionLinenumber: 4585
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance.streamline
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 3
    functionsReached:
    - pip._vendor.pyparsing.core.Each.streamline
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Or.streamline
    - prev.add_parse_action
    - cur.recurse
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - <builtin>.set
    - <builtin>.super
    - pip._vendor.pyparsing.core.Forward.streamline
    - <builtin>.any
    - pip._vendor.pyparsing.core.And.streamline
    - <builtin>.id
    - <builtin>.iter
    - <builtin>.zip
    - <builtin>.next
    - typing.cast
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - seen.add
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parseElementList
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4591
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance._checkRecursion
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    functionsReached:
    - e._checkRecursion
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - pip._vendor.pyparsing.core.ParseElementEnhance._checkRecursion
    - pip._vendor.pyparsing.core.ParserElement._checkRecursion
    - pip._vendor.pyparsing.core.And._checkRecursion
    linkageType: pythonLinkage
    raised:
    - RecursiveGrammarException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4422460>
    argNames:
    - self
    - validateTrace
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 4598
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance.validate
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - e._checkRecursion
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - warnings.warn
    - pip._vendor.pyparsing.core.ParseElementEnhance._checkRecursion
    - pip._vendor.pyparsing.core.ParserElement.validate
    - pip._vendor.pyparsing.core.Forward.validate
    - pip._vendor.pyparsing.core.ParserElement._checkRecursion
    - pip._vendor.pyparsing.core.And._checkRecursion
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f432a610>
    argNames:
    - self
    - validateTrace
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 5569
    functionName: pip._vendor.pyparsing.core.Forward.validate
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - e._checkRecursion
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - warnings.warn
    - pip._vendor.pyparsing.core.ParseElementEnhance._checkRecursion
    - pip._vendor.pyparsing.core.ParserElement.validate
    - pip._vendor.pyparsing.core.Forward.validate
    - pip._vendor.pyparsing.core.ParserElement._checkRecursion
    - pip._vendor.pyparsing.core.And._checkRecursion
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4611
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance._generateDefaultName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.str
    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: 3
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.util._make_synonym_function
    - inspect.signature
    - pip._vendor.pyparsing.util.replaced_by_pep8
    - functools.wraps
    - <builtin>.getattr
    - pip._vendor.pyparsing.util.replaced_by_pep8.<lambda1>
    - typing.cast
    - <builtin>.list
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 4617
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance.leaveWhitespace
    functionSourceFile: pip._vendor.pyparsing.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 4620
    functionName: pip._vendor.pyparsing.core.ParseElementEnhance.ignoreWhitespace
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ref_col
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 4631
    functionName: pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - <builtin>.str
    - <builtin>.bool
    - kwargs.get
    - pip._vendor.pyparsing.core._trim_arity
    - functools.wraps
    - <builtin>.getattr
    - traceback.extract_stack
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - s.rfind
    - pip._vendor.pyparsing.util.col
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ref_col
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 4637
    functionName: pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - <builtin>.str
    - <builtin>.bool
    - kwargs.get
    - pip._vendor.pyparsing.core._trim_arity
    - functools.wraps
    - <builtin>.getattr
    - traceback.extract_stack
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - s.rfind
    - pip._vendor.pyparsing.util.col
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - expr
    - recursive
    - grouped
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4642
    functionName: pip._vendor.pyparsing.core.IndentedBlock.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.hex
    functionSourceFile: <builtin>
    functionUses: 79
    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: pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - expr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4699
    functionName: pip._vendor.pyparsing.core.AtStringStart.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4434bb0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4703
    functionName: pip._vendor.pyparsing.core.AtStringStart.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - expr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4732
    functionName: pip._vendor.pyparsing.core.AtLineStart.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f443a580>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4736
    functionName: pip._vendor.pyparsing.core.AtLineStart.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    - s.rfind
    - pip._vendor.pyparsing.util.col
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f443afa0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 4769
    functionName: pip._vendor.pyparsing.core.FollowedBy.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f443e7c0>
    argNames:
    - self
    - expr
    - retreat
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4808
    functionName: pip._vendor.pyparsing.core.PrecededBy.__init__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.len
    - typing.cast
    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: pip._vendor.pyparsing.core.PrecededBy.__init__.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.slice
    - t.__delitem__
    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>.slice
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: t.__delitem__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f44471c0>
    - <ast.Constant object at 0x7f30f44471f0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4834
    functionName: pip._vendor.pyparsing.core.PrecededBy.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - <builtin>.len
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - test_expr._parse
    - <builtin>.min
    - <builtin>.max
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - ParseException
    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: test_expr._parse
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f444c760>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 4888
    functionName: pip._vendor.pyparsing.core.Located.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ender
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4961
    functionName: pip._vendor.pyparsing.core._MultipleMatch.stopOn
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 34
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Literal.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f445a4c0>
    argNames:
    - self
    - instring
    - loc
    - doActions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4967
    functionName: pip._vendor.pyparsing.core._MultipleMatch.parseImpl
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - failed.append
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - typing.cast
    - <builtin>.hex
    - retToks.haskeys
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f445f700>
    argNames:
    - self
    - name
    - listAllMatches
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4995
    functionName: pip._vendor.pyparsing.core._MultipleMatch._setResultsName
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - <builtin>.isinstance
    - warnings.warn
    - pip._vendor.pyparsing.core.ParseElementEnhance.recurse
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 5154
    functionName: pip._vendor.pyparsing.core._NullToken.__bool__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 5157
    functionName: pip._vendor.pyparsing.core._NullToken.__str__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5402
    functionName: pip._vendor.pyparsing.core.Forward.__lshift__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - <builtin>.set
    - traceback.extract_stack
    - abc.ABC.ignoreExprs.extend
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5424
    functionName: pip._vendor.pyparsing.core.Forward.__ilshift__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5430
    functionName: pip._vendor.pyparsing.core.Forward.__or__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - warnings.warn
    - traceback.extract_stack
    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: 1
    functionLinenumber: 5445
    functionName: pip._vendor.pyparsing.core.Forward.__del__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - warnings.warn_explicit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: warnings.warn_explicit
    functionSourceFile: warnings
    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: prev_result.copy
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: prev_peek.copy
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.Forward
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pyparsing.util._make_synonym_function
    - inspect.signature
    - pip._vendor.pyparsing.util.replaced_by_pep8
    - functools.wraps
    - <builtin>.getattr
    - pip._vendor.pyparsing.util.replaced_by_pep8.<lambda1>
    - typing.cast
    - <builtin>.list
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 5629
    functionName: pip._vendor.pyparsing.core.Forward.ignoreWhitespace
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tokenlist.copy
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tokenlist._asStringList
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: retToks.haskeys
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tokenlist.asList
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - p1
    - p2
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 21
    functionName: pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    functionSourceFile: ''
    functionUses: 43
    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: tok.copy
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.TypeError
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dictvalue.haskeys
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tokenlist.as_dict
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 5860
    functionName: pip._vendor.pyparsing.core.Suppress.__add__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - traceback.extract_stack
    - abc.ABC.ignoreExprs.append
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.Suppress.__init__
    - <builtin>.len
    - <builtin>.set
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - pip._vendor.pyparsing.core.Combine.ignore
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - pip._vendor.pyparsing.core.NoMatch.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 5866
    functionName: pip._vendor.pyparsing.core.Suppress.__sub__
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - traceback.extract_stack
    - abc.ABC.ignoreExprs.append
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - pip._vendor.pyparsing.core.Suppress.__init__
    - <builtin>.len
    - <builtin>.set
    - pip._vendor.pyparsing.core.Forward.__init__
    - pip._vendor.pyparsing.core.SkipTo.__init__
    - pip._vendor.pyparsing.core.ParseElementEnhance.ignore
    - pip._vendor.pyparsing.core.Combine.ignore
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core.ParserElement.ignore
    - pip._vendor.pyparsing.core.NoMatch.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5879
    functionName: pip._vendor.pyparsing.core.trace_parse_action
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - pip._vendor.pyparsing.core._trim_arity
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - paArgs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 5906
    functionName: pip._vendor.pyparsing.core.trace_parse_action.z
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - sys.stderr.write
    - traceback.extract_tb
    - <builtin>.len
    - strg.find
    - pip._vendor.pyparsing.util.line
    - pip._vendor.pyparsing.core._trim_arity.wrapper
    - strg.rfind
    - pip._vendor.pyparsing.core._trim_arity.<lambda1>
    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: pip._vendor.pyparsing.core.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.core.<lambda2>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - <builtin>.chr
    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>.chr
    functionSourceFile: <builtin>
    functionUses: 68
    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: pip._vendor.pyparsing.core.<lambda3>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - <builtin>.chr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 5952
    functionName: pip._vendor.pyparsing.core.srange
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.Each.streamline
    - failed.append
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - best_expr._parse
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.Forward.streamline
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - pip._vendor.pyparsing.core.ParserElement.parse_string
    - <builtin>.min
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - <builtin>.iter
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - <builtin>.chr
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - <builtin>.range
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.as_dict
    - tokenlist.asList
    - typing.cast
    - <builtin>.hex
    - <builtin>.ord
    - retToks.haskeys
    - instring.expandtabs
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - pip._vendor.pyparsing.core.srange.<lambda1>
    - d.items
    - prev.add_parse_action
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - abc.ABC.ignoreExprs.streamline
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    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: pip._vendor.pyparsing.core.srange.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 2
    functionsReached:
    - <builtin>.range
    - <builtin>.isinstance
    - <builtin>.ord
    - <builtin>.chr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - func
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5989
    functionName: pip._vendor.pyparsing.core.token_map
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 6026
    functionName: pip._vendor.pyparsing.core.token_map.pa
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 6035
    functionName: pip._vendor.pyparsing.core.autoname_elements
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached:
    - var.set_name
    - <builtin>.isinstance
    - calling_frame.f_locals.items
    - sys._getframe
    - typing.cast
    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: calling_frame.f_locals.items
    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: var.set_name
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 6105
    functionName: pip._vendor.pyparsing.core.nullDebugAction
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 6108
    functionName: pip._vendor.pyparsing.core.traceParseAction
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 6111
    functionName: pip._vendor.pyparsing.core.conditionAsParseAction
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 6114
    functionName: pip._vendor.pyparsing.core.tokenMap
    functionSourceFile: pip._vendor.pyparsing.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.diagram
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - typing.NamedTuple
    - pip._vendor.pyparsing.diagram._apply_diagram_item_enhancements
    - jinja2.Template
    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: jinja2.Template
    functionSourceFile: jinja2
    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: typing.NamedTuple
    functionSourceFile: typing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - items
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 80
    functionName: pip._vendor.pyparsing.diagram.EachItem.__init__
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    - railroad.OneOrMore
    - railroad.Choice
    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: railroad.Choice
    functionSourceFile: railroad
    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: railroad.OneOrMore
    functionSourceFile: railroad
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - label
    - item
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 91
    functionName: pip._vendor.pyparsing.diagram.AnnotatedItem.__init__
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - func
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 104
    functionName: pip._vendor.pyparsing.diagram.EditablePartial.__init__
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - func
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: pip._vendor.pyparsing.diagram.EditablePartial.from_call
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 5
    functionsReached:
    - pip._vendor.pyparsing.diagram.EditablePartial.__init__
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 118
    functionName: pip._vendor.pyparsing.diagram.EditablePartial.name
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 0
    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: 121
    functionName: pip._vendor.pyparsing.diagram.EditablePartial.__call__
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - railroad.Optional
    - railroad.OneOrMore
    - railroad.Diagram
    - railroad.Group
    - railroad.Terminal
    - railroad.ZeroOrMore
    - typing.NamedTuple
    - railroad.Sequence
    - pip._vendor.pyparsing.diagram.EachItem.__init__
    - <builtin>.len
    - railroad.NonTerminal
    - railroad.HorizontalChoice
    - inspect.getfullargspec
    - railroad.Stack
    - pip._vendor.pyparsing.diagram.AnnotatedItem.__init__
    - kwargs.pop
    - railroad.Choice
    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: inspect.getfullargspec
    functionSourceFile: inspect
    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: railroad.Optional
    functionSourceFile: railroad
    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: railroad.Diagram
    functionSourceFile: railroad
    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: railroad.Group
    functionSourceFile: railroad
    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: railroad.Terminal
    functionSourceFile: railroad
    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: railroad.ZeroOrMore
    functionSourceFile: railroad
    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: railroad.Sequence
    functionSourceFile: railroad
    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: railroad.NonTerminal
    functionSourceFile: railroad
    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: railroad.HorizontalChoice
    functionSourceFile: railroad
    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: railroad.Stack
    functionSourceFile: railroad
    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: diagram.diagram.writeStandalone
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: diagram.diagram.writeSvg
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.append
    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: jinja2.Template.render
    functionSourceFile: jinja2
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - partial
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 160
    functionName: pip._vendor.pyparsing.diagram.resolve_partial
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 2
    functionsReached:
    - pip._vendor.pyparsing.diagram.resolve_partial
    - <builtin>.isinstance
    - partial.items
    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: partial.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc6fb20>
    argNames:
    - self
    - diagram_kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 313
    functionName: pip._vendor.pyparsing.diagram.ConverterState.__init__
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 2
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 42
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 60
    ICount: 5
    IfCount: 42
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30f5210250>
    - <ast.Constant object at 0x7f30f5210220>
    - <ast.Constant object at 0x7f30f52101f0>
    - <ast.Constant object at 0x7f30f52101c0>
    - <ast.Constant object at 0x7f30f5210190>
    - <ast.Constant object at 0x7f30f5210160>
    argNames:
    - element
    - parent
    - lookup
    - vertical
    - index
    - name_hint
    - show_results_names
    - show_groups
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 452
    functionName: pip._vendor.pyparsing.diagram._to_diagram_element
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 3
    functionsReached:
    - pip._vendor.pyparsing.diagram._should_vertical
    - <builtin>.isinstance
    - pip._vendor.pyparsing.diagram.EditablePartial.from_call
    - pip._vendor.pyparsing.diagram._worth_extracting
    - looked_up.mark_for_extraction
    - pip._vendor.pyparsing.diagram._to_diagram_element
    - <builtin>.str
    - pip._vendor.pyparsing.diagram.EditablePartial.__init__
    - <builtin>.set
    - <builtin>.list
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - <builtin>.len
    - pip._vendor.pyparsing.diagram.ElementState.__init__
    - <builtin>.id
    - pip._vendor.pyparsing.core.ParseElementEnhance.recurse
    - pip._vendor.pyparsing.diagram._visible_exprs
    - pip._vendor.pyparsing.diagram.ConverterState.extract_into_diagram
    - pip._vendor.pyparsing.diagram.ConverterState.generate_index
    - child.recurse
    - <builtin>.type
    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: lookup.diagrams.values
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: deduped_diags.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.diagram.to_railroad.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.diagram
    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:
    - specification
    - exprs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 234
    functionName: pip._vendor.pyparsing.diagram._should_vertical
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 4
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    - pip._vendor.pyparsing.diagram._visible_exprs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - exprs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 438
    functionName: pip._vendor.pyparsing.diagram._visible_exprs
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30de0f7fa0>
    - <ast.Constant object at 0x7f30e4cf3b80>
    argNames:
    - self
    - element
    - converted
    - parent
    - number
    - name
    - parent_index
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 252
    functionName: pip._vendor.pyparsing.diagram.ElementState.__init__
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd96d0>
    - <ast.Constant object at 0x7f30f6bd9250>
    argNames:
    - self
    - el_id
    - state
    - name
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 278
    functionName: pip._vendor.pyparsing.diagram.ElementState.mark_for_extraction
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 0
    functionsReached:
    - <builtin>.any
    - child.recurse
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - pip._vendor.pyparsing.diagram._worth_extracting
    - state.extract_into_diagram
    - pip._vendor.pyparsing.core.ParseElementEnhance.recurse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - element
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 386
    functionName: pip._vendor.pyparsing.diagram._worth_extracting
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 5
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - <builtin>.any
    - child.recurse
    - pip._vendor.pyparsing.core.ParseElementEnhance.recurse
    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: state.extract_into_diagram
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 326
    functionName: pip._vendor.pyparsing.diagram.ConverterState.__setitem__
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 329
    functionName: pip._vendor.pyparsing.diagram.ConverterState.__getitem__
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 332
    functionName: pip._vendor.pyparsing.diagram.ConverterState.__delitem__
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 335
    functionName: pip._vendor.pyparsing.diagram.ConverterState.__contains__
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 338
    functionName: pip._vendor.pyparsing.diagram.ConverterState.generate_unnamed
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 345
    functionName: pip._vendor.pyparsing.diagram.ConverterState.generate_index
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - el_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 352
    functionName: pip._vendor.pyparsing.diagram.ConverterState.extract_into_diagram
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 4
    functionsReached:
    - pip._vendor.pyparsing.diagram.EditablePartial.from_call
    - pip._vendor.pyparsing.diagram.EditablePartial.__init__
    - <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: child.recurse
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fn
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 395
    functionName: pip._vendor.pyparsing.diagram._apply_diagram_item_enhancements
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30f5211850>
    - <ast.Constant object at 0x7f30f5211820>
    - <ast.Constant object at 0x7f30f52117f0>
    - <ast.Constant object at 0x7f30f52117c0>
    - <ast.Constant object at 0x7f30f5211790>
    - <ast.Constant object at 0x7f30f5211760>
    argNames:
    - element
    - parent
    - lookup
    - vertical
    - index
    - name_hint
    - show_results_names
    - show_groups
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 402
    functionName: pip._vendor.pyparsing.diagram._apply_diagram_item_enhancements._inner
    functionSourceFile: pip._vendor.pyparsing.diagram
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.diagram._should_vertical
    - <builtin>.isinstance
    - pip._vendor.pyparsing.diagram.EditablePartial.from_call
    - pip._vendor.pyparsing.diagram._worth_extracting
    - looked_up.mark_for_extraction
    - pip._vendor.pyparsing.diagram._to_diagram_element
    - <builtin>.str
    - pip._vendor.pyparsing.diagram.EditablePartial.__init__
    - <builtin>.set
    - <builtin>.list
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement.recurse
    - <builtin>.len
    - pip._vendor.pyparsing.diagram.ElementState.__init__
    - <builtin>.id
    - pip._vendor.pyparsing.core.ParseElementEnhance.recurse
    - pip._vendor.pyparsing.diagram._visible_exprs
    - pip._vendor.pyparsing.diagram.ConverterState.extract_into_diagram
    - pip._vendor.pyparsing.diagram.ConverterState.generate_index
    - child.recurse
    - <builtin>.type
    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: looked_up.mark_for_extraction
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.results
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - collections.abc.MutableMapping.register
    - collections.abc.MutableSequence.register
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 24
    functionName: pip._vendor.pyparsing.results._ParseResultsWithOffset.__getitem__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: pip._vendor.pyparsing.results._ParseResultsWithOffset.__getstate__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 30
    functionName: pip._vendor.pyparsing.results._ParseResultsWithOffset.__setstate__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f19e20a0>
    argNames:
    - cls
    - contained
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 137
    functionName: pip._vendor.pyparsing.results.ParseResults.List.__new__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - list.__new__
    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: list.__new__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1a568e0>
    - <ast.Constant object at 0x7f30f1a568b0>
    argNames:
    - cls
    - toklist
    - name
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 148
    functionName: pip._vendor.pyparsing.results.ParseResults.__new__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.set
    - <builtin>.dict
    - object.__new__
    - <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: object.__new__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 204
    functionName: pip._vendor.pyparsing.results.ParseResults.__getitem__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f30fcc6f0d0>
    argNames:
    - self
    - k
    - v
    - isinstance
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 213
    functionName: pip._vendor.pyparsing.results.ParseResults.__setitem__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.list
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 228
    functionName: pip._vendor.pyparsing.results.ParseResults.__delitem__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - <builtin>.enumerate
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - <builtin>.slice
    - removed.reverse
    - i.indices
    - <builtin>.list
    - <builtin>.range
    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: i.indices
    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: removed.reverse
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - k
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 251
    functionName: pip._vendor.pyparsing.results.ParseResults.__contains__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 254
    functionName: pip._vendor.pyparsing.results.ParseResults.__len__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 257
    functionName: pip._vendor.pyparsing.results.ParseResults.__bool__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 260
    functionName: pip._vendor.pyparsing.results.ParseResults.__iter__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 263
    functionName: pip._vendor.pyparsing.results.ParseResults.__reversed__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 266
    functionName: pip._vendor.pyparsing.results.ParseResults.keys
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 6
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 269
    functionName: pip._vendor.pyparsing.results.ParseResults.values
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.keys
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 272
    functionName: pip._vendor.pyparsing.results.ParseResults.items
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 3
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.keys
    - <builtin>.iter
    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: 275
    functionName: pip._vendor.pyparsing.results.ParseResults.haskeys
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 281
    functionName: pip._vendor.pyparsing.results.ParseResults.pop
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - kwargs.items
    - <builtin>.len
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4ab7a90>
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 337
    functionName: pip._vendor.pyparsing.results.ParseResults.get
    functionSourceFile: pip._vendor.pyparsing.results
    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
    - index
    - ins_string
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 360
    functionName: pip._vendor.pyparsing.results.ParseResults.insert
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.enumerate
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 385
    functionName: pip._vendor.pyparsing.results.ParseResults.append
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - itemseq
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 402
    functionName: pip._vendor.pyparsing.results.ParseResults.extend
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - pip._vendor.pyparsing.results.ParseResults.__iadd__.<lambda1>
    - pip._vendor.pyparsing.results.ParseResults.__iadd__
    - other._tokdict.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 442
    functionName: pip._vendor.pyparsing.results.ParseResults.__iadd__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - pip._vendor.pyparsing.results.ParseResults.__iadd__.<lambda1>
    - other._tokdict.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 422
    functionName: pip._vendor.pyparsing.results.ParseResults.clear
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 429
    functionName: pip._vendor.pyparsing.results.ParseResults.__getattr__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - name.startswith
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 437
    functionName: pip._vendor.pyparsing.results.ParseResults.__add__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - pip._vendor.pyparsing.results.ParseResults.copy
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 547
    functionName: pip._vendor.pyparsing.results.ParseResults.copy
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 3
    functionsReached:
    - <builtin>.str
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.results.ParseResults.__iadd__.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.results
    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: other._tokdict.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 464
    functionName: pip._vendor.pyparsing.results.ParseResults.__radd__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - pip._vendor.pyparsing.results.ParseResults.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 472
    functionName: pip._vendor.pyparsing.results.ParseResults.__repr__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.keys
    - <builtin>.isinstance
    - obj.haskeys
    - pip._vendor.pyparsing.results.ParseResults.items
    - obj.as_dict
    - <builtin>.iter
    - pip._vendor.pyparsing.results.ParseResults.as_dict.to_item
    - <builtin>.dict
    - pip._vendor.pyparsing.results.ParseResults.as_dict
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 518
    functionName: pip._vendor.pyparsing.results.ParseResults.as_dict
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 1
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.keys
    - obj.haskeys
    - <builtin>.isinstance
    - pip._vendor.pyparsing.results.ParseResults.items
    - obj.as_dict
    - <builtin>.iter
    - pip._vendor.pyparsing.results.ParseResults.as_dict.to_item
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 475
    functionName: pip._vendor.pyparsing.results.ParseResults.__str__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1a51130>
    argNames:
    - self
    - sep
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 487
    functionName: pip._vendor.pyparsing.results.ParseResults._asStringList
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - item._asStringList
    - <builtin>.isinstance
    - <builtin>.str
    - out.append
    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: item._asStringList
    functionSourceFile: <builtin>
    functionUses: 1
    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: 498
    functionName: pip._vendor.pyparsing.results.ParseResults.as_list
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 2
    functionsReached:
    - res.as_list
    - <builtin>.isinstance
    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: res.as_list
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 539
    functionName: pip._vendor.pyparsing.results.ParseResults.as_dict.to_item
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 2
    functionsReached:
    - obj.as_dict
    - <builtin>.isinstance
    - obj.haskeys
    - pip._vendor.pyparsing.results.ParseResults.as_dict.to_item
    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: obj.haskeys
    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: obj.as_dict
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 561
    functionName: pip._vendor.pyparsing.results.ParseResults.deepcopy
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - v.deepcopy
    - <builtin>.str
    - <builtin>.enumerate
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - obj.deepcopy
    - obj.items
    - pip._vendor.pyparsing.results.ParseResults.copy
    - <builtin>.type
    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: obj.deepcopy
    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: obj.items
    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: v.deepcopy
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 582
    functionName: pip._vendor.pyparsing.results.ParseResults.get_name
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - <builtin>.len
    - par._tokdict.items
    - <builtin>.iter
    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: par._tokdict.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 9
    IfCount: 7
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f19f1c10>
    - <ast.Constant object at 0x7f30f19f1be0>
    - <ast.Constant object at 0x7f30f19f1bb0>
    - <ast.Constant object at 0x7f30f19f1b80>
    argNames:
    - self
    - indent
    - full
    - include_list
    - _depth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 630
    functionName: pip._vendor.pyparsing.results.ParseResults.dump
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - vv.dump
    - pip._vendor.pyparsing.results.ParseResults.keys
    - pip._vendor.pyparsing.results.ParseResults.as_list
    - <builtin>.any
    - <builtin>.isinstance
    - <builtin>.str
    - out.append
    - pip._vendor.pyparsing.results.ParseResults.items
    - <builtin>.sorted
    - <builtin>.enumerate
    - pip._vendor.pyparsing.results.ParseResults.dump
    - <builtin>.iter
    - pip._vendor.pyparsing.results.ParseResults.haskeys
    - <builtin>.repr
    - res.as_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: vv.dump
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 710
    functionName: pip._vendor.pyparsing.results.ParseResults.pprint
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.as_list
    - res.as_list
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 738
    functionName: pip._vendor.pyparsing.results.ParseResults.__getstate__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 749
    functionName: pip._vendor.pyparsing.results.ParseResults.__setstate__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 754
    functionName: pip._vendor.pyparsing.results.ParseResults.__getnewargs__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 757
    functionName: pip._vendor.pyparsing.results.ParseResults.__dir__
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.keys
    - <builtin>.iter
    - <builtin>.dir
    - <builtin>.list
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f19e9130>
    argNames:
    - cls
    - other
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 761
    functionName: pip._vendor.pyparsing.results.ParseResults.from_dict
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - <builtin>.str
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - pip._vendor.pyparsing.results.ParseResults.from_dict.is_iterable
    - pip._vendor.pyparsing.results.ParseResults.from_dict
    - <builtin>.iter
    - other.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 768
    functionName: pip._vendor.pyparsing.results.ParseResults.from_dict.is_iterable
    functionSourceFile: pip._vendor.pyparsing.results
    functionUses: 1
    functionsReached:
    - <builtin>.iter
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.abc.MutableMapping.register
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.abc.MutableSequence.register
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.testing
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 45
    functionName: pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.__init__
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.save
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 80
    functionName: pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.restore
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 1
    functionsReached:
    - <builtin>.range
    - <builtin>.object
    - <builtin>.len
    - pip._vendor.pyparsing.util._UnboundedCache.__init__
    - pip._vendor.pyparsing.core.ParserElement.enable_packrat
    - <builtin>.set
    - pip._vendor.pyparsing.core.ParserElement.disable_memoization
    - pip._vendor.pyparsing.core.ParserElement.inlineLiteralsUsing
    - types.MethodType
    - itertools.cycle
    - pip._vendor.pyparsing.util._FifoCache.__init__
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - pip._vendor.pyparsing.core.ParserElement.set_default_whitespace_chars
    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: 113
    functionName: pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.copy
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 0
    functionsReached:
    - ret._save_context.update
    - <builtin>.type
    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: ret._save_context.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 118
    functionName: pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.__enter__
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.save
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 121
    functionName: pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.__exit__
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 0
    functionsReached:
    - <builtin>.range
    - <builtin>.object
    - pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.restore
    - <builtin>.len
    - pip._vendor.pyparsing.util._UnboundedCache.__init__
    - pip._vendor.pyparsing.core.ParserElement.enable_packrat
    - <builtin>.set
    - pip._vendor.pyparsing.core.ParserElement.disable_memoization
    - pip._vendor.pyparsing.core.ParserElement.inlineLiteralsUsing
    - types.MethodType
    - itertools.cycle
    - pip._vendor.pyparsing.util._FifoCache.__init__
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - pip._vendor.pyparsing.core.ParserElement.set_default_whitespace_chars
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa71c0>
    - <ast.Constant object at 0x7f30f4aa70a0>
    - <ast.Constant object at 0x7f30f4aa7190>
    argNames:
    - self
    - result
    - expected_list
    - expected_dict
    - msg
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 129
    functionName: pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertParseResultsEquals
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 3
    functionsReached:
    - result.as_list
    - result.as_dict
    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.as_list
    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: result.as_dict
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa7910>
    - <ast.Constant object at 0x7f30f4aa7970>
    argNames:
    - self
    - expr
    - test_string
    - expected_list
    - msg
    - verbose
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 141
    functionName: pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertParseAndCheckList
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 0
    functionsReached:
    - result.as_dict
    - <builtin>.print
    - result.dump
    - pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertParseResultsEquals
    - result.as_list
    - expr.parse_string
    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: expr.parse_string
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30d5679280>
    - <ast.Constant object at 0x7f30d5679730>
    argNames:
    - self
    - expr
    - test_string
    - expected_dict
    - msg
    - verbose
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 155
    functionName: pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertParseAndCheckDict
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 0
    functionsReached:
    - result.as_dict
    - <builtin>.print
    - result.dump
    - pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertParseResultsEquals
    - result.as_list
    - expr.parse_string
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c01df0>
    - <ast.Constant object at 0x7f30d8bf3730>
    argNames:
    - self
    - run_tests_report
    - expected_parse_results
    - msg
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 169
    functionName: pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertRunTestResults
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 0
    functionsReached:
    - result.as_list
    - <builtin>.isinstance
    - result.as_dict
    - <builtin>.print
    - <builtin>.zip
    - pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertParseResultsEquals
    - <builtin>.next
    - <builtin>.issubclass
    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: pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 0
    functionsReached:
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30fcc709d0>
    - <ast.Constant object at 0x7f30fcc70af0>
    argNames:
    - self
    - exc_type
    - msg
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 233
    functionName: pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertRaisesParseException
    functionSourceFile: pip._vendor.pyparsing.testing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.expandtabs
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: str.maketrans
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.translate
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.splitlines
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.actions
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.object
    - pip._vendor.pyparsing.util._make_synonym_function
    - inspect.signature
    - pip._vendor.pyparsing.util.replaced_by_pep8
    - <builtin>.getattr
    - functools.wraps
    - pip._vendor.pyparsing.util.replaced_by_pep8.<lambda1>
    - typing.cast
    - <builtin>.list
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - method_call
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 12
    functionName: pip._vendor.pyparsing.actions.OnlyOnce.__init__
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - pip._vendor.pyparsing.core._trim_arity
    - traceback.extract_stack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 18
    functionName: pip._vendor.pyparsing.actions.OnlyOnce.__call__
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core._trim_arity.<lambda1>
    - traceback.extract_tb
    - pip._vendor.pyparsing.core._trim_arity.wrapper
    linkageType: pythonLinkage
    raised:
    - ParseException
    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: 25
    functionName: pip._vendor.pyparsing.actions.OnlyOnce.reset
    functionSourceFile: pip._vendor.pyparsing.actions
    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:
    - n
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 33
    functionName: pip._vendor.pyparsing.actions.match_only_at_col
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - strg
    - locn
    - toks
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 39
    functionName: pip._vendor.pyparsing.actions.match_only_at_col.verify_col
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - s.rfind
    - pip._vendor.pyparsing.util.col
    linkageType: pythonLinkage
    raised:
    - ParseException
    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: pip._vendor.pyparsing.actions.replace_with.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 63
    functionName: pip._vendor.pyparsing.actions.remove_quotes
    functionSourceFile: pip._vendor.pyparsing.actions
    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:
    - args
    - attr_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 80
    functionName: pip._vendor.pyparsing.actions.with_attribute
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 1
    functionsReached:
    - attr_dict.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attr_dict.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - tokens
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 143
    functionName: pip._vendor.pyparsing.actions.with_attribute.pa
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ParseException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd9370>
    argNames:
    - classname
    - namespace
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 160
    functionName: pip._vendor.pyparsing.actions.with_class
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached:
    - attr_dict.items
    - pip._vendor.pyparsing.actions.with_attribute
    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: 203
    functionName: pip._vendor.pyparsing.actions.replaceWith
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 206
    functionName: pip._vendor.pyparsing.actions.removeQuotes
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 209
    functionName: pip._vendor.pyparsing.actions.withAttribute
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 212
    functionName: pip._vendor.pyparsing.actions.withClass
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 215
    functionName: pip._vendor.pyparsing.actions.matchOnlyAtCol
    functionSourceFile: pip._vendor.pyparsing.actions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.unicode
    functionSourceFile: pip._vendor.pyparsing.unicode
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 9
    functionName: pip._vendor.pyparsing.unicode._lazyclassproperty.__init__
    functionSourceFile: pip._vendor.pyparsing.unicode
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - obj
    - cls
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 14
    functionName: pip._vendor.pyparsing.unicode._lazyclassproperty.__get__
    functionSourceFile: pip._vendor.pyparsing.unicode
    functionUses: 0
    functionsReached:
    - <builtin>.any
    - <builtin>.getattr
    - <builtin>.hasattr
    - <builtin>.type
    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: pip._vendor.pyparsing.unicode.unicode_set
    functionSourceFile: pip._vendor.pyparsing.unicode
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.unicode._lazyclassproperty
    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: pip._vendor.pyparsing.unicode._lazyclassproperty
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 56
    functionName: pip._vendor.pyparsing.unicode.unicode_set._chars_for_ranges
    functionSourceFile: pip._vendor.pyparsing.unicode
    functionUses: 0
    functionsReached:
    - <builtin>.chr
    - <builtin>.sorted
    - <builtin>.set
    - <builtin>.getattr
    - ret.extend
    - <builtin>.range
    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: ret.extend
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: pip._vendor.pyparsing.unicode.unicode_set.printables
    functionSourceFile: pip._vendor.pyparsing.unicode
    functionUses: 0
    functionsReached:
    - itertools.filterfalse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 71
    functionName: pip._vendor.pyparsing.unicode.unicode_set.alphas
    functionSourceFile: pip._vendor.pyparsing.unicode
    functionUses: 0
    functionsReached:
    - <builtin>.filter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: pip._vendor.pyparsing.unicode.unicode_set.nums
    functionSourceFile: pip._vendor.pyparsing.unicode
    functionUses: 0
    functionsReached:
    - <builtin>.filter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 81
    functionName: pip._vendor.pyparsing.unicode.unicode_set.alphanums
    functionSourceFile: pip._vendor.pyparsing.unicode
    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:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: pip._vendor.pyparsing.unicode.unicode_set.identchars
    functionSourceFile: pip._vendor.pyparsing.unicode
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - <builtin>.sorted
    - <builtin>.filter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 100
    functionName: pip._vendor.pyparsing.unicode.unicode_set.identbodychars
    functionSourceFile: pip._vendor.pyparsing.unicode
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 118
    functionName: pip._vendor.pyparsing.unicode.unicode_set.identifier
    functionSourceFile: pip._vendor.pyparsing.unicode
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.util
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - functools.lru_cache
    - <builtin>.chr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - dname
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 22
    functionName: pip._vendor.pyparsing.util.__config_flags._set
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - <builtin>.setattr
    - <builtin>.getattr
    - warnings.warn
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: pip._vendor.pyparsing.util.__config_flags.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached:
    - cls._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: cls._set
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.util.__config_flags
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached:
    - <builtin>.classmethod
    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: pip._vendor.pyparsing.util.__config_flags.<lambda2>
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached:
    - cls._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: s.rfind
    functionSourceFile: <builtin>
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: strg.count
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: strg.rfind
    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: strg.find
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - _
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 86
    functionName: pip._vendor.pyparsing.util._UnboundedCache.__init__.get
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - _
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 89
    functionName: pip._vendor.pyparsing.util._UnboundedCache.__init__.set_
    functionSourceFile: pip._vendor.pyparsing.util
    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:
    - _
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 92
    functionName: pip._vendor.pyparsing.util._UnboundedCache.__init__.clear
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached:
    - cache.clear
    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: cache.clear
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - _
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 110
    functionName: pip._vendor.pyparsing.util._FifoCache.__init__.get
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - _
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 113
    functionName: pip._vendor.pyparsing.util._FifoCache.__init__.set_
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached:
    - <builtin>.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - _
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 119
    functionName: pip._vendor.pyparsing.util._FifoCache.__init__.clear
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached:
    - <builtin>.object
    - cache.clear
    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
    functionSourceFile: collections
    functionUses: 87
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 142
    functionName: pip._vendor.pyparsing.util.LRUMemo.__getitem__
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 149
    functionName: pip._vendor.pyparsing.util.LRUMemo.__setitem__
    functionSourceFile: pip._vendor.pyparsing.util
    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
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 153
    functionName: pip._vendor.pyparsing.util.LRUMemo.__delitem__
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 173
    functionName: pip._vendor.pyparsing.util.UnboundedMemo.__delitem__
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - c
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 189
    functionName: pip._vendor.pyparsing.util._collapse_string_to_ranges.is_consecutive
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - <builtin>.ord
    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: itertools.count
    functionSourceFile: itertools
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - c
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 200
    functionName: pip._vendor.pyparsing.util._collapse_string_to_ranges.escape_re_range_char
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - c
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 203
    functionName: pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - compat_name
    - fn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 240
    functionName: pip._vendor.pyparsing.util._make_synonym_function
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 9
    functionsReached:
    - <builtin>.isinstance
    - inspect.signature
    - functools.wraps
    - <builtin>.getattr
    - typing.cast
    - <builtin>.list
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 261
    functionName: pip._vendor.pyparsing.util._make_synonym_function._inner
    functionSourceFile: pip._vendor.pyparsing.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.common
    functionSourceFile: pip._vendor.pyparsing.common
    functionUses: 0
    functionsReached:
    - <builtin>.vars
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 32
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.common.pyparsing_common
    functionSourceFile: pip._vendor.pyparsing.common
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.Each.streamline
    - pip._vendor.pyparsing.core.Combine.__init__
    - cur.recurse
    - <builtin>.str
    - itertools.chain
    - pip._vendor.pyparsing.core.ParserElement.leave_whitespace
    - pip._vendor.pyparsing.core.ParserElement.set_parse_action
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParseElementEnhance.streamline
    - pip._vendor.pyparsing.core.Forward.streamline
    - <builtin>.sorted
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - <builtin>.staticmethod
    - pip._vendor.pyparsing.core.token_map
    - <builtin>.hasattr
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Word.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - re.escape
    - pip._vendor.pyparsing.core.LineEnd.__init__
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - <builtin>.super
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - collections.deque.extend
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars
    - pip._vendor.pyparsing.core._trim_arity
    - <builtin>.iter
    - pip._vendor.pyparsing.core.DelimitedList.__init__
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - any_close_tag.suppress
    - itertools.groupby
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - <builtin>.callable
    - expr.set_debug
    - <builtin>.isinstance
    - pip._vendor.pyparsing.core.Regex.__init__
    - pip._vendor.pyparsing.core.ParserElement.setName
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - <builtin>.list
    - pip._vendor.pyparsing.core.ParserElement.suppress
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - ret.append
    - <builtin>.len
    - <builtin>.id
    - typing.cast
    - <builtin>.ord
    - mixed_integer.add_parse_action
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - seen.add
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.util._collapse_string_to_ranges.no_escape_re_range_char
    - pip._vendor.pyparsing.core.ParserElement.__init__
    - prev.add_parse_action
    - re.compile
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - <builtin>.set
    - pip._vendor.pyparsing.core.White.__init__
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.FollowedBy.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.core.Forward.leave_whitespace
    - pip._vendor.pyparsing.util._collapse_string_to_ranges
    - pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace
    - functools.wraps
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - <builtin>.next
    - fraction.add_parse_action
    - any_open_tag.suppress
    - pip._vendor.pyparsing.core.Forward.copy
    - pip._vendor.pyparsing.core.ParserElement.copy
    - kwargs.get
    - pip._vendor.pyparsing.core.Suppress.suppress
    - itertools.count
    - traceback.extract_stack
    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: pip._vendor.pyparsing.common.pyparsing_common.<lambda1>
    functionSourceFile: pip._vendor.pyparsing.common
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fraction.add_parse_action
    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: mixed_integer.add_parse_action
    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: 11
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.common.pyparsing_common.<lambda2>
    functionSourceFile: pip._vendor.pyparsing.common
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.ParserElement.postParse
    - pip._vendor.pyparsing.core.Suppress.postParse
    - pip._vendor.pyparsing.core.Each.streamline
    - failed.append
    - pip._vendor.pyparsing.core.IndentedBlock.__init__
    - best_expr._parse
    - <builtin>.sum
    - pip._vendor.pyparsing.core.ParserElement.preParse
    - fatals.sort
    - pip._vendor.pyparsing.core._PendingSkip.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.can_parse_next
    - <builtin>.dict
    - cur.recurse
    - dictvalue.haskeys
    - pip._vendor.pyparsing.core.CharsNotIn.parseImpl
    - <builtin>.str
    - pip._vendor.pyparsing.core.ParserElement.parseImpl
    - pip._vendor.pyparsing.core.Or.parseImpl
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.exceptions.ParseBaseException.__init__
    - pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__
    - result.group
    - collections.deque.popleft
    - pip._vendor.pyparsing.core.ParserElement._CacheType.set
    - pip._vendor.pyparsing.core.QuotedString.parseImpl
    - tokenlist._asStringList
    - prev_result.copy
    - pip._vendor.pyparsing.core.Forward.streamline
    - pip._vendor.pyparsing.core.NotAny.parseImpl
    - pip._vendor.pyparsing.core.Regex.parseImplAsMatch
    - e.try_parse
    - pip._vendor.pyparsing.core.LineEnd.parseImpl
    - <builtin>.zip
    - pip._vendor.pyparsing.core.ParserElement.visit_all
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl.<lambda1>
    - typing.NamedTuple.debug_fail
    - pip._vendor.pyparsing.core.Keyword.parseImpl
    - <builtin>.TypeError
    - pip._vendor.pyparsing.core.Regex.parseImplAsGroupList
    - pip._vendor.pyparsing.core.Combine.postParse
    - pip._vendor.pyparsing.core.NoMatch.parseImpl
    - pip._vendor.pyparsing.core.Literal.parseImpl
    - pip._vendor.pyparsing.core.Regex.re_match
    - pip._vendor.pyparsing.core.Forward.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.set_break.breaker
    - pip._vendor.pyparsing.core.Each.parseImpl
    - tmpReqd.remove
    - pip._vendor.pyparsing.core.ParserElement.reset_cache
    - pip._vendor.pyparsing.core.Group.postParse
    - fatals.append
    - pip._vendor.pyparsing.core.MatchFirst.streamline
    - <builtin>.enumerate
    - typing.NamedTuple.debug_try
    - pip._vendor.pyparsing.core.ParserElement.parse_string
    - <builtin>.min
    - pip._vendor.pyparsing.core.ParserElement.matches
    - pip._vendor.pyparsing.core.LineStart.parseImpl
    - <builtin>.super
    - typing.NamedTuple.debug_match
    - pip._vendor.pyparsing.core.condition_as_parse_action
    - pip._vendor.pyparsing.core.StringStart.parseImpl
    - collections.deque.extend
    - pip._vendor.pyparsing.core.SkipTo.parseImpl
    - pip._vendor.pyparsing.core.And.streamline
    - pip._vendor.pyparsing.core._trim_arity
    - matchOrder.append
    - <builtin>.iter
    - pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl
    - matches.append
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - pip._vendor.pyparsing.core._MultipleMatch.stopOn
    - result.groupdict
    - pip._vendor.pyparsing.core.Regex.parseImpl
    - fatals.clear
    - match.group
    - warnings.warn
    - pip._vendor.pyparsing.core.ParserElement.set_debug_actions
    - expr.set_debug
    - e.expr.set_results_name
    - pip._vendor.pyparsing.core.ParserElement._skipIgnorables
    - pip._vendor.pyparsing.util.LRUMemo.clear
    - pip._vendor.pyparsing.results.ParseResults.__init__
    - <builtin>.isinstance
    - pe.__class__
    - <builtin>.bool
    - pip._vendor.pyparsing.core.Or.streamline
    - failed.clear
    - pip._vendor.pyparsing.core.And.parseImpl
    - result.end
    - pip._vendor.pyparsing.core.IndentedBlock.parseImpl
    - pip._vendor.pyparsing.core.ParserElement.streamline
    - tokenlist.copy
    - s.rfind
    - pip._vendor.pyparsing.core.MatchFirst.parseImpl
    - pip._vendor.pyparsing.util.col
    - pdb.set_trace
    - <builtin>.list
    - pip._vendor.pyparsing.core.Word.parseImpl
    - pip._vendor.pyparsing.core.Opt.__init__
    - <builtin>.any
    - pip._vendor.pyparsing.core.ParserElement._parseNoCache
    - <builtin>.len
    - <builtin>.id
    - tokenlist.asList
    - tokenlist.as_dict
    - <builtin>.hex
    - typing.cast
    - retToks.haskeys
    - instring.expandtabs
    - e._parse
    - pip._vendor.pyparsing.core.Empty.__init__
    - collections.deque
    - pip._vendor.pyparsing.core.ParserElement.set_debug
    - seen.add
    - pip._vendor.pyparsing.core.ParserElement.set_name
    - ret.replace
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyparsing.core.StringEnd.parseImpl
    - expr1._parse
    - <builtin>.type
    - result.groups
    - tmpOpt.remove
    - operator.itemgetter
    - d.items
    - prev.add_parse_action
    - matches.sort
    - pip._vendor.pyparsing.core._MultipleMatch.__init__
    - pip._vendor.pyparsing.core.LineStart.preParse
    - abc.ABC.ignoreExprs.streamline
    - pip._vendor.pyparsing.core.Dict.postParse
    - pip._vendor.pyparsing.core.Empty.parseImpl
    - pip._vendor.pyparsing.core.Opt.parseImpl
    - pip._vendor.pyparsing.core.ParserElement._CacheType.get
    - <builtin>.set
    - instring.startswith
    - pip._vendor.pyparsing.core.ParserElement.add_condition
    - pip._vendor.pyparsing.core.ParserElement.try_parse
    - pip._vendor.pyparsing.core.ZeroOrMore.parseImpl
    - typing.NamedTuple.__init__
    - pip._vendor.pyparsing.results._ParseResultsWithOffset.__init__
    - functools.wraps
    - pip._vendor.pyparsing.core.Word.parseImpl_regex
    - pip._vendor.pyparsing.core.Literal.__init__
    - <builtin>.next
    - pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__
    - prev_peek.copy
    - <builtin>.reversed
    - pip._vendor.pyparsing.core.StringEnd.__init__
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement._parseCache
    - traceback.extract_stack
    - tok.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa75b0>
    argNames:
    - fmt
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 253
    functionName: pip._vendor.pyparsing.common.pyparsing_common.convert_to_date
    functionSourceFile: pip._vendor.pyparsing.common
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - ss
    - ll
    - tt
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 271
    functionName: pip._vendor.pyparsing.common.pyparsing_common.convert_to_date.cvt_fn
    functionSourceFile: pip._vendor.pyparsing.common
    functionUses: 0
    functionsReached:
    - datetime.datetime.strptime
    linkageType: pythonLinkage
    raised:
    - ParseException
    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.strptime
    functionSourceFile: datetime
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa77c0>
    argNames:
    - fmt
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 280
    functionName: pip._vendor.pyparsing.common.pyparsing_common.convert_to_datetime
    functionSourceFile: pip._vendor.pyparsing.common
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 298
    functionName: pip._vendor.pyparsing.common.pyparsing_common.convert_to_datetime.cvt_fn
    functionSourceFile: pip._vendor.pyparsing.common
    functionUses: 0
    functionsReached:
    - datetime.datetime.strptime
    linkageType: pythonLinkage
    raised:
    - ParseException
    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: any_open_tag.suppress
    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: any_close_tag.suppress
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - l
    - tokens
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 322
    functionName: pip._vendor.pyparsing.common.pyparsing_common.strip_html_tags
    functionSourceFile: pip._vendor.pyparsing.common
    functionUses: 0
    functionsReached:
    - pyparsing_common._html_stripper.transform_string
    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: pyparsing_common._html_stripper.transform_string
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.common.pyparsing_common.<lambda3>
    functionSourceFile: pip._vendor.pyparsing.common
    functionUses: 0
    functionsReached:
    - t.upper
    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: t.upper
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pyparsing.common.pyparsing_common.<lambda4>
    functionSourceFile: pip._vendor.pyparsing.common
    functionUses: 0
    functionsReached:
    - t.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: t.lower
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: -1
    functionName: pip._vendor.packaging.markers
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached:
    - pip._vendor.pyparsing.core.Suppress.__init__
    - pip._vendor.pyparsing.core.Forward.__init__
    - re.compile
    - pip._vendor.pyparsing.core.ParserElement.setParseAction
    - re.escape
    - pip._vendor.pyparsing.util._escape_regex_range_chars
    - <builtin>.str
    - pip._vendor.pyparsing.core.Group.__init__
    - pip._vendor.pyparsing.core.QuotedString.__init__
    - pip._vendor.pyparsing.core.ParserElement.suppress
    - <builtin>.super
    - s.replace
    - endQuoteChar.strip
    - <builtin>.len
    - pip._vendor.pyparsing.core.ZeroOrMore.__init__
    - quote_char.strip
    - pip._vendor.pyparsing.core.Literal.__init__
    - pip._vendor.pyparsing.core._PendingSkip.__init__
    - pip._vendor.pyparsing.core.NoMatch.__init__
    - re.RegexFlag
    - pip._vendor.pyparsing.core.Suppress.suppress
    - traceback.extract_stack
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 56
    functionName: pip._vendor.packaging.markers.Node.__init__
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: pip._vendor.packaging.markers.Node.__str__
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 62
    functionName: pip._vendor.packaging.markers.Node.__repr__
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 65
    functionName: pip._vendor.packaging.markers.Node.serialize
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 70
    functionName: pip._vendor.packaging.markers.Variable.serialize
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 75
    functionName: pip._vendor.packaging.markers.Value.serialize
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 80
    functionName: pip._vendor.packaging.markers.Op.serialize
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached:
    - <builtin>.str
    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: pip._vendor.packaging.markers.<lambda1>
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached:
    - pip._vendor.packaging.markers.Node.__init__
    - ALIASES.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ALIASES.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.packaging.markers.<lambda2>
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached:
    - pip._vendor.packaging.markers.Node.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.packaging.markers.<lambda3>
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached:
    - pip._vendor.packaging.markers.Node.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.packaging.markers.<lambda4>
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached:
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - results
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 141
    functionName: pip._vendor.packaging.markers._coerce_parse_result
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 35
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.packaging.markers._coerce_parse_result
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d235e520>
    argNames:
    - marker
    - first
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 148
    functionName: pip._vendor.packaging.markers._format_marker
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - m.serialize
    - <builtin>.isinstance
    - pip._vendor.packaging.markers._format_marker
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: m.serialize
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.packaging.markers.<dict2>.<lambda1>
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.packaging.markers.<dict2>.<lambda2>
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - lhs
    - op
    - rhs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 189
    functionName: pip._vendor.packaging.markers._eval_op
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 7
    functionsReached:
    - _operators.get
    - <builtin>.isinstance
    - pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - op.serialize
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.specifiers._IndividualSpecifier.contains
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - <builtin>.getattr
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised:
    - UndefinedComparison
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4ab7f10>
    - <ast.Constant object at 0x7f30f4ab7e80>
    argNames:
    - self
    - spec
    - prereleases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 95
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 78
    functionsReached:
    - match.group
    linkageType: pythonLinkage
    raised:
    - InvalidSpecifier
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc70df0>
    argNames:
    - self
    - item
    - prereleases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 168
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier.contains
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 10
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - <builtin>.getattr
    - pip._vendor.packaging.version._legacy_cmpkey
    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: op.serialize
    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: _operators.get
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - environment
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 211
    functionName: pip._vendor.packaging.markers._get_env
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 7
    functionsReached:
    - <builtin>.isinstance
    - environment.get
    linkageType: pythonLinkage
    raised:
    - UndefinedEnvironmentName
    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: environment.get
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - markers
    - environment
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 222
    functionName: pip._vendor.packaging.markers._evaluate_markers
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 6
    functionsReached:
    - _operators.get
    - <builtin>.isinstance
    - pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version
    - part.startswith
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.markers._eval_op
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - environment.get
    - _legacy_version_component_re.split
    - <builtin>.str
    - pip._vendor.packaging.version._legacy_cmpkey
    - letter.lower
    - op.serialize
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.any
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.markers._evaluate_markers
    - pip._vendor.packaging.specifiers._IndividualSpecifier.contains
    - groups.append
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.packaging.markers._get_env
    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: groups.append
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - info
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 249
    functionName: pip._vendor.packaging.markers.format_full_version
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 11
    functionsReached:
    - <builtin>.str
    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: 2
    functionLinenumber: 257
    functionName: pip._vendor.packaging.markers.default_environment
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 10
    functionsReached:
    - <builtin>.str
    - platform.python_implementation
    - platform.machine
    - platform.release
    - platform.python_version_tuple
    - pip._vendor.packaging.markers.format_full_version
    - platform.version
    - platform.system
    - platform.python_version
    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: platform.machine
    functionSourceFile: platform
    functionUses: 29
    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: platform.release
    functionSourceFile: platform
    functionUses: 32
    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: platform.version
    functionSourceFile: platform
    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: platform.python_version
    functionSourceFile: platform
    functionUses: 33
    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: platform.python_implementation
    functionSourceFile: platform
    functionUses: 33
    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: platform.python_version_tuple
    functionSourceFile: platform
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 285
    functionName: pip._vendor.packaging.markers.Marker.__str__
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - m.serialize
    - <builtin>.isinstance
    - pip._vendor.packaging.markers._format_marker
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 288
    functionName: pip._vendor.packaging.markers.Marker.__repr__
    functionSourceFile: pip._vendor.packaging.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_environment.update
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.packaging.specifiers
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - re.compile
    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: pip._vendor.packaging.specifiers.BaseSpecifier
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - abc.abstractproperty
    - abc.abstractmethod
    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: 41
    functionName: pip._vendor.packaging.specifiers.BaseSpecifier.__str__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 48
    functionName: pip._vendor.packaging.specifiers.BaseSpecifier.__hash__
    functionSourceFile: pip._vendor.packaging.specifiers
    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
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 54
    functionName: pip._vendor.packaging.specifiers.BaseSpecifier.__eq__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.abstractproperty
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 68
    functionName: pip._vendor.packaging.specifiers.BaseSpecifier.prereleases
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30daced040>
    argNames:
    - self
    - item
    - prereleases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 75
    functionName: pip._vendor.packaging.specifiers.BaseSpecifier.contains
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4ab7d90>
    argNames:
    - self
    - iterable
    - prereleases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 81
    functionName: pip._vendor.packaging.specifiers.BaseSpecifier.filter
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 108
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier.__repr__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 117
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier.__str__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 121
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier._canonical_spec
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - itertools.dropwhile
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - re.sub
    - pip._vendor.packaging.utils.canonicalize_version
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 7
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 38
    functionName: pip._vendor.packaging.utils.canonicalize_version
    functionSourceFile: pip._vendor.packaging.utils
    functionUses: 7
    functionsReached:
    - re.sub
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.isinstance
    - <builtin>.reversed
    - <builtin>.str
    - <builtin>.int
    - _local_version_separators.split
    - part.isdigit
    - match.group
    - letter.lower
    - pip._vendor.packaging.version._parse_local_version
    - parts.append
    - <builtin>.tuple
    - <builtin>.list
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - itertools.dropwhile
    - pip._vendor.packaging.version._parse_letter_version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 124
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier.__hash__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 127
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier.__eq__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - op
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 138
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 13
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 144
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 11
    functionsReached:
    - <builtin>.isinstance
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 150
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier.operator
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 154
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier.version
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 162
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier.prereleases
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 165
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier.__contains__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.specifiers._IndividualSpecifier.contains
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - <builtin>.getattr
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc70a30>
    argNames:
    - self
    - iterable
    - prereleases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 191
    functionName: pip._vendor.packaging.specifiers._IndividualSpecifier.filter
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - found_prereleases.append
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.specifiers._IndividualSpecifier.contains
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - <builtin>.getattr
    - pip._vendor.packaging.version._legacy_cmpkey
    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: found_prereleases.append
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.packaging.specifiers.LegacySpecifier
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d07501c0>
    - <ast.Constant object at 0x7f30d0750a90>
    argNames:
    - self
    - spec
    - prereleases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 252
    functionName: pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 70
    functionsReached:
    - <builtin>.super
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 261
    functionName: pip._vendor.packaging.specifiers.LegacySpecifier._coerce_version
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.str
    - _legacy_version_replacement_map.get
    - warnings.warn
    - parts.append
    - _legacy_version_component_re.split
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.tuple
    - part.startswith
    - pip._vendor.packaging.version._legacy_cmpkey
    - version.lower
    - part.zfill
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 107
    functionName: pip._vendor.packaging.version.LegacyVersion.__init__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 144
    functionsReached:
    - <builtin>.str
    - _legacy_version_replacement_map.get
    - warnings.warn
    - parts.append
    - _legacy_version_component_re.split
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.tuple
    - part.startswith
    - pip._vendor.packaging.version._legacy_cmpkey
    - version.lower
    - part.zfill
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 266
    functionName: pip._vendor.packaging.specifiers.LegacySpecifier._compare_equal
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging.specifiers.LegacySpecifier._coerce_version
    - <builtin>.str
    - _legacy_version_replacement_map.get
    - warnings.warn
    - parts.append
    - _legacy_version_component_re.split
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.tuple
    - part.startswith
    - pip._vendor.packaging.version._legacy_cmpkey
    - version.lower
    - part.zfill
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 269
    functionName: pip._vendor.packaging.specifiers.LegacySpecifier._compare_not_equal
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging.specifiers.LegacySpecifier._coerce_version
    - <builtin>.str
    - _legacy_version_replacement_map.get
    - warnings.warn
    - parts.append
    - _legacy_version_component_re.split
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.tuple
    - part.startswith
    - pip._vendor.packaging.version._legacy_cmpkey
    - version.lower
    - part.zfill
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 272
    functionName: pip._vendor.packaging.specifiers.LegacySpecifier._compare_less_than_equal
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging.specifiers.LegacySpecifier._coerce_version
    - <builtin>.str
    - _legacy_version_replacement_map.get
    - warnings.warn
    - parts.append
    - _legacy_version_component_re.split
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.tuple
    - part.startswith
    - pip._vendor.packaging.version._legacy_cmpkey
    - version.lower
    - part.zfill
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 275
    functionName: pip._vendor.packaging.specifiers.LegacySpecifier._compare_greater_than_equal
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging.specifiers.LegacySpecifier._coerce_version
    - <builtin>.str
    - _legacy_version_replacement_map.get
    - warnings.warn
    - parts.append
    - _legacy_version_component_re.split
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.tuple
    - part.startswith
    - pip._vendor.packaging.version._legacy_cmpkey
    - version.lower
    - part.zfill
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 280
    functionName: pip._vendor.packaging.specifiers.LegacySpecifier._compare_less_than
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging.specifiers.LegacySpecifier._coerce_version
    - <builtin>.str
    - _legacy_version_replacement_map.get
    - warnings.warn
    - parts.append
    - _legacy_version_component_re.split
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.tuple
    - part.startswith
    - pip._vendor.packaging.version._legacy_cmpkey
    - version.lower
    - part.zfill
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 283
    functionName: pip._vendor.packaging.specifiers.LegacySpecifier._compare_greater_than
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging.specifiers.LegacySpecifier._coerce_version
    - <builtin>.str
    - _legacy_version_replacement_map.get
    - warnings.warn
    - parts.append
    - _legacy_version_component_re.split
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.tuple
    - part.startswith
    - pip._vendor.packaging.version._legacy_cmpkey
    - version.lower
    - part.zfill
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fn
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 287
    functionName: pip._vendor.packaging.specifiers._require_version_compare
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 1
    functionsReached:
    - functools.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 291
    functionName: pip._vendor.packaging.specifiers._require_version_compare.wrapped
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - pip._vendor.packaging.specifiers.Specifier._compare_equal
    - <builtin>.isinstance
    - pip._vendor.packaging.specifiers.Specifier._compare_less_than
    - match.groups
    - itertools.dropwhile
    - _prefix_regex.search
    - pip._vendor.packaging.specifiers.Specifier._compare_less_than_equal
    - <builtin>.str
    - itertools.chain
    - letter.lower
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.packaging.specifiers.Specifier._compare_not_equal
    - part.lower
    - left_split.insert
    - spec.endswith
    - <builtin>.list
    - left_split.append
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - right_split.insert
    - <builtin>.len
    - pip._vendor.packaging.specifiers._version_split
    - result.append
    - pip._vendor.packaging.specifiers.Specifier._compare_compatible
    - right_split.append
    - pip._vendor.packaging.version._parse_local_version
    - version.split
    - pip._vendor.packaging.version._parse_letter_version
    - result.extend
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    - pip._vendor.packaging.specifiers.Specifier._compare_greater_than
    - <builtin>.getattr
    - pip._vendor.packaging.specifiers._pad_version
    - <builtin>.max
    - itertools.takewhile
    - pip._vendor.packaging.specifiers.Specifier._compare_greater_than_equal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 430
    functionName: pip._vendor.packaging.specifiers.Specifier._compare_equal
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - match.groups
    - itertools.dropwhile
    - _prefix_regex.search
    - <builtin>.str
    - itertools.chain
    - letter.lower
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - left_split.insert
    - left_split.append
    - spec.endswith
    - right_split.insert
    - <builtin>.len
    - pip._vendor.packaging.specifiers._version_split
    - right_split.append
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.version._parse_letter_version
    - result.extend
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.max
    - <builtin>.int
    - _local_version_separators.split
    - part.isdigit
    - match.group
    - pip._vendor.packaging.specifiers._pad_version
    - version.split
    - itertools.takewhile
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec_str
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 518
    functionName: pip._vendor.packaging.specifiers.Specifier._compare_greater_than
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 1
    functionsReached:
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.reversed
    - <builtin>.isinstance
    - <builtin>.int
    - part.isdigit
    - match.group
    - letter.lower
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.tuple
    - <builtin>.list
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - itertools.dropwhile
    - pip._vendor.packaging.version._parse_letter_version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 474
    functionName: pip._vendor.packaging.specifiers.Specifier._compare_less_than_equal
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 1
    functionsReached:
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.reversed
    - <builtin>.isinstance
    - <builtin>.int
    - part.isdigit
    - match.group
    - letter.lower
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.tuple
    - <builtin>.list
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - itertools.dropwhile
    - pip._vendor.packaging.version._parse_letter_version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec_str
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 492
    functionName: pip._vendor.packaging.specifiers.Specifier._compare_less_than
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 1
    functionsReached:
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.reversed
    - <builtin>.isinstance
    - <builtin>.int
    - part.isdigit
    - match.group
    - letter.lower
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.tuple
    - <builtin>.list
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - itertools.dropwhile
    - pip._vendor.packaging.version._parse_letter_version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 470
    functionName: pip._vendor.packaging.specifiers.Specifier._compare_not_equal
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 1
    functionsReached:
    - pip._vendor.packaging.specifiers.Specifier._compare_equal
    - <builtin>.isinstance
    - match.groups
    - itertools.dropwhile
    - _prefix_regex.search
    - <builtin>.str
    - itertools.chain
    - letter.lower
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - left_split.insert
    - left_split.append
    - spec.endswith
    - right_split.insert
    - <builtin>.len
    - pip._vendor.packaging.specifiers._version_split
    - right_split.append
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.version._parse_letter_version
    - result.extend
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.max
    - <builtin>.int
    - _local_version_separators.split
    - part.isdigit
    - match.group
    - pip._vendor.packaging.specifiers._pad_version
    - version.split
    - itertools.takewhile
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 482
    functionName: pip._vendor.packaging.specifiers.Specifier._compare_greater_than_equal
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 1
    functionsReached:
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.reversed
    - <builtin>.isinstance
    - <builtin>.int
    - part.isdigit
    - match.group
    - letter.lower
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.tuple
    - <builtin>.list
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - itertools.dropwhile
    - pip._vendor.packaging.version._parse_letter_version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 408
    functionName: pip._vendor.packaging.specifiers.Specifier._compare_compatible
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 1
    functionsReached:
    - result.extend
    - pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator
    - pip._vendor.packaging.specifiers._version_split
    - <builtin>.getattr
    - match.groups
    - version.split
    - itertools.takewhile
    - _prefix_regex.search
    - <builtin>.list
    - result.append
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.packaging.specifiers.Specifier
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - pip._vendor.packaging.specifiers._require_version_compare
    - re.compile
    - functools.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 585
    functionName: pip._vendor.packaging.specifiers._version_split
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 4
    functionsReached:
    - result.extend
    - _prefix_regex.search
    - version.split
    - match.groups
    - result.append
    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: spec.endswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - left
    - right
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 602
    functionName: pip._vendor.packaging.specifiers._pad_version
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 3
    functionsReached:
    - itertools.chain
    - right_split.insert
    - <builtin>.len
    - left_split.insert
    - right_split.append
    - <builtin>.max
    - itertools.takewhile
    - <builtin>.list
    - left_split.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prospective
    - spec
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 549
    functionName: pip._vendor.packaging.specifiers.Specifier._compare_arbitrary
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 578
    functionName: pip._vendor.packaging.specifiers.Specifier.prereleases
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - version.endswith
    - <builtin>.isinstance
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.reversed
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    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: version.endswith
    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: _prefix_regex.search
    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.extend
    functionSourceFile: <builtin>
    functionUses: 54
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - segment
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 596
    functionName: pip._vendor.packaging.specifiers._is_not_suffix
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - segment.startswith
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: segment.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.packaging.specifiers._pad_version.<lambda1>
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - x.isdigit
    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: x.isdigit
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: left_split.append
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.packaging.specifiers._pad_version.<lambda2>
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - x.isdigit
    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: right_split.append
    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: left_split.insert
    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: right_split.insert
    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: s.strip
    functionSourceFile: <builtin>
    functionUses: 145
    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: specifiers.split
    functionSourceFile: <builtin>
    functionUses: 70
    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: parsed.add
    functionSourceFile: <builtin>
    functionUses: 70
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 645
    functionName: pip._vendor.packaging.specifiers.SpecifierSet.__repr__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 654
    functionName: pip._vendor.packaging.specifiers.SpecifierSet.__str__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.sorted
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 657
    functionName: pip._vendor.packaging.specifiers.SpecifierSet.__hash__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 660
    functionName: pip._vendor.packaging.specifiers.SpecifierSet.__and__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - <builtin>.isinstance
    - match.group
    - warnings.warn
    - <builtin>.frozenset
    - <builtin>.set
    - specifiers.split
    - parsed.add
    - s.strip
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 683
    functionName: pip._vendor.packaging.specifiers.SpecifierSet.__eq__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - <builtin>.isinstance
    - <builtin>.str
    - match.group
    - warnings.warn
    - <builtin>.set
    - <builtin>.frozenset
    - specifiers.split
    - parsed.add
    - s.strip
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 691
    functionName: pip._vendor.packaging.specifiers.SpecifierSet.__len__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 694
    functionName: pip._vendor.packaging.specifiers.SpecifierSet.__iter__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 3
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 716
    functionName: pip._vendor.packaging.specifiers.SpecifierSet.prereleases
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 719
    functionName: pip._vendor.packaging.specifiers.SpecifierSet.__contains__
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - s.contains
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - <builtin>.all
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._vendor.packaging.specifiers.SpecifierSet.contains
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dacf0490>
    argNames:
    - self
    - item
    - prereleases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 722
    functionName: pip._vendor.packaging.specifiers.SpecifierSet.contains
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - s.contains
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - <builtin>.all
    - pip._vendor.packaging.version._legacy_cmpkey
    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.contains
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dacea940>
    argNames:
    - self
    - iterable
    - prereleases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 751
    functionName: pip._vendor.packaging.specifiers.SpecifierSet.filter
    functionSourceFile: pip._vendor.packaging.specifiers
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - spec.filter
    - <builtin>.bool
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - found_prereleases.append
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - filtered.append
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    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: spec.filter
    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: filtered.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.tenacity.retry.retry_base
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 29
    functionName: pip._vendor.tenacity.retry.retry_base.__call__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: pip._vendor.tenacity.retry.retry_base.__and__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - pip._vendor.tenacity.retry.retry_all.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retries
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 268
    functionName: pip._vendor.tenacity.retry.retry_all.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._vendor.tenacity.retry.retry_base.__or__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - pip._vendor.tenacity.retry.retry_any.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retries
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 258
    functionName: pip._vendor.tenacity.retry.retry_any.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 45
    functionName: pip._vendor.tenacity.retry._retry_never.__call__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 55
    functionName: pip._vendor.tenacity.retry._retry_always.__call__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - predicate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 65
    functionName: pip._vendor.tenacity.retry.retry_if_exception.__init__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 68
    functionName: pip._vendor.tenacity.retry.retry_if_exception.__call__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - retry_state.outcome.exception
    - pip._vendor.tenacity.retry.retry_if_not_exception_message.__init__.<lambda1>
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: pip._vendor.tenacity.retry.retry_if_not_exception_message.__init__.<lambda1>
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 3
    functionsReached:
    - pip._vendor.tenacity.retry.retry_if_not_exception_message.__init__.<lambda1>
    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: pip._vendor.tenacity.retry.retry_if_exception_type.__init__.<lambda1>
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30f4aa12e0>
    argNames:
    - self
    - exception_types
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 98
    functionName: pip._vendor.tenacity.retry.retry_if_not_exception_type.__init__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.tenacity.retry.retry_if_not_exception_type.__init__.<lambda1>
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30d568b2b0>
    argNames:
    - self
    - exception_types
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 112
    functionName: pip._vendor.tenacity.retry.retry_unless_exception_type.__init__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.tenacity.retry.retry_unless_exception_type.__init__.<lambda1>
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 122
    functionName: pip._vendor.tenacity.retry.retry_unless_exception_type.__call__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - retry_state.outcome.exception
    - pip._vendor.tenacity.retry.retry_if_not_exception_message.__init__.<lambda1>
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30f4aa7370>
    argNames:
    - self
    - exception_types
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 143
    functionName: pip._vendor.tenacity.retry.retry_if_exception_cause_type.__init__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 152
    functionName: pip._vendor.tenacity.retry.retry_if_exception_cause_type.__call__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - retry_state.outcome.exception
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - predicate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 169
    functionName: pip._vendor.tenacity.retry.retry_if_result.__init__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 172
    functionName: pip._vendor.tenacity.retry.retry_if_result.__call__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - retry_state.outcome.result
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - predicate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 185
    functionName: pip._vendor.tenacity.retry.retry_if_not_result.__init__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 188
    functionName: pip._vendor.tenacity.retry.retry_if_not_result.__call__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - retry_state.outcome.result
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd9370>
    - <ast.Constant object at 0x7f30f6bd98b0>
    argNames:
    - self
    - message
    - match
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 201
    functionName: pip._vendor.tenacity.retry.retry_if_exception_message.__init__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - re.compile
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - exception
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 212
    functionName: pip._vendor.tenacity.retry.retry_if_exception_message.__init__.message_fnc
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - exception
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 219
    functionName: pip._vendor.tenacity.retry.retry_if_exception_message.__init__.match_fnc
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - prog.match
    - <builtin>.str
    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: prog.match
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6b6ea00>
    - <ast.Constant object at 0x7f30f6b6edf0>
    argNames:
    - self
    - message
    - match
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 232
    functionName: pip._vendor.tenacity.retry.retry_if_not_exception_message.__init__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 242
    functionName: pip._vendor.tenacity.retry.retry_if_not_exception_message.__call__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - retry_state.outcome.exception
    - pip._vendor.tenacity.retry.retry_if_not_exception_message.__init__.<lambda1>
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 261
    functionName: pip._vendor.tenacity.retry.retry_any.__call__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - retry_state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 271
    functionName: pip._vendor.tenacity.retry.retry_all.__call__
    functionSourceFile: pip._vendor.tenacity.retry
    functionUses: 0
    functionsReached:
    - <builtin>.all
    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: pip._vendor.pyproject_hooks
    functionSourceFile: pip._vendor.pyproject_hooks
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyproject_hooks._impl
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - obj
    - path
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 13
    functionName: pip._vendor.pyproject_hooks._impl.write_json
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 11
    functionsReached:
    - <builtin>.open
    - json.dump
    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: json.dump
    functionSourceFile: json
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 18
    functionName: pip._vendor.pyproject_hooks._impl.read_json
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 11
    functionsReached:
    - json.load
    - <builtin>.open
    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: json.load
    functionSourceFile: json
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - traceback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 25
    functionName: pip._vendor.pyproject_hooks._impl.BackendUnavailable.__init__
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - backend_name
    - backend_path
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._vendor.pyproject_hooks._impl.BackendInvalid.__init__
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hook_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 39
    functionName: pip._vendor.pyproject_hooks._impl.HookMissing.__init__
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - traceback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: pip._vendor.pyproject_hooks._impl.UnsupportedOperation.__init__
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bc6d30>
    - <ast.Constant object at 0x7f30f6bc6760>
    argNames:
    - cmd
    - cwd
    - extra_environ
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: pip._vendor.pyproject_hooks._impl.default_subprocess_runner
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 11
    functionsReached:
    - env.update
    - subprocess.check_call
    - os.environ.copy
    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.environ.copy
    functionSourceFile: os
    functionUses: 76
    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: env.update
    functionSourceFile: <builtin>
    functionUses: 72
    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: subprocess.check_call
    functionSourceFile: subprocess
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc6fca0>
    - <ast.Constant object at 0x7f30fcc6fbb0>
    argNames:
    - cmd
    - cwd
    - extra_environ
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: pip._vendor.pyproject_hooks._impl.quiet_subprocess_runner
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - env.update
    - subprocess.check_output
    - os.environ.copy
    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: subprocess.check_output
    functionSourceFile: subprocess
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - source_tree
    - requested
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 74
    functionName: pip._vendor.pyproject_hooks._impl.norm_and_check
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 1
    functionsReached:
    - os.path.normcase
    - os.path.isabs
    - os.path.normpath
    - os.path.join
    - os.path.abspath
    - os.path.commonprefix
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f20a14c0>
    - <ast.Constant object at 0x7f30f20a1c40>
    - <ast.Constant object at 0x7f30f20a1160>
    argNames:
    - self
    - source_dir
    - build_backend
    - backend_path
    - runner
    - python_executable
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 102
    functionName: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.__init__
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - os.path.normcase
    - os.path.isabs
    - pip._vendor.pyproject_hooks._impl.norm_and_check
    - os.path.normpath
    - os.path.join
    - os.path.abspath
    - os.path.commonprefix
    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: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - hook_name
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 297
    functionName: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._call_hook
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 10
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pip._vendor.pyproject_hooks._impl.write_json
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.pyproject_hooks._in_process._in_proc_script_path
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - importlib.resources.as_file
    - time.time
    - pip._vendor.pyproject_hooks._impl.read_json
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - subprocess.check_call
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._impl.default_subprocess_runner
    - color_rgb.split
    - json.load
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.subprocess.runner_with_spinner_message.runner
    - plain_text.replace
    - os.pathsep.join
    - tempfile.TemporaryDirectory
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - data.get
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - json.dump
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised:
    - HookMissing
    - BackendUnavailable
    - UnsupportedOperation
    - BackendInvalid
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd9460>
    argNames:
    - self
    - config_settings
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 155
    functionName: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.get_requires_for_build_wheel
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pip._vendor.pyproject_hooks._impl.write_json
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.pyproject_hooks._in_process._in_proc_script_path
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - importlib.resources.as_file
    - time.time
    - pip._vendor.pyproject_hooks._impl.read_json
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._call_hook
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - subprocess.check_call
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._impl.default_subprocess_runner
    - color_rgb.split
    - json.load
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.subprocess.runner_with_spinner_message.runner
    - plain_text.replace
    - os.pathsep.join
    - tempfile.TemporaryDirectory
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - data.get
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - json.dump
    - pip._vendor.rich.text.Text.__init__
    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 0x7f30c8d152e0>
    - <ast.Constant object at 0x7f30c8d15490>
    argNames:
    - self
    - metadata_directory
    - config_settings
    - _allow_fallback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 170
    functionName: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.prepare_metadata_for_build_wheel
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pip._vendor.pyproject_hooks._impl.write_json
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.pyproject_hooks._in_process._in_proc_script_path
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - importlib.resources.as_file
    - time.time
    - pip._vendor.pyproject_hooks._impl.read_json
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._call_hook
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - subprocess.check_call
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._impl.default_subprocess_runner
    - color_rgb.split
    - json.load
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.subprocess.runner_with_spinner_message.runner
    - plain_text.replace
    - os.pathsep.join
    - tempfile.TemporaryDirectory
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - data.get
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - json.dump
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30c8d15070>
    - <ast.Constant object at 0x7f30c8d15df0>
    argNames:
    - self
    - wheel_directory
    - config_settings
    - metadata_directory
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 192
    functionName: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.build_wheel
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pip._vendor.pyproject_hooks._impl.write_json
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.pyproject_hooks._in_process._in_proc_script_path
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - importlib.resources.as_file
    - time.time
    - pip._vendor.pyproject_hooks._impl.read_json
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._call_hook
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - subprocess.check_call
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._impl.default_subprocess_runner
    - color_rgb.split
    - json.load
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.subprocess.runner_with_spinner_message.runner
    - plain_text.replace
    - os.pathsep.join
    - tempfile.TemporaryDirectory
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - data.get
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - json.dump
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2114fd0>
    argNames:
    - self
    - config_settings
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 215
    functionName: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.get_requires_for_build_editable
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pip._vendor.pyproject_hooks._impl.write_json
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.pyproject_hooks._in_process._in_proc_script_path
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - importlib.resources.as_file
    - time.time
    - pip._vendor.pyproject_hooks._impl.read_json
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._call_hook
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - subprocess.check_call
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._impl.default_subprocess_runner
    - color_rgb.split
    - json.load
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.subprocess.runner_with_spinner_message.runner
    - plain_text.replace
    - os.pathsep.join
    - tempfile.TemporaryDirectory
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - data.get
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - json.dump
    - pip._vendor.rich.text.Text.__init__
    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 0x7f30f2114a30>
    - <ast.Constant object at 0x7f30f21147f0>
    argNames:
    - self
    - metadata_directory
    - config_settings
    - _allow_fallback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 230
    functionName: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.prepare_metadata_for_build_editable
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pip._vendor.pyproject_hooks._impl.write_json
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.pyproject_hooks._in_process._in_proc_script_path
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - importlib.resources.as_file
    - time.time
    - pip._vendor.pyproject_hooks._impl.read_json
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._call_hook
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - subprocess.check_call
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._impl.default_subprocess_runner
    - color_rgb.split
    - json.load
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.subprocess.runner_with_spinner_message.runner
    - plain_text.replace
    - os.pathsep.join
    - tempfile.TemporaryDirectory
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - data.get
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - json.dump
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa7700>
    - <ast.Constant object at 0x7f30f4aa7730>
    argNames:
    - self
    - wheel_directory
    - config_settings
    - metadata_directory
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 252
    functionName: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.build_editable
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pip._vendor.pyproject_hooks._impl.write_json
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.pyproject_hooks._in_process._in_proc_script_path
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - importlib.resources.as_file
    - time.time
    - pip._vendor.pyproject_hooks._impl.read_json
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._call_hook
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - subprocess.check_call
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._impl.default_subprocess_runner
    - color_rgb.split
    - json.load
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.subprocess.runner_with_spinner_message.runner
    - plain_text.replace
    - os.pathsep.join
    - tempfile.TemporaryDirectory
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - data.get
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - json.dump
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa7490>
    argNames:
    - self
    - config_settings
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 276
    functionName: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.get_requires_for_build_sdist
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pip._vendor.pyproject_hooks._impl.write_json
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.pyproject_hooks._in_process._in_proc_script_path
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - importlib.resources.as_file
    - time.time
    - pip._vendor.pyproject_hooks._impl.read_json
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._call_hook
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - subprocess.check_call
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._impl.default_subprocess_runner
    - color_rgb.split
    - json.load
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.subprocess.runner_with_spinner_message.runner
    - plain_text.replace
    - os.pathsep.join
    - tempfile.TemporaryDirectory
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - data.get
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - json.dump
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa1c40>
    argNames:
    - self
    - sdist_directory
    - config_settings
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 286
    functionName: pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.build_sdist
    functionSourceFile: pip._vendor.pyproject_hooks._impl
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pip._vendor.pyproject_hooks._impl.write_json
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.pyproject_hooks._in_process._in_proc_script_path
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - importlib.resources.as_file
    - time.time
    - pip._vendor.pyproject_hooks._impl.read_json
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._call_hook
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - subprocess.check_call
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._impl.default_subprocess_runner
    - color_rgb.split
    - json.load
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.subprocess.runner_with_spinner_message.runner
    - plain_text.replace
    - os.pathsep.join
    - tempfile.TemporaryDirectory
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - data.get
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - json.dump
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tempfile.TemporaryDirectory
    functionSourceFile: tempfile
    functionUses: 11
    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: 16
    functionName: pip._vendor.pyproject_hooks._in_process._in_proc_script_path
    functionSourceFile: pip._vendor.pyproject_hooks._in_process
    functionUses: 11
    functionsReached:
    - importlib.resources.files
    - importlib.resources.as_file
    - importlib.resources.path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc6fe50>
    - <ast.Constant object at 0x7f30fcc6fd60>
    argNames:
    - cmd
    - cwd
    - extra_environ
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 231
    functionName: pip._internal.utils.subprocess.runner_with_spinner_message.runner
    functionSourceFile: pip._internal.utils.subprocess
    functionUses: 11
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - time.time
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - color_match.groups
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.get
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pyproject_hooks._in_process
    functionSourceFile: pip._vendor.pyproject_hooks._in_process
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.resources.path
    functionSourceFile: importlib
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.resources.files
    functionSourceFile: importlib
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.resources.as_file
    functionSourceFile: importlib
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.metadata.importlib
    functionSourceFile: pip._internal.metadata.importlib
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.metadata.importlib._dists
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - files
    - info_location
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 47
    functionName: pip._internal.metadata.importlib._dists.WheelDistribution.__init__
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - zf
    - name
    - location
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 56
    functionName: pip._internal.metadata.importlib._dists.WheelDistribution.from_zipfile
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 1
    functionsReached:
    - pip._internal.utils.wheel.wheel_metadata
    - pathlib.PurePosixPath
    - wheel_contents.decode
    - source.read
    - _canonicalize_regex.sub
    - pip._internal.utils.wheel.wheel_version
    - name.split
    - email.parser.Parser
    - <builtin>.tuple
    - version_text.strip
    - zf.namelist
    - source.namelist
    - <builtin>.len
    - <builtin>.map
    - pip._internal.utils.wheel.parse_wheel
    - email.parser.Parser.parsestr
    - pip._internal.utils.wheel.check_compatibility
    - typing.cast
    - pip._internal.utils.wheel.read_wheel_metadata_file
    - pip._internal.metadata.importlib._dists.WheelDistribution.__init__
    - s.endswith
    - pip._internal.utils.wheel.wheel_dist_info_dir
    - name.startswith
    - p.split
    - typing.cast.startswith
    - version.split
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - wheel_zip
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 20
    functionName: pip._internal.utils.wheel.parse_wheel
    functionSourceFile: pip._internal.utils.wheel
    functionUses: 6
    functionsReached:
    - pip._internal.utils.wheel.wheel_metadata
    - wheel_contents.decode
    - source.read
    - _canonicalize_regex.sub
    - pip._internal.utils.wheel.wheel_version
    - email.parser.Parser
    - <builtin>.tuple
    - version_text.strip
    - source.namelist
    - <builtin>.len
    - <builtin>.map
    - email.parser.Parser.parsestr
    - pip._internal.utils.wheel.check_compatibility
    - typing.cast
    - pip._internal.utils.wheel.read_wheel_metadata_file
    - s.endswith
    - pip._internal.utils.wheel.wheel_dist_info_dir
    - p.split
    - typing.cast.startswith
    - version.split
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.split
    functionSourceFile: <builtin>
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pathlib.PurePosixPath
    functionSourceFile: pathlib
    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: zf.namelist
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - source
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 69
    functionName: pip._internal.utils.wheel.read_wheel_metadata_file
    functionSourceFile: pip._internal.utils.wheel
    functionUses: 8
    functionsReached:
    - source.read
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: pip._internal.metadata.importlib._dists.WheelDistribution.iterdir
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - pathlib.PurePosixPath
    - <builtin>.iter
    - <builtin>.str
    linkageType: pythonLinkage
    raised:
    - FileNotFoundError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 81
    functionName: pip._internal.metadata.importlib._dists.WheelDistribution.read_text
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - pathlib.PurePosixPath
    - data.decode
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    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: data.decode
    functionSourceFile: <builtin>
    functionUses: 40
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dist
    - info_location
    - installed_location
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 96
    functionName: pip._internal.metadata.importlib._dists.Distribution.__init__
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - directory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 107
    functionName: pip._internal.metadata.importlib._dists.Distribution.from_directory
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - pip._internal.metadata.importlib._dists.Distribution.__init__
    - importlib.metadata.Distribution.at
    - pathlib.Path
    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: importlib.metadata.Distribution.at
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - metadata_contents
    - filename
    - project_name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 113
    functionName: pip._internal.metadata.importlib._dists.Distribution.from_metadata_file_contents
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - logger.debug
    - importlib.metadata.Distribution.at
    - _tempdir_manager.enter_context
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - os.path.join
    - os.path.realpath
    - <builtin>.super
    - tempfile.mkdtemp
    - metadata_path.write_bytes
    - pip._internal.metadata.importlib._dists.Distribution.__init__
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - os.mkdir
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - os.path.split
    - <builtin>.range
    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: metadata_path.write_bytes
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - wheel
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 130
    functionName: pip._internal.metadata.importlib._dists.Distribution.from_wheel
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - pip._internal.utils.wheel.wheel_metadata
    - pathlib.PurePosixPath
    - wheel_contents.decode
    - wheel.as_zipfile
    - source.read
    - _canonicalize_regex.sub
    - pip._internal.utils.wheel.wheel_version
    - name.split
    - email.parser.Parser
    - <builtin>.tuple
    - version_text.strip
    - zf.namelist
    - source.namelist
    - pip._internal.metadata.importlib._dists.Distribution.__init__
    - <builtin>.len
    - <builtin>.map
    - pip._internal.utils.wheel.parse_wheel
    - pip._internal.metadata.importlib._dists.WheelDistribution.from_zipfile
    - email.parser.Parser.parsestr
    - pip._internal.utils.wheel.check_compatibility
    - typing.cast
    - pip._internal.utils.wheel.read_wheel_metadata_file
    - pip._internal.metadata.importlib._dists.WheelDistribution.__init__
    - s.endswith
    - pip._internal.utils.wheel.wheel_dist_info_dir
    - name.startswith
    - p.split
    - typing.cast.startswith
    - version.split
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    - InvalidWheel
    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: wheel.as_zipfile
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 141
    functionName: pip._internal.metadata.importlib._dists.Distribution.location
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 147
    functionName: pip._internal.metadata.importlib._dists.Distribution.info_location
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 153
    functionName: pip._internal.metadata.importlib._dists.Distribution.installed_location
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - os.path.normcase
    - os.path.abspath
    - pip._internal.utils.misc.normalize_path
    - os.path.realpath
    - os.path.expanduser
    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: 1
    functionLinenumber: 158
    functionName: pip._internal.metadata.importlib._dists.Distribution._get_dist_name_from_location
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 1
    functionsReached:
    - stem.split
    - os.path.splitext
    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: stem.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 171
    functionName: pip._internal.metadata.importlib._dists.Distribution.canonical_name
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - pip._internal.metadata.importlib._compat.get_dist_name
    - <builtin>.isinstance
    - os.path.splitext
    - pip._internal.metadata.importlib._dists.Distribution._get_dist_name_from_location
    - stem.split
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - dist
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: pip._internal.metadata.importlib._compat.get_dist_name
    functionSourceFile: pip._internal.metadata.importlib._compat
    functionUses: 10
    functionsReached:
    - typing.cast
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - BadMetadata
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 176
    functionName: pip._internal.metadata.importlib._dists.Distribution.version
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.reversed
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 179
    functionName: pip._internal.metadata.importlib._dists.Distribution.is_file
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 1
    functionsReached:
    - <builtin>.str
    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: 1
    functionLinenumber: 182
    functionName: pip._internal.metadata.importlib._dists.Distribution.iter_distutils_script_names
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 191
    functionName: pip._internal.metadata.importlib._dists.Distribution.read_text
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 10
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised:
    - FileNotFoundError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 197
    functionName: pip._internal.metadata.importlib._dists.Distribution.iter_entry_points
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 201
    functionName: pip._internal.metadata.importlib._dists.Distribution._metadata_impl
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 1
    functionsReached:
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 209
    functionName: pip._internal.metadata.importlib._dists.Distribution.iter_provided_extras
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - extra
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 212
    functionName: pip._internal.metadata.importlib._dists.Distribution.is_extra_provided
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - <builtin>.any
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Tuple object at 0x7f30ed9f1e20>
    argNames:
    - self
    - extras
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 218
    functionName: pip._internal.metadata.importlib._dists.Distribution.iter_dependencies
    functionSourceFile: pip._internal.metadata.importlib._dists
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - req.extras.asList
    - <builtin>.any
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - urllib.parse.urlunparse
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - warnings.warn
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.set
    - <builtin>.frozenset
    - specifiers.split
    - parsed.add
    - s.strip
    - urllib.parse.urlparse
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - req.marker.evaluate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.utils.wheel
    functionSourceFile: pip._internal.utils.wheel
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - source
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 38
    functionName: pip._internal.utils.wheel.wheel_dist_info_dir
    functionSourceFile: pip._internal.utils.wheel
    functionUses: 7
    functionsReached:
    - s.endswith
    - source.namelist
    - <builtin>.len
    - p.split
    - typing.cast.startswith
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - source
    - dist_info_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 78
    functionName: pip._internal.utils.wheel.wheel_metadata
    functionSourceFile: pip._internal.utils.wheel
    functionUses: 7
    functionsReached:
    - email.parser.Parser.parsestr
    - pip._internal.utils.wheel.read_wheel_metadata_file
    - email.parser.Parser
    - wheel_contents.decode
    - source.read
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - wheel_data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 97
    functionName: pip._internal.utils.wheel.wheel_version
    functionSourceFile: pip._internal.utils.wheel
    functionUses: 7
    functionsReached:
    - version.split
    - version_text.strip
    - <builtin>.map
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - version
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 113
    functionName: pip._internal.utils.wheel.check_compatibility
    functionSourceFile: pip._internal.utils.wheel
    functionUses: 7
    functionsReached:
    - <builtin>.map
    - logger.warning
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    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: p.split
    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: source.namelist
    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: s.endswith
    functionSourceFile: <builtin>
    functionUses: 54
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.startswith
    functionSourceFile: typing
    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: source.read
    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: wheel_contents.decode
    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: email.parser.Parser.parsestr
    functionSourceFile: email
    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: version_text.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: 1
    functionLinenumber: -1
    functionName: pip._vendor.packaging.utils
    functionSourceFile: pip._vendor.packaging.utils
    functionUses: 0
    functionsReached:
    - re.compile
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NewType
    functionSourceFile: typing
    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: _canonicalize_regex.sub
    functionSourceFile: <builtin>
    functionUses: 137
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 81
    functionName: pip._vendor.packaging.utils.parse_wheel_filename
    functionSourceFile: pip._vendor.packaging.utils
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - interpreter.lower
    - <builtin>.frozenset
    - pip._vendor.packaging.tags.parse_tag
    - interpreters.split
    - re.match
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - tags.add
    - build_match.group
    - abis.split
    - letter.lower
    - filename.count
    - <builtin>.set
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.hash
    - platform.lower
    - filename.endswith
    - platforms.split
    - pip._vendor.packaging.version._parse_local_version
    - filename.split
    - tag.split
    - _build_tag_regex.match
    - typing.cast
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - pip._vendor.packaging.tags.Tag.__init__
    - match.group
    - abi.lower
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - InvalidWheelFilename
    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: filename.endswith
    functionSourceFile: <builtin>
    functionUses: 18
    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: filename.count
    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: filename.split
    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: _build_tag_regex.match
    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: build_match.group
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - tag
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 96
    functionName: pip._vendor.packaging.tags.parse_tag
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 4
    functionsReached:
    - platforms.split
    - abis.split
    - interpreter.lower
    - pip._vendor.packaging.tags.Tag.__init__
    - <builtin>.set
    - <builtin>.frozenset
    - tag.split
    - abi.lower
    - interpreters.split
    - <builtin>.hash
    - tags.add
    - platform.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 117
    functionName: pip._vendor.packaging.utils.parse_sdist_filename
    functionSourceFile: pip._vendor.packaging.utils
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - letter.lower
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - filename.endswith
    - <builtin>.len
    - pip._vendor.packaging.version._parse_local_version
    - typing.cast
    - pip._vendor.packaging.version._parse_letter_version
    - file_stem.rpartition
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - InvalidSdistFilename
    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: file_stem.rpartition
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.packaging.tags
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - interpreter
    - abi
    - platform
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 52
    functionName: pip._vendor.packaging.tags.Tag.__init__
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 71
    functionsReached:
    - interpreter.lower
    - <builtin>.hash
    - abi.lower
    - platform.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: interpreter.lower
    functionSourceFile: <builtin>
    functionUses: 72
    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: abi.lower
    functionSourceFile: <builtin>
    functionUses: 72
    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: platform.lower
    functionSourceFile: <builtin>
    functionUses: 72
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 64
    functionName: pip._vendor.packaging.tags.Tag.interpreter
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 68
    functionName: pip._vendor.packaging.tags.Tag.abi
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 72
    functionName: pip._vendor.packaging.tags.Tag.platform
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: pip._vendor.packaging.tags.Tag.__eq__
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 86
    functionName: pip._vendor.packaging.tags.Tag.__hash__
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 89
    functionName: pip._vendor.packaging.tags.Tag.__str__
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 92
    functionName: pip._vendor.packaging.tags.Tag.__repr__
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 0
    functionsReached:
    - <builtin>.id
    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: tag.split
    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: interpreters.split
    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: abis.split
    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: platforms.split
    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: tags.add
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa1220>
    argNames:
    - name
    - warn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 112
    functionName: pip._vendor.packaging.tags._get_config_var
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 52
    functionsReached:
    - logger.debug
    - sysconfig.get_config_var
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 121
    functionName: pip._vendor.packaging.tags._normalize_string
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 41
    functionsReached:
    - string.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: string.replace
    functionSourceFile: <builtin>
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - python_version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 125
    functionName: pip._vendor.packaging.tags._abi3_applies
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 35
    functionsReached:
    - <builtin>.len
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc70eb0>
    argNames:
    - py_version
    - warn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 134
    functionName: pip._vendor.packaging.tags._cpython_abis
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 35
    functionsReached:
    - <builtin>.map
    - sysconfig.get_config_var
    - logger.debug
    - pip._vendor.packaging.tags._version_nodot
    - <builtin>.tuple
    - abis.append
    - abis.insert
    - pip._vendor.packaging.tags._get_config_var
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 466
    functionName: pip._vendor.packaging.tags._version_nodot
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 54
    functionsReached:
    - <builtin>.map
    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: abis.append
    functionSourceFile: <builtin>
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abis.insert
    functionSourceFile: <builtin>
    functionUses: 38
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc6fca0>
    - <ast.Constant object at 0x7f30fcc6f670>
    - <ast.Constant object at 0x7f30fcc6fe20>
    argNames:
    - python_version
    - abis
    - platforms
    - warn
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 170
    functionName: pip._vendor.packaging.tags.cpython_tags
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 34
    functionsReached:
    - formats.append
    - pip._vendor.packaging.tags._version_nodot
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - subprocess.run
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - abi.lower
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - warnings.warn
    - f.read
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - <builtin>.bool
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - logger.debug
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - os.fsdecode
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - abis.append
    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: abis.remove
    functionSourceFile: <builtin>
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 434
    functionName: pip._vendor.packaging.tags.platform_tags
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 37
    functionsReached:
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - operator.itemgetter
    - formats.extend
    - <builtin>.isinstance
    - <builtin>.bool
    - formats.append
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - n.strip
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._normalize_string
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - re.match
    - pip._vendor.packaging._musllinux.platform_tags
    - os.fsdecode
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - m.group
    - pip._vendor.packaging.tags._mac_arch
    - file.read
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - linux.replace
    - pip._vendor.packaging._manylinux._get_glibc_version
    - pip._vendor.packaging._manylinux._get_elf_header
    - arch.startswith
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - struct.unpack
    - os.confstr
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - <builtin>.len
    - pip._vendor.packaging.tags._linux_platforms
    - pip._vendor.packaging._musllinux._parse_musl_version
    - <builtin>.map
    - pip._vendor.packaging._manylinux._is_linux_i686
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._is_compatible
    - ctypes.CDLL
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - output.splitlines
    - version_str.split
    - subprocess.run
    - sysconfig.get_platform
    - <builtin>.int
    - struct.calcsize
    - version_str.decode
    - <builtin>.hasattr
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - warnings.warn
    - <builtin>.open
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - f.read
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 227
    functionName: pip._vendor.packaging.tags._generic_abi
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 35
    functionsReached:
    - string.replace
    - sysconfig.get_config_var
    - pip._vendor.packaging.tags._normalize_string
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fbc2fdf0>
    - <ast.Constant object at 0x7f30fbc2fe20>
    - <ast.Constant object at 0x7f30fbc2fe50>
    argNames:
    - interpreter
    - abis
    - platforms
    - warn
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 233
    functionName: pip._vendor.packaging.tags.generic_tags
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 34
    functionsReached:
    - formats.append
    - pip._vendor.packaging.tags._version_nodot
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - subprocess.run
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - abi.lower
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - output.splitlines
    - struct.calcsize
    - warnings.warn
    - f.read
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - logger.debug
    - pip._vendor.packaging._manylinux.platform_tags
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - os.fsdecode
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 446
    functionName: pip._vendor.packaging.tags.interpreter_name
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 49
    functionsReached:
    - INTERPRETER_SHORT_NAMES.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - warn
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 454
    functionName: pip._vendor.packaging.tags.interpreter_version
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 49
    functionsReached:
    - <builtin>.str
    - <builtin>.map
    - sysconfig.get_config_var
    - logger.debug
    - pip._vendor.packaging.tags._version_nodot
    - pip._vendor.packaging.tags._get_config_var
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - py_version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 263
    functionName: pip._vendor.packaging.tags._py_interpreter_range
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 35
    functionsReached:
    - <builtin>.len
    - pip._vendor.packaging.tags._version_nodot
    - <builtin>.map
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fbca0250>
    - <ast.Constant object at 0x7f30fbca0220>
    - <ast.Constant object at 0x7f30fbca01f0>
    argNames:
    - python_version
    - interpreter
    - platforms
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 278
    functionName: pip._vendor.packaging.tags.compatible_tags
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 34
    functionsReached:
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - operator.itemgetter
    - interpreter.lower
    - <builtin>.isinstance
    - <builtin>.bool
    - formats.append
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._vendor.packaging.tags._version_nodot
    - n.strip
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._normalize_string
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - pip._vendor.packaging._musllinux.platform_tags
    - os.fsdecode
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - m.group
    - file.read
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - linux.replace
    - pip._vendor.packaging._manylinux._get_glibc_version
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - <builtin>.list
    - platform.lower
    - pip._vendor.packaging.tags._generic_platforms
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - struct.unpack
    - os.confstr
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - <builtin>.len
    - pip._vendor.packaging.tags._linux_platforms
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - pip._vendor.packaging._manylinux._is_linux_i686
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._is_compatible
    - ctypes.CDLL
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - output.splitlines
    - version_str.split
    - subprocess.run
    - sysconfig.get_platform
    - <builtin>.int
    - struct.calcsize
    - pip._vendor.packaging.tags.Tag.__init__
    - <builtin>.hasattr
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - version_str.decode
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - warnings.warn
    - <builtin>.open
    - abi.lower
    - pip._vendor.packaging.tags.mac_platforms
    - stack.enter_context
    - f.read
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30fbc9e3d0>
    argNames:
    - arch
    - is_32bit
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 303
    functionName: pip._vendor.packaging.tags._mac_arch
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 42
    functionsReached:
    - arch.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: arch.startswith
    functionSourceFile: <builtin>
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 6
    IfCount: 10
    argCount: 2
    argDefaultValues: []
    argNames:
    - version
    - cpu_arch
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 313
    functionName: pip._vendor.packaging.tags._mac_binary_formats
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 42
    functionsReached:
    - formats.extend
    - formats.append
    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: formats.extend
    functionSourceFile: <builtin>
    functionUses: 43
    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: formats.append
    functionSourceFile: <builtin>
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fbc97430>
    - <ast.Constant object at 0x7f30fbc97400>
    argNames:
    - version
    - arch
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 345
    functionName: pip._vendor.packaging.tags.mac_platforms
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 41
    functionsReached:
    - pip._vendor.packaging.tags._mac_binary_formats
    - formats.extend
    - <builtin>.map
    - formats.append
    - platform.mac_ver
    - pip._vendor.packaging.tags._mac_arch
    - arch.startswith
    - <builtin>.tuple
    - version_str.split
    - typing.cast
    - <builtin>.range
    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: version_str.split
    functionSourceFile: <builtin>
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues:
    - <ast.Name object at 0x7f30fbc88820>
    argNames:
    - is_32bit
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 417
    functionName: pip._vendor.packaging.tags._linux_platforms
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 38
    functionsReached:
    - f.seek
    - operator.itemgetter
    - <builtin>.isinstance
    - <builtin>.bool
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - n.strip
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._normalize_string
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - re.match
    - pip._vendor.packaging._musllinux.platform_tags
    - os.fsdecode
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - m.group
    - file.read
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - linux.replace
    - pip._vendor.packaging._manylinux._get_glibc_version
    - pip._vendor.packaging._manylinux._get_elf_header
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - struct.unpack
    - os.confstr
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - <builtin>.len
    - pip._vendor.packaging._musllinux._parse_musl_version
    - ctypes.CDLL
    - pip._vendor.packaging._manylinux._is_linux_i686
    - string.replace
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - output.splitlines
    - subprocess.run
    - sysconfig.get_platform
    - <builtin>.int
    - struct.calcsize
    - version_str.decode
    - <builtin>.hasattr
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - warnings.warn
    - <builtin>.open
    - stack.enter_context
    - f.read
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    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: linux.split
    functionSourceFile: <builtin>
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - linux
    - arch
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 267
    functionName: pip._vendor.packaging._manylinux.platform_tags
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 39
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bool
    - version_string.split
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - re.match
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - m.group
    - _manylinux.manylinux_compatible
    - file.read
    - linux.replace
    - pip._vendor.packaging._manylinux._get_glibc_version
    - pip._vendor.packaging._manylinux._get_elf_header
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - struct.unpack
    - os.confstr
    - typing.NamedTuple.__init__
    - ctypes.CDLL
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - <builtin>.int
    - struct.calcsize
    - version_str.decode
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - warnings.warn
    - <builtin>.open
    - pip._vendor.packaging._manylinux._glibc_version_string
    - glibc_max_list.append
    - <builtin>.hasattr
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - arch
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 110
    functionName: pip._vendor.packaging._musllinux.platform_tags
    functionSourceFile: pip._vendor.packaging._musllinux
    functionUses: 40
    functionsReached:
    - f.seek
    - operator.itemgetter
    - pip._vendor.packaging._musllinux._get_musl_version
    - n.strip
    - re.match
    - os.fsdecode
    - m.group
    - <builtin>.tuple
    - struct.unpack
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - <builtin>.len
    - pip._vendor.packaging._musllinux._parse_musl_version
    - output.splitlines
    - subprocess.run
    - <builtin>.int
    - struct.calcsize
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - <builtin>.open
    - stack.enter_context
    - f.read
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    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: 2
    functionLinenumber: 430
    functionName: pip._vendor.packaging.tags._generic_platforms
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 38
    functionsReached:
    - string.replace
    - sysconfig.get_platform
    - pip._vendor.packaging.tags._normalize_string
    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: INTERPRETER_SHORT_NAMES.get
    functionSourceFile: <builtin>
    functionUses: 50
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - warn
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 470
    functionName: pip._vendor.packaging.tags.sys_tags
    functionSourceFile: pip._vendor.packaging.tags
    functionUses: 0
    functionsReached:
    - formats.append
    - pip._vendor.packaging.tags._version_nodot
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - subprocess.run
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - abi.lower
    - pip._vendor.packaging.tags.compatible_tags
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - warnings.warn
    - f.read
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - logger.debug
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - os.fsdecode
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - abis.append
    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: pip._vendor.packaging._manylinux
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 0
    functionsReached:
    - collections.defaultdict
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - file
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 35
    functionName: pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 44
    functionsReached:
    - struct.calcsize
    - file.read
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - struct.unpack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fmt
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 45
    functionsReached:
    - struct.calcsize
    - file.read
    - struct.unpack
    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: struct.calcsize
    functionSourceFile: struct
    functionUses: 60
    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: struct.unpack
    functionSourceFile: struct
    functionUses: 90
    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: 3
    functionLinenumber: 76
    functionName: pip._vendor.packaging._manylinux._get_elf_header
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 43
    functionsReached:
    - struct.unpack
    - struct.calcsize
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.open
    - file.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 85
    functionName: pip._vendor.packaging._manylinux._is_linux_armhf
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 41
    functionsReached:
    - struct.unpack
    - struct.calcsize
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.open
    - file.read
    - pip._vendor.packaging._manylinux._get_elf_header
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 104
    functionName: pip._vendor.packaging._manylinux._is_linux_i686
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 41
    functionsReached:
    - struct.unpack
    - struct.calcsize
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.open
    - file.read
    - pip._vendor.packaging._manylinux._get_elf_header
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - arch
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 114
    functionName: pip._vendor.packaging._manylinux._have_compatible_abi
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 40
    functionsReached:
    - struct.unpack
    - struct.calcsize
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - pip._vendor.packaging._manylinux._is_linux_i686
    - <builtin>.open
    - file.read
    - pip._vendor.packaging._manylinux._get_elf_header
    - pip._vendor.packaging._manylinux._is_linux_armhf
    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: pip._vendor.packaging._manylinux.<lambda1>
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 135
    functionName: pip._vendor.packaging._manylinux._glibc_version_string_confstr
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 43
    functionsReached:
    - os.confstr
    - version_string.split
    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.confstr
    functionSourceFile: os
    functionUses: 68
    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: version_string.split
    functionSourceFile: <builtin>
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 154
    functionName: pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 43
    functionsReached:
    - version_str.decode
    - <builtin>.isinstance
    - ctypes.CDLL
    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: ctypes.CDLL
    functionSourceFile: ctypes
    functionUses: 69
    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: version_str.decode
    functionSourceFile: <builtin>
    functionUses: 65
    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: 2
    functionLinenumber: 198
    functionName: pip._vendor.packaging._manylinux._glibc_version_string
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 42
    functionsReached:
    - os.confstr
    - <builtin>.isinstance
    - version_str.decode
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - ctypes.CDLL
    - version_string.split
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - version_str
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 203
    functionName: pip._vendor.packaging._manylinux._parse_glibc_version
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 42
    functionsReached:
    - warnings.warn
    - m.group
    - re.match
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 223
    functionName: pip._vendor.packaging._manylinux._get_glibc_version
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 41
    functionsReached:
    - os.confstr
    - <builtin>.isinstance
    - <builtin>.int
    - version_str.decode
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - ctypes.CDLL
    - version_string.split
    - warnings.warn
    - m.group
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - re.match
    - pip._vendor.packaging._manylinux._glibc_version_string
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 0
    IfCount: 9
    argCount: 3
    argDefaultValues: []
    argNames:
    - name
    - arch
    - version
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 231
    functionName: pip._vendor.packaging._manylinux._is_compatible
    functionSourceFile: pip._vendor.packaging._manylinux
    functionUses: 40
    functionsReached:
    - os.confstr
    - <builtin>.isinstance
    - <builtin>.int
    - typing.NamedTuple.__init__
    - <builtin>.bool
    - version_str.decode
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - ctypes.CDLL
    - warnings.warn
    - version_string.split
    - m.group
    - _manylinux.manylinux_compatible
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._vendor.packaging._manylinux._get_glibc_version
    - re.match
    - pip._vendor.packaging._manylinux._glibc_version_string
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _manylinux.manylinux_compatible
    functionSourceFile: _manylinux
    functionUses: 41
    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: glibc_max_list.append
    functionSourceFile: <builtin>
    functionUses: 40
    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: linux.replace
    functionSourceFile: <builtin>
    functionUses: 40
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: -1
    functionName: pip._vendor.packaging._musllinux
    functionSourceFile: pip._vendor.packaging._musllinux
    functionUses: 0
    functionsReached:
    - f.seek
    - functools.lru_cache
    - operator.itemgetter
    - pip._vendor.packaging._musllinux._get_musl_version
    - n.strip
    - re.match
    - pip._vendor.packaging._musllinux.platform_tags
    - os.fsdecode
    - m.group
    - <builtin>.tuple
    - plat.split
    - re.sub
    - struct.unpack
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - <builtin>.len
    - pip._vendor.packaging._musllinux._parse_musl_version
    - output.splitlines
    - subprocess.run
    - sysconfig.get_platform
    - <builtin>.int
    - struct.calcsize
    - plat.startswith
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - <builtin>.print
    - <builtin>.open
    - stack.enter_context
    - f.read
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - f
    - fmt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 18
    functionName: pip._vendor.packaging._musllinux._read_unpacked
    functionSourceFile: pip._vendor.packaging._musllinux
    functionUses: 43
    functionsReached:
    - struct.calcsize
    - struct.unpack
    - f.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 22
    functionName: pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    functionSourceFile: pip._vendor.packaging._musllinux
    functionUses: 42
    functionsReached:
    - f.seek
    - operator.itemgetter
    - struct.unpack
    - struct.calcsize
    - os.fsdecode
    - <builtin>.tuple
    - f.read
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    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.seek
    functionSourceFile: <builtin>
    functionUses: 49
    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.fsdecode
    functionSourceFile: os
    functionUses: 64
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - output
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: pip._vendor.packaging._musllinux._parse_musl_version
    functionSourceFile: pip._vendor.packaging._musllinux
    functionUses: 42
    functionsReached:
    - <builtin>.int
    - typing.NamedTuple.__init__
    - <builtin>.len
    - m.group
    - n.strip
    - re.match
    - output.splitlines
    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: n.strip
    functionSourceFile: <builtin>
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.splitlines
    functionSourceFile: <builtin>
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - executable
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 87
    functionName: pip._vendor.packaging._musllinux._get_musl_version
    functionSourceFile: pip._vendor.packaging._musllinux
    functionUses: 41
    functionsReached:
    - f.seek
    - operator.itemgetter
    - n.strip
    - re.match
    - os.fsdecode
    - m.group
    - <builtin>.tuple
    - struct.unpack
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - <builtin>.len
    - pip._vendor.packaging._musllinux._parse_musl_version
    - output.splitlines
    - subprocess.run
    - <builtin>.int
    - struct.calcsize
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - <builtin>.open
    - stack.enter_context
    - f.read
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    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: contextlib.ExitStack
    functionSourceFile: contextlib
    functionUses: 51
    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: stack.enter_context
    functionSourceFile: <builtin>
    functionUses: 42
    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: subprocess.run
    functionSourceFile: subprocess
    functionUses: 52
    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: plat.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: plat.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.packaging.version
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - re.compile
    - collections.namedtuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 63
    functionName: pip._vendor.packaging.version._BaseVersion.__hash__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 69
    functionName: pip._vendor.packaging.version._BaseVersion.__lt__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: pip._vendor.packaging.version._BaseVersion.__le__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 81
    functionName: pip._vendor.packaging.version._BaseVersion.__eq__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 87
    functionName: pip._vendor.packaging.version._BaseVersion.__ge__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 93
    functionName: pip._vendor.packaging.version._BaseVersion.__gt__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 99
    functionName: pip._vendor.packaging.version._BaseVersion.__ne__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 196
    functionName: pip._vendor.packaging.version._legacy_cmpkey
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 145
    functionsReached:
    - _legacy_version_replacement_map.get
    - parts.append
    - _legacy_version_component_re.split
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - part.startswith
    - version.lower
    - part.zfill
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 117
    functionName: pip._vendor.packaging.version.LegacyVersion.__str__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 120
    functionName: pip._vendor.packaging.version.LegacyVersion.__repr__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 124
    functionName: pip._vendor.packaging.version.LegacyVersion.public
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 128
    functionName: pip._vendor.packaging.version.LegacyVersion.base_version
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 132
    functionName: pip._vendor.packaging.version.LegacyVersion.epoch
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 136
    functionName: pip._vendor.packaging.version.LegacyVersion.release
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 140
    functionName: pip._vendor.packaging.version.LegacyVersion.pre
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 144
    functionName: pip._vendor.packaging.version.LegacyVersion.post
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 148
    functionName: pip._vendor.packaging.version.LegacyVersion.dev
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 152
    functionName: pip._vendor.packaging.version.LegacyVersion.local
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 156
    functionName: pip._vendor.packaging.version.LegacyVersion.is_prerelease
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 160
    functionName: pip._vendor.packaging.version.LegacyVersion.is_postrelease
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 164
    functionName: pip._vendor.packaging.version.LegacyVersion.is_devrelease
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 179
    functionName: pip._vendor.packaging.version._parse_version_parts
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 146
    functionsReached:
    - _legacy_version_replacement_map.get
    - _legacy_version_component_re.split
    - part.zfill
    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: _legacy_version_component_re.split
    functionSourceFile: <builtin>
    functionUses: 147
    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: _legacy_version_replacement_map.get
    functionSourceFile: <builtin>
    functionUses: 147
    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: part.zfill
    functionSourceFile: <builtin>
    functionUses: 147
    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: version.lower
    functionSourceFile: <builtin>
    functionUses: 146
    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: part.startswith
    functionSourceFile: <builtin>
    functionUses: 146
    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: pip._vendor.packaging.version.Version
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - letter
    - number
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 393
    functionName: pip._vendor.packaging.version._parse_letter_version
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 176
    functionsReached:
    - letter.lower
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - local
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 432
    functionName: pip._vendor.packaging.version._parse_local_version
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 176
    functionsReached:
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - <builtin>.tuple
    - part.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 6
    argDefaultValues: []
    argNames:
    - epoch
    - release
    - pre
    - post
    - dev
    - local
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 444
    functionName: pip._vendor.packaging.version._cmpkey
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 176
    functionsReached:
    - <builtin>.reversed
    - <builtin>.isinstance
    - <builtin>.tuple
    - <builtin>.list
    - itertools.dropwhile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 290
    functionName: pip._vendor.packaging.version.Version.__repr__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 293
    functionName: pip._vendor.packaging.version.Version.__str__
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - parts.append
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 322
    functionName: pip._vendor.packaging.version.Version.epoch
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 327
    functionName: pip._vendor.packaging.version.Version.release
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 332
    functionName: pip._vendor.packaging.version.Version.pre
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 337
    functionName: pip._vendor.packaging.version.Version.post
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 341
    functionName: pip._vendor.packaging.version.Version.dev
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 345
    functionName: pip._vendor.packaging.version.Version.local
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 352
    functionName: pip._vendor.packaging.version.Version.public
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - <builtin>.str
    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: 1
    functionLinenumber: 356
    functionName: pip._vendor.packaging.version.Version.base_version
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - parts.append
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 369
    functionName: pip._vendor.packaging.version.Version.is_prerelease
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 373
    functionName: pip._vendor.packaging.version.Version.is_postrelease
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 377
    functionName: pip._vendor.packaging.version.Version.is_devrelease
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 381
    functionName: pip._vendor.packaging.version.Version.major
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 385
    functionName: pip._vendor.packaging.version.Version.minor
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 389
    functionName: pip._vendor.packaging.version.Version.micro
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    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: letter.lower
    functionSourceFile: <builtin>
    functionUses: 177
    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: part.isdigit
    functionSourceFile: <builtin>
    functionUses: 250
    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: part.lower
    functionSourceFile: <builtin>
    functionUses: 177
    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: _local_version_separators.split
    functionSourceFile: <builtin>
    functionUses: 177
    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: pip._vendor.packaging.version._cmpkey.<lambda1>
    functionSourceFile: pip._vendor.packaging.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: itertools.dropwhile
    functionSourceFile: itertools
    functionUses: 177
    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: pip._vendor.packaging._structures
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 7
    functionName: pip._vendor.packaging._structures.InfinityType.__repr__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 10
    functionName: pip._vendor.packaging._structures.InfinityType.__hash__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 13
    functionName: pip._vendor.packaging._structures.InfinityType.__lt__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 16
    functionName: pip._vendor.packaging._structures.InfinityType.__le__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 19
    functionName: pip._vendor.packaging._structures.InfinityType.__eq__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 22
    functionName: pip._vendor.packaging._structures.InfinityType.__gt__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 25
    functionName: pip._vendor.packaging._structures.InfinityType.__ge__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 28
    functionName: pip._vendor.packaging._structures.InfinityType.__neg__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 36
    functionName: pip._vendor.packaging._structures.NegativeInfinityType.__repr__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 39
    functionName: pip._vendor.packaging._structures.NegativeInfinityType.__hash__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: pip._vendor.packaging._structures.NegativeInfinityType.__lt__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 45
    functionName: pip._vendor.packaging._structures.NegativeInfinityType.__le__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: pip._vendor.packaging._structures.NegativeInfinityType.__eq__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 51
    functionName: pip._vendor.packaging._structures.NegativeInfinityType.__gt__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 54
    functionName: pip._vendor.packaging._structures.NegativeInfinityType.__ge__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 57
    functionName: pip._vendor.packaging._structures.NegativeInfinityType.__neg__
    functionSourceFile: pip._vendor.packaging._structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.metadata.base
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 53
    functionName: pip._internal.metadata.base.BaseEntryPoint.name
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 57
    functionName: pip._internal.metadata.base.BaseEntryPoint.value
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 61
    functionName: pip._internal.metadata.base.BaseEntryPoint.group
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - entry
    - info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 65
    functionName: pip._internal.metadata.base._convert_installed_files_path
    functionSourceFile: pip._internal.metadata.base
    functionUses: 2
    functionsReached:
    - <builtin>.str
    - pathlib.Path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - directory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 103
    functionName: pip._internal.metadata.base.BaseDistribution.from_directory
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - metadata_contents
    - filename
    - project_name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 111
    functionName: pip._internal.metadata.base.BaseDistribution.from_metadata_file_contents
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - wheel
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 129
    functionName: pip._internal.metadata.base.BaseDistribution.from_wheel
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 142
    functionName: pip._internal.metadata.base.BaseDistribution.__repr__
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 145
    functionName: pip._internal.metadata.base.BaseDistribution.__str__
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 149
    functionName: pip._internal.metadata.base.BaseDistribution.location
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 163
    functionName: pip._internal.metadata.base.BaseDistribution.editable_project_location
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - pip._internal.utils.urls.url_to_path
    - pip._internal.utils.egg_link.egg_link_path_from_sys_path
    - re.sub
    - urllib.parse.urlsplit
    - os.path.isfile
    - <builtin>.len
    - urllib.request.url2pathname
    - pip._internal.utils.egg_link._egg_link_names
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 26
    functionName: pip._internal.utils.urls.url_to_path
    functionSourceFile: pip._internal.utils.urls
    functionUses: 8
    functionsReached:
    - urllib.parse.urlsplit
    - <builtin>.len
    - urllib.request.url2pathname
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - raw_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 33
    functionName: pip._internal.utils.egg_link.egg_link_path_from_sys_path
    functionSourceFile: pip._internal.utils.egg_link
    functionUses: 1
    functionsReached:
    - os.path.isfile
    - re.sub
    - os.path.join
    - pip._internal.utils.egg_link._egg_link_names
    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: 185
    functionName: pip._internal.metadata.base.BaseDistribution.installed_location
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 198
    functionName: pip._internal.metadata.base.BaseDistribution.info_location
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 1
    functionLinenumber: 214
    functionName: pip._internal.metadata.base.BaseDistribution.installed_by_distutils
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 0
    functionLinenumber: 227
    functionName: pip._internal.metadata.base.BaseDistribution.installed_as_egg
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    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: 1
    functionLinenumber: 239
    functionName: pip._internal.metadata.base.BaseDistribution.installed_with_setuptools_egg_info
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - pathlib.Path
    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: 1
    functionLinenumber: 257
    functionName: pip._internal.metadata.base.BaseDistribution.installed_with_dist_info
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - pathlib.Path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 273
    functionName: pip._internal.metadata.base.BaseDistribution.canonical_name
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 277
    functionName: pip._internal.metadata.base.BaseDistribution.version
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 281
    functionName: pip._internal.metadata.base.BaseDistribution.setuptools_filename
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 289
    functionName: pip._internal.metadata.base.BaseDistribution.direct_url
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.metadata.importlib._dists.Distribution.read_text
    - pip._internal.models.direct_url.VcsInfo._from_dict
    - pip._internal.models.direct_url.DirInfo.__init__
    - pip._internal.metadata.base.BaseDistribution.read_text
    - pip._internal.models.direct_url.DirectUrl.from_dict
    - json.loads
    - <builtin>.str
    - pip._internal.models.direct_url.DirInfo._from_dict
    - pip._internal.models.direct_url.DirectUrl.__init__
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - pip._internal.models.direct_url._get
    - <builtin>.len
    - pip._internal.models.direct_url._get_required
    - pip._internal.models.direct_url._exactly_one_of
    - pip._internal.metadata.pkg_resources.Distribution.read_text
    - pip._internal.models.direct_url.DirectUrl.from_json
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.models.direct_url.ArchiveInfo._from_dict
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 180
    functionName: pip._internal.metadata.pkg_resources.Distribution.read_text
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 11
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised:
    - NoneMetadataError
    - FileNotFoundError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 368
    functionName: pip._internal.metadata.base.BaseDistribution.read_text
    functionSourceFile: ''
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 228
    functionName: pip._internal.models.direct_url.DirectUrl.from_json
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 9
    functionsReached:
    - pip._internal.models.direct_url.DirectUrl.from_dict
    - json.loads
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - pip._internal.models.direct_url._get
    - pip._internal.models.direct_url.DirInfo._from_dict
    - pip._internal.models.direct_url.DirInfo.__init__
    - <builtin>.isinstance
    - <builtin>.len
    - pip._internal.models.direct_url._get_required
    - pip._internal.models.direct_url.DirectUrl.__init__
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.models.direct_url.VcsInfo._from_dict
    - pip._internal.models.direct_url.ArchiveInfo._from_dict
    - pip._internal.models.direct_url._exactly_one_of
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 315
    functionName: pip._internal.metadata.base.BaseDistribution.installer
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - line.strip
    - pip._internal.metadata.pkg_resources.Distribution.read_text
    - pip._internal.metadata.importlib._dists.Distribution.read_text
    - installer_text.splitlines
    - pip._internal.metadata.base.BaseDistribution.read_text
    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: installer_text.splitlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 327
    functionName: pip._internal.metadata.base.BaseDistribution.requested
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - pip._internal.metadata.importlib._dists.Distribution.is_file
    - pip._internal.metadata.base.BaseDistribution.is_file
    - <builtin>.str
    - pip._internal.metadata.pkg_resources.Distribution.is_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 356
    functionName: pip._internal.metadata.base.BaseDistribution.is_file
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 174
    functionName: pip._internal.metadata.pkg_resources.Distribution.is_file
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 1
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 331
    functionName: pip._internal.metadata.base.BaseDistribution.editable
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    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: 4
    functionLinenumber: 335
    functionName: pip._internal.metadata.base.BaseDistribution.local
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - os.path.realpath
    - os.path.normcase
    - os.path.abspath
    - <builtin>.getattr
    - pip._internal.utils.misc.normalize_path
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._internal.utils.misc.is_local
    - os.path.expanduser
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 345
    functionName: pip._internal.metadata.base.BaseDistribution.in_usersite
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - os.path.normcase
    - os.path.abspath
    - pip._internal.utils.misc.normalize_path
    - os.path.realpath
    - os.path.expanduser
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 351
    functionName: pip._internal.metadata.base.BaseDistribution.in_site_packages
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - os.path.normcase
    - os.path.abspath
    - pip._internal.utils.misc.normalize_path
    - os.path.realpath
    - os.path.expanduser
    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: 360
    functionName: pip._internal.metadata.base.BaseDistribution.iter_distutils_script_names
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 377
    functionName: pip._internal.metadata.base.BaseDistribution.iter_entry_points
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 380
    functionName: pip._internal.metadata.base.BaseDistribution._metadata_impl
    functionSourceFile: pip._internal.metadata.base
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: pip._internal.metadata.base.BaseDistribution
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - functools.cached_property
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 384
    functionName: pip._internal.metadata.base.BaseDistribution.metadata
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - line.startswith
    - <builtin>.isinstance
    - pip._internal.metadata.importlib._dists.Distribution.read_text
    - typing.cast.get_all
    - pip._internal.metadata.importlib._dists.Distribution._metadata_impl
    - pip._internal.metadata.base.BaseDistribution.read_text
    - _canonicalize_regex.sub
    - pip._internal.utils.misc.display_path
    - <builtin>.str
    - line.strip
    - pip._internal.metadata.base.BaseDistribution._iter_egg_info_dependencies
    - feed_parser.feed
    - line.endswith
    - known_extras.add
    - pip._internal.metadata.base.BaseDistribution._iter_requires_txt_entries
    - typing.NamedTuple.__init__
    - <builtin>.len
    - os.getcwd
    - pip._internal.metadata.base.BaseDistribution._add_egg_info_requires
    - os.path.abspath
    - typing.cast
    - logger.warning
    - pip._internal.metadata.pkg_resources.Distribution.read_text
    - content.splitlines
    - os.path.normcase
    - pip._internal.metadata.pkg_resources.Distribution._metadata_impl
    - email.parser.FeedParser
    - <builtin>.repr
    - feed_parser.close
    - pip._internal.metadata.base.BaseDistribution._iter_egg_info_extras
    - pip._internal.metadata.base.BaseDistribution._metadata_impl
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 195
    functionName: pip._internal.metadata.pkg_resources.Distribution._metadata_impl
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    - pip._internal.utils.misc.display_path
    - pip._internal.metadata.pkg_resources.Distribution.read_text
    - os.path.normcase
    - <builtin>.len
    - os.getcwd
    - feed_parser.feed
    - email.parser.FeedParser
    - <builtin>.repr
    - os.path.abspath
    - feed_parser.close
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - metadata
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 575
    functionName: pip._internal.metadata.base.BaseDistribution._add_egg_info_requires
    functionSourceFile: pip._internal.metadata.base
    functionUses: 1
    functionsReached:
    - line.startswith
    - _canonicalize_regex.sub
    - <builtin>.str
    - line.strip
    - pip._internal.metadata.pkg_resources.Distribution.read_text
    - typing.NamedTuple.__init__
    - content.splitlines
    - pip._internal.metadata.importlib._dists.Distribution.read_text
    - pip._internal.metadata.base.BaseDistribution._iter_egg_info_dependencies
    - line.endswith
    - known_extras.add
    - typing.cast
    - typing.cast.get_all
    - pip._internal.metadata.base.BaseDistribution._iter_requires_txt_entries
    - pip._internal.metadata.base.BaseDistribution._iter_egg_info_extras
    - pip._internal.metadata.base.BaseDistribution.read_text
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 397
    functionName: pip._internal.metadata.base.BaseDistribution.metadata_dict
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - v.strip
    - pip._internal.metadata._json.json_name
    - field.lower
    - <builtin>.isinstance
    - chunks.append
    - <builtin>.str
    - pip._internal.metadata._json.msg_to_json.sanitise_header
    - value.split
    - email.header.decode_header
    - bytes.decode
    - pip._internal.metadata._json.msg_to_json
    - email.header.make_header
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 41
    functionName: pip._internal.metadata._json.msg_to_json
    functionSourceFile: pip._internal.metadata._json
    functionUses: 1
    functionsReached:
    - v.strip
    - pip._internal.metadata._json.json_name
    - field.lower
    - <builtin>.isinstance
    - chunks.append
    - <builtin>.str
    - pip._internal.metadata._json.msg_to_json.sanitise_header
    - value.split
    - email.header.decode_header
    - bytes.decode
    - email.header.make_header
    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: 408
    functionName: pip._internal.metadata.base.BaseDistribution.metadata_version
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 413
    functionName: pip._internal.metadata.base.BaseDistribution.raw_name
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    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: 3
    functionLinenumber: 420
    functionName: pip._internal.metadata.base.BaseDistribution.requires_python
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - <builtin>.str
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - match.group
    - warnings.warn
    - <builtin>.set
    - <builtin>.frozenset
    - specifiers.split
    - parsed.add
    - s.strip
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Tuple object at 0x7f30e462a0a0>
    argNames:
    - self
    - extras
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 438
    functionName: pip._internal.metadata.base.BaseDistribution.iter_dependencies
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 446
    functionName: pip._internal.metadata.base.BaseDistribution.iter_provided_extras
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - extra
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 459
    functionName: pip._internal.metadata.base.BaseDistribution.is_extra_provided
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 467
    functionName: pip._internal.metadata.base.BaseDistribution._iter_declared_entries_from_record
    functionSourceFile: pip._internal.metadata.base
    functionUses: 1
    functionsReached:
    - csv.reader
    - <builtin>.str
    - pathlib.Path
    - pip._internal.metadata.pkg_resources.Distribution.read_text
    - pip._internal.metadata.importlib._dists.Distribution.read_text
    - text.splitlines
    - pip._internal.metadata.base.BaseDistribution.read_text
    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: csv.reader
    functionSourceFile: csv
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 475
    functionName: pip._internal.metadata.base.BaseDistribution._iter_declared_entries_from_legacy
    functionSourceFile: pip._internal.metadata.base
    functionUses: 1
    functionsReached:
    - <builtin>.str
    - pathlib.Path
    - pip._internal.metadata.pkg_resources.Distribution.read_text
    - pip._internal.metadata.importlib._dists.Distribution.read_text
    - text.splitlines
    - pip._internal.metadata.base._convert_installed_files_path
    - pip._internal.metadata.base.BaseDistribution.read_text
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 496
    functionName: pip._internal.metadata.base.BaseDistribution.iter_declared_entries
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - csv.reader
    - <builtin>.str
    - pathlib.Path
    - pip._internal.metadata.pkg_resources.Distribution.read_text
    - pip._internal.metadata.importlib._dists.Distribution.read_text
    - text.splitlines
    - pip._internal.metadata.base.BaseDistribution._iter_declared_entries_from_record
    - pip._internal.metadata.base.BaseDistribution._iter_declared_entries_from_legacy
    - pip._internal.metadata.base._convert_installed_files_path
    - pip._internal.metadata.base.BaseDistribution.read_text
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 512
    functionName: pip._internal.metadata.base.BaseDistribution._iter_requires_txt_entries
    functionSourceFile: pip._internal.metadata.base
    functionUses: 4
    functionsReached:
    - line.startswith
    - <builtin>.str
    - line.strip
    - pip._internal.metadata.pkg_resources.Distribution.read_text
    - typing.NamedTuple.__init__
    - content.splitlines
    - pip._internal.metadata.importlib._dists.Distribution.read_text
    - line.endswith
    - pip._internal.metadata.base.BaseDistribution.read_text
    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: content.splitlines
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 537
    functionName: pip._internal.metadata.base.BaseDistribution._iter_egg_info_extras
    functionSourceFile: pip._internal.metadata.base
    functionUses: 2
    functionsReached:
    - line.startswith
    - _canonicalize_regex.sub
    - <builtin>.str
    - line.strip
    - pip._internal.metadata.pkg_resources.Distribution.read_text
    - typing.NamedTuple.__init__
    - content.splitlines
    - pip._internal.metadata.importlib._dists.Distribution.read_text
    - line.endswith
    - known_extras.add
    - pip._internal.metadata.base.BaseDistribution._iter_requires_txt_entries
    - typing.cast
    - pip._internal.metadata.base.BaseDistribution.read_text
    - pip._vendor.packaging.utils.canonicalize_name
    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: known_extras.add
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 547
    functionName: pip._internal.metadata.base.BaseDistribution._iter_egg_info_dependencies
    functionSourceFile: pip._internal.metadata.base
    functionUses: 2
    functionsReached:
    - line.startswith
    - <builtin>.str
    - line.strip
    - pip._internal.metadata.pkg_resources.Distribution.read_text
    - typing.NamedTuple.__init__
    - content.splitlines
    - pip._internal.metadata.base.BaseDistribution.read_text
    - pip._internal.metadata.importlib._dists.Distribution.read_text
    - line.endswith
    - pip._internal.metadata.base.BaseDistribution._iter_requires_txt_entries
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.get_all
    functionSourceFile: typing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 589
    functionName: pip._internal.metadata.base.BaseEnvironment.default
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 593
    functionName: pip._internal.metadata.base.BaseEnvironment.from_paths
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 596
    functionName: pip._internal.metadata.base.BaseEnvironment.get_distribution
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 604
    functionName: pip._internal.metadata.base.BaseEnvironment._iter_distributions
    functionSourceFile: pip._internal.metadata.base
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 613
    functionName: pip._internal.metadata.base.BaseEnvironment.iter_all_distributions
    functionSourceFile: pip._internal.metadata.base
    functionUses: 4
    functionsReached:
    - pip._internal.metadata.importlib._compat.get_dist_name
    - pathlib.Path
    - path.iterdir
    - path.split
    - pip._vendor.pkg_resources._is_unpacked_egg
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - <builtin>.str
    - <builtin>.tuple
    - os.path.realpath
    - re.sub
    - ntpath.isabs
    - os.path.normpath
    - Wheel.wheel_file_re.match
    - pip._internal.metadata.importlib._envs._DistributionFinder.find_eggs
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - pip._vendor.pkg_resources._is_zip_egg
    - <builtin>.filter
    - os.path.split
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - zipimport.zipimporter
    - importer.archive.endswith
    - pip._vendor.pkg_resources.NullProvider._fn
    - pip._vendor.pkg_resources.find_eggs_in_zip
    - pip._internal.metadata.importlib._envs._DistributionFinder.find
    - part.startswith
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_dir
    - line.strip
    - child.open
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - os.path.join
    - pip._vendor.pkg_resources.Distribution.__init__
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - os.path.splitext
    - part.lower
    - pip._internal.metadata.importlib._envs._looks_like_wheel
    - pip._vendor.pkg_resources._is_egg_path
    - pip._vendor.pkg_resources._normalize_cached
    - os.path.isdir
    - os.path.abspath
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pkgutil.get_importer
    - pip._internal.metadata.importlib._envs.Environment._iter_distributions
    - os.path.normcase
    - match.group
    - pip._vendor.pkg_resources.NullProvider._listdir
    - pip._internal.metadata.pkg_resources.Environment._iter_distributions
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._vendor.pkg_resources.normalize_path
    - <builtin>.isinstance
    - entry.name.endswith
    - version.lower
    - pip._vendor.pkg_resources._always_object
    - part.zfill
    - path.is_dir
    - pip._vendor.pkg_resources.safe_name
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_zip
    - subitem.lower
    - resource_name.split
    - pip._internal.metadata.importlib._envs._DistributionFinder.__init__
    - <builtin>.list
    - pip._vendor.pkg_resources.NullProvider.has_metadata
    - os.scandir
    - pip._internal.metadata.importlib._dists.Distribution.__init__
    - os.path.isfile
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.EggProvider._setup_prefix
    - path.lower
    - path.joinpath
    - pip._vendor.pkg_resources._cygwin_patch
    - pip._vendor.pkg_resources.find_distributions
    - typing.cast
    - parts.pop
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.metadata.pkg_resources.Distribution.__init__
    - <builtin>.int
    - importlib.metadata.distributions
    - part.isdigit
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_impl
    - _legacy_version_replacement_map.get
    - pip._vendor.pkg_resources._parents
    - <builtin>.getattr
    - pip._internal.metadata.base.BaseEnvironment._iter_distributions
    - <builtin>.type
    - inspect.getmro
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - format_str.format
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.Distribution.from_filename
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.pkg_resources.NullProvider.resource_listdir
    - pip._vendor.pkg_resources.EggProvider._set_egg
    - pip._internal.metadata.importlib._envs._DistributionFinder.find_linked
    - ext.lower
    - pip._vendor.pkg_resources.EggMetadata.__init__
    - pip._internal.metadata.importlib._envs._emit_egg_deprecation
    - letter.lower
    - <builtin>.set
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.EmptyProvider._listdir
    - <builtin>.globals
    - pip._vendor.pkg_resources.NullProvider._has
    - sys._getframe
    - location.endswith
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.metadata.importlib._compat.get_info_location
    - <builtin>.next
    - pip._vendor.pkg_resources.WorkingSet.__iter__
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.pkg_resources.Distribution.from_location
    - <builtin>.reversed
    - pip._vendor.pkg_resources.safe_version
    - posixpath.isabs
    - pip._vendor.pkg_resources.FileMetadata.has_metadata
    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: 242
    functionName: pip._internal.metadata.pkg_resources.Environment._iter_distributions
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 5
    functionsReached:
    - pip._vendor.pkg_resources.WorkingSet.__iter__
    - pip._internal.metadata.pkg_resources.Distribution.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 173
    functionName: pip._internal.metadata.importlib._envs.Environment._iter_distributions
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 5
    functionsReached:
    - pip._internal.metadata.importlib._compat.get_dist_name
    - pathlib.Path
    - path.iterdir
    - path.split
    - pip._vendor.pkg_resources._is_unpacked_egg
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - <builtin>.str
    - <builtin>.tuple
    - os.path.realpath
    - re.sub
    - ntpath.isabs
    - os.path.normpath
    - Wheel.wheel_file_re.match
    - pip._internal.metadata.importlib._envs._DistributionFinder.find_eggs
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - pip._vendor.pkg_resources._is_zip_egg
    - <builtin>.filter
    - os.path.split
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - zipimport.zipimporter
    - importer.archive.endswith
    - pip._vendor.pkg_resources.NullProvider._fn
    - pip._vendor.pkg_resources.find_eggs_in_zip
    - pip._internal.metadata.importlib._envs._DistributionFinder.find
    - part.startswith
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_dir
    - line.strip
    - child.open
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - os.path.join
    - os.path.splitext
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.pkg_resources.Distribution.__init__
    - part.lower
    - pip._internal.metadata.importlib._envs._looks_like_wheel
    - pip._vendor.pkg_resources._is_egg_path
    - pip._vendor.pkg_resources._normalize_cached
    - os.path.isdir
    - os.path.abspath
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pkgutil.get_importer
    - os.path.normcase
    - match.group
    - pip._vendor.pkg_resources.NullProvider._listdir
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.isinstance
    - pip._vendor.pkg_resources.normalize_path
    - entry.name.endswith
    - version.lower
    - pip._vendor.pkg_resources._always_object
    - part.zfill
    - path.is_dir
    - pip._vendor.pkg_resources.safe_name
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_zip
    - subitem.lower
    - resource_name.split
    - pip._internal.metadata.importlib._envs._DistributionFinder.__init__
    - <builtin>.list
    - pip._vendor.pkg_resources.NullProvider.has_metadata
    - os.scandir
    - pip._internal.metadata.importlib._dists.Distribution.__init__
    - os.path.isfile
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.EggProvider._setup_prefix
    - path.lower
    - path.joinpath
    - pip._vendor.pkg_resources._cygwin_patch
    - typing.cast
    - pip._vendor.pkg_resources.find_distributions
    - parts.pop
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - importlib.metadata.distributions
    - part.isdigit
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_impl
    - _legacy_version_replacement_map.get
    - pip._vendor.pkg_resources._parents
    - <builtin>.getattr
    - <builtin>.type
    - inspect.getmro
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - format_str.format
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.Distribution.from_filename
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - pip._vendor.pkg_resources.NullProvider.resource_listdir
    - pip._vendor.pkg_resources.EggProvider._set_egg
    - pip._internal.metadata.importlib._envs._DistributionFinder.find_linked
    - pip._vendor.pkg_resources.EggMetadata.__init__
    - ext.lower
    - pip._internal.metadata.importlib._envs._emit_egg_deprecation
    - letter.lower
    - <builtin>.set
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.EmptyProvider._listdir
    - <builtin>.globals
    - pip._vendor.pkg_resources.NullProvider._has
    - sys._getframe
    - location.endswith
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.metadata.importlib._compat.get_info_location
    - <builtin>.next
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.pkg_resources.Distribution.from_location
    - <builtin>.reversed
    - pip._vendor.pkg_resources.safe_version
    - posixpath.isabs
    - pip._vendor.pkg_resources.FileMetadata.has_metadata
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30e4648970>
    - <ast.Name object at 0x7f30e4648940>
    - <ast.Constant object at 0x7f30e4648910>
    - <ast.Constant object at 0x7f30e46488e0>
    - <ast.Constant object at 0x7f30e46488b0>
    argNames:
    - self
    - local_only
    - skip
    - include_editables
    - editables_only
    - user_only
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 634
    functionName: pip._internal.metadata.base.BaseEnvironment.iter_installed_distributions
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - pip._internal.metadata.importlib._compat.get_dist_name
    - pathlib.Path
    - path.iterdir
    - path.split
    - pip._vendor.pkg_resources._is_unpacked_egg
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - <builtin>.str
    - <builtin>.tuple
    - os.path.realpath
    - re.sub
    - ntpath.isabs
    - os.path.normpath
    - Wheel.wheel_file_re.match
    - pip._internal.metadata.importlib._envs._DistributionFinder.find_eggs
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - pip._vendor.pkg_resources._is_zip_egg
    - <builtin>.filter
    - os.path.split
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - zipimport.zipimporter
    - importer.archive.endswith
    - pip._vendor.pkg_resources.NullProvider._fn
    - pip._vendor.pkg_resources.find_eggs_in_zip
    - pip._internal.metadata.importlib._envs._DistributionFinder.find
    - part.startswith
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_dir
    - line.strip
    - child.open
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - os.path.join
    - os.path.splitext
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.pkg_resources.Distribution.__init__
    - part.lower
    - pip._internal.metadata.importlib._envs._looks_like_wheel
    - pip._vendor.pkg_resources._is_egg_path
    - pip._vendor.pkg_resources._normalize_cached
    - os.path.isdir
    - os.path.abspath
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pkgutil.get_importer
    - pip._internal.metadata.importlib._envs.Environment._iter_distributions
    - os.path.normcase
    - match.group
    - pip._vendor.pkg_resources.NullProvider._listdir
    - pip._internal.metadata.pkg_resources.Environment._iter_distributions
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.isinstance
    - pip._vendor.pkg_resources.normalize_path
    - entry.name.endswith
    - version.lower
    - pip._vendor.pkg_resources._always_object
    - part.zfill
    - path.is_dir
    - pip._internal.metadata.base.BaseEnvironment.iter_all_distributions
    - pip._vendor.pkg_resources.safe_name
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_zip
    - subitem.lower
    - resource_name.split
    - pip._internal.metadata.importlib._envs._DistributionFinder.__init__
    - <builtin>.list
    - pip._vendor.pkg_resources.NullProvider.has_metadata
    - os.scandir
    - pip._internal.metadata.importlib._dists.Distribution.__init__
    - os.path.isfile
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.EggProvider._setup_prefix
    - path.lower
    - path.joinpath
    - pip._vendor.pkg_resources._cygwin_patch
    - typing.cast
    - pip._vendor.pkg_resources.find_distributions
    - parts.pop
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.metadata.pkg_resources.Distribution.__init__
    - <builtin>.int
    - importlib.metadata.distributions
    - part.isdigit
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_impl
    - _legacy_version_replacement_map.get
    - pip._vendor.pkg_resources._parents
    - <builtin>.getattr
    - pip._internal.metadata.base.BaseEnvironment._iter_distributions
    - <builtin>.type
    - inspect.getmro
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - format_str.format
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.Distribution.from_filename
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.pkg_resources.NullProvider.resource_listdir
    - pip._vendor.pkg_resources.EggProvider._set_egg
    - pip._internal.metadata.importlib._envs._DistributionFinder.find_linked
    - pip._vendor.pkg_resources.EggMetadata.__init__
    - ext.lower
    - pip._internal.metadata.importlib._envs._emit_egg_deprecation
    - letter.lower
    - <builtin>.set
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.EmptyProvider._listdir
    - <builtin>.globals
    - pip._vendor.pkg_resources.NullProvider._has
    - sys._getframe
    - location.endswith
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.metadata.importlib._compat.get_info_location
    - pip._vendor.pkg_resources.WorkingSet.__iter__
    - <builtin>.next
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.pkg_resources.Distribution.from_location
    - <builtin>.reversed
    - pip._vendor.pkg_resources.safe_version
    - posixpath.isabs
    - pip._vendor.pkg_resources.FileMetadata.has_metadata
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 673
    functionName: pip._internal.metadata.base.Wheel.as_zipfile
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 681
    functionName: pip._internal.metadata.base.FilesystemWheel.as_zipfile
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - zipfile.ZipFile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - location
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 686
    functionName: pip._internal.metadata.base.MemoryWheel.__init__
    functionSourceFile: pip._internal.metadata.base
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 690
    functionName: pip._internal.metadata.base.MemoryWheel.as_zipfile
    functionSourceFile: pip._internal.metadata.base
    functionUses: 0
    functionsReached:
    - zipfile.ZipFile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.models.direct_url
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f7a544f0>
    argNames:
    - d
    - expected_type
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 25
    functionName: pip._internal.models.direct_url._get
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 16
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - DirectUrlValidationError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f7a4be50>
    argNames:
    - d
    - expected_type
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 39
    functionName: pip._internal.models.direct_url._get_required
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 14
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.direct_url._get
    linkageType: pythonLinkage
    raised:
    - DirectUrlValidationError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - infos
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: pip._internal.models.direct_url._exactly_one_of
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 12
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - DirectUrlValidationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - kwargs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: pip._internal.models.direct_url._filter_none
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 6
    functionsReached:
    - kwargs.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30c8d15490>
    argNames:
    - self
    - vcs
    - commit_id
    - requested_revision
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 70
    functionName: pip._internal.models.direct_url.VcsInfo.__init__
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - d
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 81
    functionName: pip._internal.models.direct_url.VcsInfo._from_dict
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 12
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.models.direct_url._get_required
    - pip._internal.models.direct_url._get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 90
    functionName: pip._internal.models.direct_url.VcsInfo._to_dict
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 3
    functionsReached:
    - kwargs.items
    - pip._internal.models.direct_url._filter_none
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f114fe80>
    - <ast.Constant object at 0x7f30f114f730>
    argNames:
    - self
    - hash
    - hashes
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 101
    functionName: pip._internal.models.direct_url.ArchiveInfo.__init__
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 115
    functionName: pip._internal.models.direct_url.ArchiveInfo.hash
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 0
    functionsReached:
    - value.split
    linkageType: pythonLinkage
    raised:
    - DirectUrlValidationError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - d
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 133
    functionName: pip._internal.models.direct_url.ArchiveInfo._from_dict
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 12
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - pip._internal.models.direct_url._get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 138
    functionName: pip._internal.models.direct_url.ArchiveInfo._to_dict
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 3
    functionsReached:
    - kwargs.items
    - pip._internal.models.direct_url._filter_none
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c056a0>
    argNames:
    - self
    - editable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 145
    functionName: pip._internal.models.direct_url.DirInfo.__init__
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - d
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 152
    functionName: pip._internal.models.direct_url.DirInfo._from_dict
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 12
    functionsReached:
    - pip._internal.models.direct_url.DirInfo.__init__
    - <builtin>.isinstance
    - pip._internal.models.direct_url._get_required
    - pip._internal.models.direct_url._get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 157
    functionName: pip._internal.models.direct_url.DirInfo._to_dict
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 3
    functionsReached:
    - kwargs.items
    - pip._internal.models.direct_url._filter_none
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa7940>
    argNames:
    - self
    - url
    - info
    - subdirectory
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 165
    functionName: pip._internal.models.direct_url.DirectUrl.__init__
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 36
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - netloc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 175
    functionName: pip._internal.models.direct_url.DirectUrl._remove_auth_from_netloc
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 1
    functionsReached:
    - netloc.split
    - ENV_VAR_RE.match
    - <builtin>.isinstance
    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: netloc.split
    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: ENV_VAR_RE.match
    functionSourceFile: <builtin>
    functionUses: 2
    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: 2
    functionLinenumber: 190
    functionName: pip._internal.models.direct_url.DirectUrl.redacted_url
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 0
    functionsReached:
    - ENV_VAR_RE.match
    - <builtin>.isinstance
    - urllib.parse.urlsplit
    - pip._internal.models.direct_url.DirectUrl._remove_auth_from_netloc
    - urllib.parse.urlunsplit
    - netloc.split
    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: 202
    functionName: pip._internal.models.direct_url.DirectUrl.validate
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 0
    functionsReached:
    - pip._internal.models.direct_url.DirectUrl.to_dict
    - <builtin>.isinstance
    - pip._internal.models.direct_url.VcsInfo._from_dict
    - pip._internal.models.direct_url.DirInfo.__init__
    - pip._internal.models.direct_url.DirectUrl.from_dict
    - pip._internal.models.direct_url._filter_none
    - pip._internal.models.direct_url.ArchiveInfo._to_dict
    - pip._internal.models.direct_url.DirInfo._from_dict
    - pip._internal.models.direct_url.DirectUrl.__init__
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - pip._internal.models.direct_url._get
    - <builtin>.len
    - pip._internal.models.direct_url._get_required
    - pip._internal.models.direct_url.DirInfo._to_dict
    - pip._internal.models.direct_url._exactly_one_of
    - pip._internal.models.direct_url.VcsInfo._to_dict
    - kwargs.items
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.models.direct_url.ArchiveInfo._from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 219
    functionName: pip._internal.models.direct_url.DirectUrl.to_dict
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 2
    functionsReached:
    - pip._internal.models.direct_url.VcsInfo._to_dict
    - pip._internal.models.direct_url.ArchiveInfo._to_dict
    - pip._internal.models.direct_url._filter_none
    - kwargs.items
    - pip._internal.models.direct_url.DirInfo._to_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - d
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 206
    functionName: pip._internal.models.direct_url.DirectUrl.from_dict
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 11
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - pip._internal.models.direct_url._get
    - pip._internal.models.direct_url.DirInfo._from_dict
    - pip._internal.models.direct_url.DirInfo.__init__
    - <builtin>.len
    - pip._internal.models.direct_url._get_required
    - pip._internal.models.direct_url.DirectUrl.__init__
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.models.direct_url.VcsInfo._from_dict
    - pip._internal.models.direct_url.ArchiveInfo._from_dict
    - pip._internal.models.direct_url._exactly_one_of
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 231
    functionName: pip._internal.models.direct_url.DirectUrl.to_json
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 0
    functionsReached:
    - pip._internal.models.direct_url.DirectUrl.to_dict
    - pip._internal.models.direct_url.VcsInfo._to_dict
    - pip._internal.models.direct_url._filter_none
    - pip._internal.models.direct_url.ArchiveInfo._to_dict
    - kwargs.items
    - pip._internal.models.direct_url.DirInfo._to_dict
    - json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 234
    functionName: pip._internal.models.direct_url.DirectUrl.is_local_editable
    functionSourceFile: pip._internal.models.direct_url
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    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: pip._internal.utils.egg_link
    functionSourceFile: pip._internal.utils.egg_link
    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:
    - raw_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 18
    functionName: pip._internal.utils.egg_link._egg_link_names
    functionSourceFile: pip._internal.utils.egg_link
    functionUses: 7
    functionsReached:
    - re.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - raw_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 46
    functionName: pip._internal.utils.egg_link.egg_link_path_from_location
    functionSourceFile: pip._internal.utils.egg_link
    functionUses: 4
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - pip._internal.utils.virtualenv.virtualenv_no_global
    - pip._internal.utils.egg_link._egg_link_names
    - pip._internal.utils.virtualenv._get_pyvenv_cfg_lines
    - os.path.join
    - pip._internal.utils.virtualenv._no_global_under_venv
    - re.sub
    - os.path.isfile
    - _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match
    - os.path.abspath
    - pip._internal.utils.virtualenv._no_global_under_legacy_virtualenv
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - match.group
    - sites.append
    - os.path.exists
    - os.path.dirname
    - <builtin>.open
    - <builtin>.getattr
    - f.read
    - pip._internal.utils.virtualenv._running_under_venv
    - logger.warning
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sites.append
    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: pip._internal.utils.urls
    functionSourceFile: pip._internal.utils.urls
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 10
    functionName: pip._internal.utils.urls.get_url_scheme
    functionSourceFile: pip._internal.utils.urls
    functionUses: 41
    functionsReached:
    - url.split
    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.split
    functionSourceFile: <builtin>
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 16
    functionName: pip._internal.utils.urls.path_to_url
    functionSourceFile: pip._internal.utils.urls
    functionUses: 74
    functionsReached:
    - os.path.abspath
    - urllib.request.pathname2url
    - urllib.parse.urljoin
    - os.path.normpath
    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.pathname2url
    functionSourceFile: <builtin>
    functionUses: 80
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin
    functionSourceFile: <builtin>
    functionUses: 108
    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.url2pathname
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.metadata._json
    functionSourceFile: pip._internal.metadata._json
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - field
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: pip._internal.metadata._json.json_name
    functionSourceFile: pip._internal.metadata._json
    functionUses: 2
    functionsReached:
    - field.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: field.lower
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - h
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: pip._internal.metadata._json.msg_to_json.sanitise_header
    functionSourceFile: pip._internal.metadata._json
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - chunks.append
    - <builtin>.str
    - email.header.decode_header
    - bytes.decode
    - email.header.make_header
    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: email.header.decode_header
    functionSourceFile: email
    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: bytes.decode
    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: chunks.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: email.header.make_header
    functionSourceFile: email
    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: v.strip
    functionSourceFile: <builtin>
    functionUses: 35
    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: 2
    functionLinenumber: -1
    functionName: pip._internal.utils.temp_dir
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 0
    functionsReached:
    - pip._internal.utils.misc.enum
    - contextlib.contextmanager
    - typing.TypeVar
    - enums.items
    - <builtin>.len
    - logging.getLogger
    - <builtin>.zip
    - <builtin>.type
    - <builtin>.dict
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: pip._internal.utils.temp_dir.global_tempdir_manager
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 2
    functionsReached:
    - contextlib.ExitStack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 53
    functionName: pip._internal.utils.temp_dir.TempDirectoryTypeRegistry.__init__
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - kind
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 56
    functionName: pip._internal.utils.temp_dir.TempDirectoryTypeRegistry.set_delete
    functionSourceFile: pip._internal.utils.temp_dir
    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
    - kind
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 62
    functionName: pip._internal.utils.temp_dir.TempDirectoryTypeRegistry.get_delete
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 73
    functionName: pip._internal.utils.temp_dir.tempdir_registry
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 0
    functionsReached:
    - pip._internal.utils.temp_dir.TempDirectoryTypeRegistry.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kind
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 278
    functionName: pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 35
    functionsReached:
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - itertools.combinations_with_replacement
    - logger.debug
    - os.mkdir
    - os.path.join
    - os.path.realpath
    - os.path.split
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kind
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 171
    functionName: pip._internal.utils.temp_dir.TempDirectory._create
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 35
    functionsReached:
    - os.path.realpath
    - logger.debug
    - tempfile.mkdtemp
    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: _tempdir_manager.enter_context
    functionSourceFile: <builtin>
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 150
    functionName: pip._internal.utils.temp_dir.TempDirectory.path
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 154
    functionName: pip._internal.utils.temp_dir.TempDirectory.__repr__
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 157
    functionName: pip._internal.utils.temp_dir.TempDirectory.__enter__
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc
    - value
    - tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 160
    functionName: pip._internal.utils.temp_dir.TempDirectory.__exit__
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 0
    functionsReached:
    - _tempdir_registry.get_delete
    - functools.partial
    - pip._internal.utils.misc.rmtree
    - shutil.rmtree
    - pip._internal.utils.temp_dir.TempDirectory.cleanup
    - os.path.exists
    - typing.cast
    - logger.warning
    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: _tempdir_registry.get_delete
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 181
    functionName: pip._internal.utils.temp_dir.TempDirectory.cleanup
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 1
    functionsReached:
    - functools.partial
    - os.path.exists
    - pip._internal.utils.misc.rmtree
    - shutil.rmtree
    - typing.cast
    - logger.warning
    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.mkdtemp
    functionSourceFile: tempfile
    functionUses: 51
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - func
    - path
    - exc_val
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 189
    functionName: pip._internal.utils.temp_dir.TempDirectory.cleanup.onerror
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 0
    functionsReached:
    - formatted_exc.rstrip
    - logger.debug
    - errors.append
    - traceback.format_exception_only
    - <builtin>.type
    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: traceback.format_exception_only
    functionSourceFile: traceback
    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: formatted_exc.rstrip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: errors.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa1100>
    argNames:
    - self
    - original
    - delete
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 248
    functionName: pip._internal.utils.temp_dir.AdjacentTempDirectory.__init__
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 3
    functionsReached:
    - <builtin>.super
    - original.rstrip
    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: original.rstrip
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 253
    functionName: pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    functionSourceFile: pip._internal.utils.temp_dir
    functionUses: 36
    functionsReached:
    - <builtin>.len
    - itertools.combinations_with_replacement
    - <builtin>.range
    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: itertools.combinations_with_replacement
    functionSourceFile: itertools
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.metadata.importlib._compat
    functionSourceFile: pip._internal.metadata.importlib._compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - dist
    - reason
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 6
    functionName: pip._internal.metadata.importlib._compat.BadMetadata.__init__
    functionSourceFile: pip._internal.metadata.importlib._compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 10
    functionName: pip._internal.metadata.importlib._compat.BadMetadata.__str__
    functionSourceFile: pip._internal.metadata.importlib._compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 26
    functionName: pip._internal.metadata.importlib._compat.BasePath.name
    functionSourceFile: pip._internal.metadata.importlib._compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 30
    functionName: pip._internal.metadata.importlib._compat.BasePath.parent
    functionSourceFile: pip._internal.metadata.importlib._compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - d
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: pip._internal.metadata.importlib._compat.get_info_location
    functionSourceFile: pip._internal.metadata.importlib._compat
    functionUses: 9
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.metadata.importlib._envs
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - location
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: pip._internal.metadata.importlib._envs._looks_like_wheel
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 9
    functionsReached:
    - os.path.basename
    - os.path.isfile
    - location.endswith
    - Wheel.wheel_file_re.match
    - zipfile.is_zipfile
    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: location.endswith
    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: Wheel.wheel_file_re.match
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: pip._internal.metadata.importlib._envs._DistributionFinder.__init__
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 6
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 52
    functionName: pip._internal.metadata.importlib._envs._DistributionFinder._find_impl
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 8
    functionsReached:
    - _canonicalize_regex.sub
    - pip._internal.metadata.importlib._compat.get_dist_name
    - <builtin>.isinstance
    - pip._internal.metadata.importlib._envs._looks_like_wheel
    - os.path.basename
    - importlib.metadata.distributions
    - os.path.isfile
    - location.endswith
    - pip._internal.metadata.importlib._compat.get_info_location
    - <builtin>.getattr
    - Wheel.wheel_file_re.match
    - zipfile.is_zipfile
    - typing.cast
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    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: importlib.metadata.distributions
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 74
    functionName: pip._internal.metadata.importlib._envs._DistributionFinder.find
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 6
    functionsReached:
    - _canonicalize_regex.sub
    - pip._internal.metadata.importlib._compat.get_dist_name
    - <builtin>.isinstance
    - pip._internal.metadata.importlib._envs._looks_like_wheel
    - os.path.basename
    - importlib.metadata.distributions
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_impl
    - pip._internal.metadata.importlib._dists.Distribution.__init__
    - os.path.isfile
    - location.endswith
    - pip._internal.metadata.importlib._compat.get_info_location
    - <builtin>.getattr
    - Wheel.wheel_file_re.match
    - zipfile.is_zipfile
    - typing.cast
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 86
    functionName: pip._internal.metadata.importlib._envs._DistributionFinder.find_linked
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 6
    functionsReached:
    - pip._internal.metadata.importlib._compat.get_dist_name
    - <builtin>.isinstance
    - pathlib.Path
    - path.iterdir
    - _canonicalize_regex.sub
    - path.is_dir
    - <builtin>.str
    - line.strip
    - child.open
    - zipfile.is_zipfile
    - pip._internal.metadata.importlib._envs._looks_like_wheel
    - pip._internal.metadata.importlib._dists.Distribution.__init__
    - os.path.isfile
    - location.endswith
    - pip._internal.metadata.importlib._compat.get_info_location
    - path.joinpath
    - Wheel.wheel_file_re.match
    - <builtin>.next
    - typing.cast
    - os.path.basename
    - importlib.metadata.distributions
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_impl
    - <builtin>.getattr
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.is_dir
    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: path.iterdir
    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: child.open
    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: path.joinpath
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 110
    functionName: pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_dir
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 7
    functionsReached:
    - inspect.getmro
    - <builtin>.isinstance
    - entry.name.endswith
    - itertools.dropwhile
    - pip._vendor.pkg_resources._always_object
    - pip._vendor.pkg_resources.safe_name
    - <builtin>.str
    - letter.lower
    - <builtin>.tuple
    - pip._vendor.pkg_resources.Distribution.__init__
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - os.scandir
    - re.sub
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.pkg_resources.find_distributions
    - pip._vendor.packaging.version._parse_letter_version
    - pkgutil.get_importer
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.pkg_resources.safe_version
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    - <builtin>.getattr
    - <builtin>.type
    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.scandir
    functionSourceFile: os
    functionUses: 11
    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: entry.name.endswith
    functionSourceFile: <builtin>
    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
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 122
    functionName: pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_zip
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 7
    functionsReached:
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - zipimport.zipimporter
    - importer.archive.endswith
    - pip._vendor.pkg_resources.normalize_path
    - <builtin>.isinstance
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - <builtin>.tuple
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.NullProvider._fn
    - pip._vendor.pkg_resources.find_eggs_in_zip
    - path.split
    - pip._vendor.pkg_resources.Distribution.from_filename
    - pip._vendor.pkg_resources._is_unpacked_egg
    - itertools.dropwhile
    - pip._vendor.pkg_resources.NullProvider.resource_listdir
    - pip._vendor.pkg_resources.EggProvider._set_egg
    - pip._vendor.pkg_resources.safe_name
    - pip._vendor.pkg_resources.EggMetadata.__init__
    - ext.lower
    - subitem.lower
    - <builtin>.str
    - letter.lower
    - pip._vendor.pkg_resources.issue_warning
    - resource_name.split
    - os.path.join
    - os.path.splitext
    - <builtin>.globals
    - os.path.realpath
    - pip._vendor.pkg_resources.EmptyProvider._listdir
    - sys._getframe
    - pip._vendor.pkg_resources.Distribution.__init__
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - pip._vendor.pkg_resources.NullProvider.has_metadata
    - pip._vendor.pkg_resources.NullProvider._has
    - <builtin>.list
    - re.sub
    - os.path.isfile
    - ntpath.isabs
    - pip._vendor.pkg_resources.EggProvider._setup_prefix
    - pip._vendor.pkg_resources._is_egg_path
    - path.lower
    - pip._vendor.pkg_resources._normalize_cached
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - pip._vendor.pkg_resources._cygwin_patch
    - os.path.abspath
    - <builtin>.next
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.pkg_resources.Distribution.from_location
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.pkg_resources.safe_version
    - <builtin>.int
    - os.path.basename
    - posixpath.isabs
    - pip._vendor.pkg_resources._is_zip_egg
    - match.group
    - os.path.normcase
    - pip._vendor.pkg_resources.NullProvider._listdir
    - part.isdigit
    - <builtin>.filter
    - pip._vendor.pkg_resources._parents
    - warnings.warn
    - pip._vendor.pkg_resources.FileMetadata.has_metadata
    - os.path.split
    - _local_version_separators.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 134
    functionName: pip._internal.metadata.importlib._envs._DistributionFinder.find_eggs
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 6
    functionsReached:
    - path.split
    - pip._vendor.pkg_resources._is_unpacked_egg
    - itertools.dropwhile
    - <builtin>.str
    - <builtin>.tuple
    - os.path.realpath
    - re.sub
    - ntpath.isabs
    - os.path.normpath
    - os.path.basename
    - pip._vendor.pkg_resources._is_zip_egg
    - <builtin>.filter
    - os.path.split
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - zipimport.zipimporter
    - importer.archive.endswith
    - pip._vendor.pkg_resources.NullProvider._fn
    - pip._vendor.pkg_resources.find_eggs_in_zip
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_dir
    - os.path.join
    - os.path.splitext
    - pip._vendor.pkg_resources.Distribution.__init__
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - pip._vendor.pkg_resources._is_egg_path
    - pip._vendor.pkg_resources._normalize_cached
    - os.path.isdir
    - os.path.abspath
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pkgutil.get_importer
    - match.group
    - os.path.normcase
    - pip._vendor.pkg_resources.NullProvider._listdir
    - warnings.warn
    - pip._vendor.pkg_resources.normalize_path
    - <builtin>.isinstance
    - entry.name.endswith
    - pip._vendor.pkg_resources._always_object
    - pip._vendor.pkg_resources.safe_name
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_zip
    - subitem.lower
    - resource_name.split
    - <builtin>.list
    - pip._vendor.pkg_resources.NullProvider.has_metadata
    - os.scandir
    - pip._vendor.pkg_resources._find_adapter
    - os.path.isfile
    - pip._vendor.pkg_resources.EggProvider._setup_prefix
    - path.lower
    - pip._vendor.pkg_resources._cygwin_patch
    - pip._vendor.pkg_resources.find_distributions
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - pip._vendor.pkg_resources._parents
    - <builtin>.getattr
    - <builtin>.type
    - inspect.getmro
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.Distribution.from_filename
    - pip._vendor.pkg_resources.NullProvider.resource_listdir
    - pip._vendor.pkg_resources.EggProvider._set_egg
    - pip._vendor.pkg_resources.EggMetadata.__init__
    - ext.lower
    - letter.lower
    - pip._vendor.pkg_resources.issue_warning
    - <builtin>.globals
    - pip._vendor.pkg_resources.EmptyProvider._listdir
    - pip._vendor.pkg_resources.NullProvider._has
    - sys._getframe
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.pkg_resources.Distribution.from_location
    - <builtin>.reversed
    - pip._vendor.pkg_resources.safe_version
    - posixpath.isabs
    - pip._vendor.pkg_resources.FileMetadata.has_metadata
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - location
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 150
    functionName: pip._internal.metadata.importlib._envs._emit_egg_deprecation
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - format_str.format
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 160
    functionName: pip._internal.metadata.importlib._envs.Environment.__init__
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 164
    functionName: pip._internal.metadata.importlib._envs.Environment.default
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 0
    functionsReached:
    - pip._internal.metadata.importlib._envs.Environment.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 168
    functionName: pip._internal.metadata.importlib._envs.Environment.from_paths
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 0
    functionsReached:
    - pip._internal.metadata.importlib._envs.Environment.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 183
    functionName: pip._internal.metadata.importlib._envs.Environment.get_distribution
    functionSourceFile: pip._internal.metadata.importlib._envs
    functionUses: 0
    functionsReached:
    - pip._internal.metadata.importlib._compat.get_dist_name
    - pathlib.Path
    - path.iterdir
    - path.split
    - pip._vendor.pkg_resources._is_unpacked_egg
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - <builtin>.str
    - <builtin>.tuple
    - os.path.realpath
    - re.sub
    - ntpath.isabs
    - os.path.normpath
    - Wheel.wheel_file_re.match
    - pip._internal.metadata.importlib._envs._DistributionFinder.find_eggs
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - pip._vendor.pkg_resources._is_zip_egg
    - <builtin>.filter
    - os.path.split
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - zipimport.zipimporter
    - importer.archive.endswith
    - pip._vendor.pkg_resources.NullProvider._fn
    - pip._vendor.pkg_resources.find_eggs_in_zip
    - pip._internal.metadata.importlib._envs._DistributionFinder.find
    - part.startswith
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_dir
    - line.strip
    - child.open
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - os.path.join
    - os.path.splitext
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.pkg_resources.Distribution.__init__
    - part.lower
    - pip._internal.metadata.importlib._envs._looks_like_wheel
    - pip._vendor.pkg_resources._is_egg_path
    - pip._vendor.pkg_resources._normalize_cached
    - os.path.isdir
    - os.path.abspath
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pkgutil.get_importer
    - pip._internal.metadata.importlib._envs.Environment._iter_distributions
    - os.path.normcase
    - match.group
    - pip._vendor.pkg_resources.NullProvider._listdir
    - pip._internal.metadata.pkg_resources.Environment._iter_distributions
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.isinstance
    - pip._vendor.pkg_resources.normalize_path
    - entry.name.endswith
    - version.lower
    - pip._vendor.pkg_resources._always_object
    - part.zfill
    - path.is_dir
    - pip._internal.metadata.base.BaseEnvironment.iter_all_distributions
    - pip._vendor.pkg_resources.safe_name
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_zip
    - subitem.lower
    - resource_name.split
    - pip._internal.metadata.importlib._envs._DistributionFinder.__init__
    - <builtin>.list
    - pip._vendor.pkg_resources.NullProvider.has_metadata
    - os.scandir
    - pip._internal.metadata.importlib._dists.Distribution.__init__
    - os.path.isfile
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.EggProvider._setup_prefix
    - path.lower
    - path.joinpath
    - pip._vendor.pkg_resources._cygwin_patch
    - typing.cast
    - pip._vendor.pkg_resources.find_distributions
    - parts.pop
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.metadata.pkg_resources.Distribution.__init__
    - <builtin>.int
    - importlib.metadata.distributions
    - part.isdigit
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_impl
    - _legacy_version_replacement_map.get
    - pip._vendor.pkg_resources._parents
    - <builtin>.getattr
    - pip._internal.metadata.base.BaseEnvironment._iter_distributions
    - <builtin>.type
    - inspect.getmro
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - format_str.format
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.Distribution.from_filename
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.pkg_resources.NullProvider.resource_listdir
    - pip._vendor.pkg_resources.EggProvider._set_egg
    - pip._internal.metadata.importlib._envs._DistributionFinder.find_linked
    - pip._vendor.pkg_resources.EggMetadata.__init__
    - ext.lower
    - pip._internal.metadata.importlib._envs._emit_egg_deprecation
    - letter.lower
    - <builtin>.set
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.EmptyProvider._listdir
    - <builtin>.globals
    - pip._vendor.pkg_resources.NullProvider._has
    - sys._getframe
    - location.endswith
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.metadata.importlib._compat.get_info_location
    - <builtin>.next
    - pip._vendor.pkg_resources.WorkingSet.__iter__
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.pkg_resources.Distribution.from_location
    - <builtin>.reversed
    - pip._vendor.pkg_resources.safe_version
    - posixpath.isabs
    - pip._vendor.pkg_resources.FileMetadata.has_metadata
    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: pip._internal.models.wheel
    functionSourceFile: pip._internal.models.wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.models.wheel.Wheel
    functionSourceFile: pip._internal.models.wheel
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 22
    functionName: pip._internal.models.wheel.Wheel.__init__
    functionSourceFile: pip._internal.models.wheel
    functionUses: 51
    functionsReached:
    - interpreter.lower
    - pip._vendor.packaging.tags.Tag.__init__
    - abi.lower
    - wheel_info.group
    - <builtin>.hash
    - platform.lower
    linkageType: pythonLinkage
    raised:
    - InvalidWheelFilename
    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: wheel_info.group
    functionSourceFile: <builtin>
    functionUses: 52
    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: 44
    functionName: pip._internal.models.wheel.Wheel.get_formatted_file_tags
    functionSourceFile: pip._internal.models.wheel
    functionUses: 7
    functionsReached:
    - <builtin>.sorted
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tags
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: pip._internal.models.wheel.Wheel.support_index_min
    functionSourceFile: pip._internal.models.wheel
    functionUses: 3
    functionsReached:
    - <builtin>.next
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tags
    - tag_to_priority
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: pip._internal.models.wheel.Wheel.find_most_preferred_tag
    functionSourceFile: pip._internal.models.wheel
    functionUses: 1
    functionsReached:
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tags
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: pip._internal.models.wheel.Wheel.supported
    functionSourceFile: pip._internal.models.wheel
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.utils.filetypes
    functionSourceFile: pip._internal.utils.filetypes
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 22
    functionName: pip._internal.utils.filetypes.is_archive_file
    functionSourceFile: pip._internal.utils.filetypes
    functionUses: 34
    functionsReached:
    - posixpath.splitext
    - pip._internal.utils.misc.splitext
    - base.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.metadata.pkg_resources
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - metadata
    - wheel_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: pip._internal.metadata.pkg_resources.InMemoryMetadata.__init__
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 50
    functionName: pip._internal.metadata.pkg_resources.InMemoryMetadata.has_metadata
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 53
    functionName: pip._internal.metadata.pkg_resources.InMemoryMetadata.get_metadata
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: pip._internal.metadata.pkg_resources.InMemoryMetadata.get_metadata_lines
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._internal.metadata.pkg_resources.InMemoryMetadata.get_metadata
    - pip._vendor.pkg_resources.yield_lines
    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: pip._vendor.pkg_resources.yield_lines
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 65
    functionName: pip._internal.metadata.pkg_resources.InMemoryMetadata.metadata_isdir
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 68
    functionName: pip._internal.metadata.pkg_resources.InMemoryMetadata.metadata_listdir
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - script_name
    - namespace
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 71
    functionName: pip._internal.metadata.pkg_resources.InMemoryMetadata.run_script
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 76
    functionName: pip._internal.metadata.pkg_resources.Distribution.__init__
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - directory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 80
    functionName: pip._internal.metadata.pkg_resources.Distribution.from_directory
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - dist_dir.endswith
    - itertools.dropwhile
    - pip._vendor.pkg_resources.safe_name
    - <builtin>.str
    - letter.lower
    - os.path.splitext
    - pip._vendor.pkg_resources.PathMetadata.__init__
    - <builtin>.tuple
    - pip._vendor.pkg_resources.Distribution.__init__
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - re.sub
    - directory.rstrip
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.metadata.pkg_resources.Distribution.__init__
    - pip._vendor.pkg_resources.safe_version
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    - os.path.split
    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: directory.rstrip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dist_dir.endswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - metadata_contents
    - filename
    - project_name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 100
    functionName: pip._internal.metadata.pkg_resources.Distribution.from_metadata_file_contents
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - itertools.dropwhile
    - pip._vendor.pkg_resources.safe_name
    - <builtin>.str
    - letter.lower
    - <builtin>.tuple
    - pip._vendor.pkg_resources.Distribution.__init__
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - re.sub
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.metadata.pkg_resources.Distribution.__init__
    - pip._vendor.pkg_resources.safe_version
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    - pip._internal.metadata.pkg_resources.InMemoryMetadata.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - wheel
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 117
    functionName: pip._internal.metadata.pkg_resources.Distribution.from_wheel
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.utils.wheel.wheel_metadata
    - wheel_contents.decode
    - path.split
    - wheel.as_zipfile
    - itertools.dropwhile
    - source.read
    - _canonicalize_regex.sub
    - pip._vendor.pkg_resources.safe_name
    - <builtin>.str
    - pip._internal.utils.wheel.wheel_version
    - letter.lower
    - email.parser.Parser
    - <builtin>.tuple
    - pip._vendor.pkg_resources.Distribution.__init__
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - path.startswith
    - re.sub
    - version_text.strip
    - zf.namelist
    - source.namelist
    - <builtin>.len
    - <builtin>.map
    - pip._internal.utils.wheel.parse_wheel
    - email.parser.Parser.parsestr
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.utils.wheel.check_compatibility
    - typing.cast
    - pip._internal.utils.wheel.read_wheel_metadata_file
    - pip._vendor.packaging.version._parse_letter_version
    - s.endswith
    - pip._internal.utils.wheel.wheel_dist_info_dir
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.metadata.pkg_resources.Distribution.__init__
    - pip._vendor.pkg_resources.safe_version
    - logger.warning
    - <builtin>.reversed
    - <builtin>.int
    - match.group
    - _local_version_separators.split
    - part.isdigit
    - p.split
    - typing.cast.startswith
    - version.split
    - pip._internal.metadata.pkg_resources.InMemoryMetadata.__init__
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    - InvalidWheel
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 138
    functionName: pip._internal.metadata.pkg_resources.Distribution.location
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 142
    functionName: pip._internal.metadata.pkg_resources.Distribution.installed_location
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - pip._internal.utils.virtualenv.virtualenv_no_global
    - pip._internal.utils.egg_link._egg_link_names
    - pip._internal.utils.virtualenv._get_pyvenv_cfg_lines
    - os.path.join
    - os.path.realpath
    - os.path.expanduser
    - pip._internal.utils.virtualenv._no_global_under_venv
    - re.sub
    - os.path.isfile
    - _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - pip._internal.utils.virtualenv._no_global_under_legacy_virtualenv
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - os.path.normcase
    - sites.append
    - match.group
    - os.path.exists
    - os.path.dirname
    - <builtin>.open
    - pip._internal.utils.egg_link.egg_link_path_from_location
    - <builtin>.getattr
    - f.read
    - pip._internal.utils.virtualenv._running_under_venv
    - logger.warning
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 153
    functionName: pip._internal.metadata.pkg_resources.Distribution.info_location
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 157
    functionName: pip._internal.metadata.pkg_resources.Distribution.installed_by_distutils
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 167
    functionName: pip._internal.metadata.pkg_resources.Distribution.canonical_name
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 171
    functionName: pip._internal.metadata.pkg_resources.Distribution.version
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.reversed
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    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: 177
    functionName: pip._internal.metadata.pkg_resources.Distribution.iter_distutils_script_names
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 189
    functionName: pip._internal.metadata.pkg_resources.Distribution.iter_entry_points
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - line.startswith
    - content.append
    - <builtin>.isinstance
    - cls.pattern.match
    - pip._vendor.pkg_resources.EntryPoint._parse_extras
    - entries.items
    - <builtin>.str
    - value.strip
    - line.endswith
    - item.endswith
    - <builtin>.tuple
    - pip._vendor.pkg_resources.Distribution._get_metadata
    - ep_map.get
    - name.strip
    - pip._vendor.pkg_resources.EntryPoint.parse
    - pip._vendor.pkg_resources.Distribution.get_entry_map
    - pip._vendor.pkg_resources.EntryPoint.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.pkg_resources.Requirement.parse
    - <builtin>.map
    - <builtin>.iter
    - data.items
    - group.strip
    - <builtin>.next
    - pip._internal.utils._jaraco_text.join_continuation
    - itertools.chain.from_iterable
    - pip._internal.utils._jaraco_text.yield_lines
    - m.groupdict
    - pip._vendor.pkg_resources.split_sections
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.EntryPoint.parse_map
    - pip._vendor.pkg_resources.EntryPoint.parse_group
    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: entries.items
    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: name.strip
    functionSourceFile: <builtin>
    functionUses: 30
    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: email.parser.FeedParser
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: feed_parser.feed
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: feed_parser.close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Tuple object at 0x7f30f0700e20>
    argNames:
    - self
    - extras
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 217
    functionName: pip._internal.metadata.pkg_resources.Distribution.iter_dependencies
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - re.sub
    - extras.intersection
    - <builtin>.frozenset
    - pip._vendor.pkg_resources.safe_extra
    - pip._vendor.pkg_resources.Distribution.requires
    - deps.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: extras.intersection
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 223
    functionName: pip._internal.metadata.pkg_resources.Distribution.iter_provided_extras
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - extra
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 226
    functionName: pip._internal.metadata.pkg_resources.Distribution.is_extra_provided
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._vendor.pkg_resources.safe_extra
    - re.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ws
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 231
    functionName: pip._internal.metadata.pkg_resources.Environment.__init__
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 235
    functionName: pip._internal.metadata.pkg_resources.Environment.default
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - pip._internal.metadata.pkg_resources.Environment.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 239
    functionName: pip._internal.metadata.pkg_resources.Environment.from_paths
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - inspect.getmro
    - pkgutil.get_importer
    - keys2.append
    - _canonicalize_regex.sub
    - keys.append
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.WorkingSet.add
    - pip._internal.metadata.pkg_resources.Environment.__init__
    - typing.cast
    - pip._vendor.pkg_resources.WorkingSet.add_entry
    - <builtin>.getattr
    - <builtin>.type
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - dist.insert_on
    - pip._vendor.pkg_resources.find_distributions
    - pip._vendor.pkg_resources._always_object
    - pip._vendor.pkg_resources.WorkingSet.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 246
    functionName: pip._internal.metadata.pkg_resources.Environment._search_distribution
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 1
    functionsReached:
    - pip._internal.metadata.importlib._compat.get_dist_name
    - pathlib.Path
    - path.iterdir
    - path.split
    - pip._vendor.pkg_resources._is_unpacked_egg
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - <builtin>.str
    - <builtin>.tuple
    - os.path.realpath
    - re.sub
    - ntpath.isabs
    - os.path.normpath
    - Wheel.wheel_file_re.match
    - pip._internal.metadata.importlib._envs._DistributionFinder.find_eggs
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - pip._vendor.pkg_resources._is_zip_egg
    - <builtin>.filter
    - os.path.split
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - zipimport.zipimporter
    - importer.archive.endswith
    - pip._vendor.pkg_resources.NullProvider._fn
    - pip._vendor.pkg_resources.find_eggs_in_zip
    - pip._internal.metadata.importlib._envs._DistributionFinder.find
    - part.startswith
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_dir
    - line.strip
    - child.open
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - os.path.join
    - os.path.splitext
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.pkg_resources.Distribution.__init__
    - part.lower
    - pip._internal.metadata.importlib._envs._looks_like_wheel
    - pip._vendor.pkg_resources._is_egg_path
    - pip._vendor.pkg_resources._normalize_cached
    - os.path.isdir
    - os.path.abspath
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - pkgutil.get_importer
    - pip._internal.metadata.importlib._envs.Environment._iter_distributions
    - os.path.normcase
    - match.group
    - pip._vendor.pkg_resources.NullProvider._listdir
    - pip._internal.metadata.pkg_resources.Environment._iter_distributions
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.isinstance
    - pip._vendor.pkg_resources.normalize_path
    - entry.name.endswith
    - version.lower
    - pip._vendor.pkg_resources._always_object
    - part.zfill
    - path.is_dir
    - pip._internal.metadata.base.BaseEnvironment.iter_all_distributions
    - pip._vendor.pkg_resources.safe_name
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_zip
    - subitem.lower
    - resource_name.split
    - pip._internal.metadata.importlib._envs._DistributionFinder.__init__
    - <builtin>.list
    - pip._vendor.pkg_resources.NullProvider.has_metadata
    - os.scandir
    - pip._internal.metadata.importlib._dists.Distribution.__init__
    - os.path.isfile
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.EggProvider._setup_prefix
    - path.lower
    - path.joinpath
    - pip._vendor.pkg_resources._cygwin_patch
    - typing.cast
    - pip._vendor.pkg_resources.find_distributions
    - parts.pop
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.metadata.pkg_resources.Distribution.__init__
    - <builtin>.int
    - importlib.metadata.distributions
    - part.isdigit
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_impl
    - _legacy_version_replacement_map.get
    - pip._vendor.pkg_resources._parents
    - <builtin>.getattr
    - pip._internal.metadata.base.BaseEnvironment._iter_distributions
    - <builtin>.type
    - inspect.getmro
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - format_str.format
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.Distribution.from_filename
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.pkg_resources.NullProvider.resource_listdir
    - pip._vendor.pkg_resources.EggProvider._set_egg
    - pip._internal.metadata.importlib._envs._DistributionFinder.find_linked
    - pip._vendor.pkg_resources.EggMetadata.__init__
    - ext.lower
    - pip._internal.metadata.importlib._envs._emit_egg_deprecation
    - letter.lower
    - <builtin>.set
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.EmptyProvider._listdir
    - <builtin>.globals
    - pip._vendor.pkg_resources.NullProvider._has
    - sys._getframe
    - location.endswith
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.metadata.importlib._compat.get_info_location
    - <builtin>.next
    - pip._vendor.pkg_resources.WorkingSet.__iter__
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.pkg_resources.Distribution.from_location
    - <builtin>.reversed
    - pip._vendor.pkg_resources.safe_version
    - posixpath.isabs
    - pip._vendor.pkg_resources.FileMetadata.has_metadata
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 258
    functionName: pip._internal.metadata.pkg_resources.Environment.get_distribution
    functionSourceFile: pip._internal.metadata.pkg_resources
    functionUses: 0
    functionsReached:
    - dists.append
    - pip._internal.metadata.importlib._compat.get_dist_name
    - pip._vendor.pkg_resources.Environment.scan
    - pathlib.Path
    - path.iterdir
    - operator.attrgetter
    - path.split
    - pip._vendor.pkg_resources.WorkingSet.resolve
    - pip._vendor.pkg_resources._is_unpacked_egg
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - <builtin>.str
    - <builtin>.tuple
    - os.path.realpath
    - re.sub
    - ntpath.isabs
    - pip._vendor.pkg_resources.WorkingSet.add
    - os.path.normpath
    - Wheel.wheel_file_re.match
    - pip._internal.utils._jaraco_text.join_continuation
    - pip._vendor.pkg_resources.Environment.best_match
    - pip._internal.metadata.importlib._envs._DistributionFinder.find_eggs
    - dist.has_version
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - pip._internal.utils._jaraco_text.yield_lines
    - pip._vendor.pkg_resources._is_zip_egg
    - <builtin>.filter
    - macosVersionString.match
    - pip._vendor.pkg_resources.WorkingSet.add_entry
    - pip._vendor.pkg_resources.WorkingSet._added_new
    - os.path.split
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.pkg_resources.EmptyProvider.<lambda1>
    - zipimport.zipimporter
    - importer.archive.endswith
    - darwinVersionString.match
    - required_by.get
    - pip._vendor.pkg_resources.NullProvider._fn
    - pip._vendor.pkg_resources.find_eggs_in_zip
    - pip._internal.metadata.importlib._envs._DistributionFinder.find
    - part.startswith
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_dir
    - keys2.append
    - line.strip
    - child.open
    - item.endswith
    - parts.append
    - os.path.join
    - os.path.splitext
    - pip._vendor.pkg_resources.Distribution.__init__
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.packaging.version._parse_version_parts
    - part.lower
    - pip._vendor.pkg_resources.WorkingSet.find
    - best.get
    - pip._internal.metadata.importlib._envs._looks_like_wheel
    - <builtin>.map
    - pip._vendor.pkg_resources._is_egg_path
    - pip._vendor.pkg_resources._normalize_cached
    - <builtin>.iter
    - os.path.isdir
    - os.path.abspath
    - pip._vendor.pkg_resources._ReqExtras.markers_pass
    - pip._vendor.pkg_resources.NullProvider._get_metadata_path
    - requirements.extend
    - pkgutil.get_importer
    - itertools.chain.from_iterable
    - pip._internal.metadata.importlib._envs.Environment._iter_distributions
    - os.path.normcase
    - match.group
    - pip._vendor.pkg_resources.NullProvider._listdir
    - pip._internal.metadata.pkg_resources.Environment._iter_distributions
    - warnings.warn
    - pip._vendor.pkg_resources.Environment.__init__
    - provMac.group
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._vendor.pkg_resources.normalize_path
    - <builtin>.isinstance
    - entry.name.endswith
    - dists.sort
    - version.lower
    - pip._vendor.pkg_resources._always_object
    - provDarwin.group
    - path.is_dir
    - collections.defaultdict
    - part.zfill
    - pip._internal.metadata.base.BaseEnvironment.iter_all_distributions
    - pip._vendor.pkg_resources.safe_name
    - pip._vendor.pkg_resources.Environment.add
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_zip
    - subitem.lower
    - pip._vendor.pkg_resources.WorkingSet.require
    - resource_name.split
    - pip._internal.metadata.importlib._envs._DistributionFinder.__init__
    - dist.insert_on
    - <builtin>.list
    - pip._vendor.pkg_resources.NullProvider.has_metadata
    - os.scandir
    - <builtin>.any
    - pip._internal.metadata.importlib._dists.Distribution.__init__
    - pip._vendor.pkg_resources._find_adapter
    - pip._vendor.pkg_resources.EggProvider._setup_prefix
    - os.path.isfile
    - path.lower
    - pip._vendor.pkg_resources.Environment.can_add
    - path.joinpath
    - pip._vendor.pkg_resources._cygwin_patch
    - pip._vendor.pkg_resources.find_distributions
    - typing.cast
    - req.marker.evaluate
    - parts.pop
    - pip._internal.metadata.pkg_resources.Environment._search_distribution
    - reqMac.group
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.metadata.pkg_resources.Distribution.__init__
    - <builtin>.int
    - to_activate.append
    - part.isdigit
    - pip._vendor.pkg_resources.Environment.obtain
    - pip._internal.metadata.importlib._envs._DistributionFinder._find_impl
    - importlib.metadata.distributions
    - _legacy_version_replacement_map.get
    - pip._vendor.pkg_resources._parents
    - <builtin>.getattr
    - pip._internal.metadata.base.BaseEnvironment._iter_distributions
    - <builtin>.type
    - inspect.getmro
    - pip._vendor.pkg_resources.NullProvider._validate_resource_path
    - format_str.format
    - pip._vendor.pkg_resources.FileMetadata._get_metadata_path
    - pip._vendor.pkg_resources.Distribution.from_filename
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.pkg_resources.NullProvider.resource_listdir
    - pip._vendor.pkg_resources.EggProvider._set_egg
    - pip._internal.metadata.importlib._envs._DistributionFinder.find_linked
    - keys.append
    - pip._vendor.pkg_resources.WorkingSet._resolve_dist
    - pip._vendor.pkg_resources.EggMetadata.__init__
    - requirements.pop
    - ext.lower
    - pip._internal.metadata.importlib._envs._emit_egg_deprecation
    - letter.lower
    - <builtin>.set
    - pip._vendor.pkg_resources.issue_warning
    - pip._vendor.pkg_resources.EmptyProvider._listdir
    - <builtin>.globals
    - pip._vendor.pkg_resources.NullProvider._has
    - sys._getframe
    - location.endswith
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.metadata.importlib._compat.get_info_location
    - <builtin>.next
    - pip._vendor.pkg_resources.WorkingSet.__iter__
    - pip._vendor.pkg_resources.WorkingSet.__init__
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.pkg_resources.Distribution.from_location
    - <builtin>.reversed
    - pip._vendor.pkg_resources.safe_version
    - posixpath.isabs
    - pip._vendor.pkg_resources.compatible_platforms
    - pip._vendor.pkg_resources.parse_requirements
    - pip._vendor.pkg_resources.FileMetadata.has_metadata
    - dist.requires
    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: pip._internal.cli.main_parser
    functionSourceFile: pip._internal.cli.main_parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 21
    functionName: pip._internal.cli.parser.PrettyHelpFormatter.__init__
    functionSourceFile: pip._internal.cli.parser
    functionUses: 9
    functionsReached:
    - shutil.get_terminal_size
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - args
    - name
    - isolated
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 158
    functionName: pip._internal.cli.parser.ConfigOptionParser.__init__
    functionSourceFile: pip._internal.cli.parser
    functionUses: 9
    functionsReached:
    - <builtin>.super
    - pip._internal.configuration.Configuration.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: optparse.OptionParser.disable_interspersed_args
    functionSourceFile: optparse
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - group
    - parser
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: pip._internal.cli.cmdoptions.make_option_group
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 14
    functionsReached:
    - optparse.OptionGroup
    - optparse.OptionGroup.add_option
    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: optparse.OptionParser.add_option_group
    functionSourceFile: optparse
    functionUses: 25
    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: commands_dict.items
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - python
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: pip._internal.cli.main_parser.identify_python_interpreter
    functionSourceFile: pip._internal.cli.main_parser
    functionUses: 6
    functionsReached:
    - os.path.exists
    - os.path.isdir
    - 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: optparse.OptionParser.parse_args
    functionSourceFile: optparse
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: pip._internal.build_env.get_runnable_pip
    functionSourceFile: pip._internal.build_env
    functionUses: 7
    functionsReached:
    - os.fsdecode
    - source.is_dir
    - <builtin>.str
    - pathlib.Path
    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: pip_cmd.extend
    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: optparse.OptionParser.print_help
    functionSourceFile: optparse
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 121
    functionName: pip._internal.commands.get_similar_commands
    functionSourceFile: pip._internal.commands
    functionUses: 7
    functionsReached:
    - difflib.get_close_matches
    - commands_dict.keys
    - name.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: msg.append
    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: cmd_args.remove
    functionSourceFile: <builtin>
    functionUses: 6
    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: 4
    functionLinenumber: -1
    functionName: pip._internal.cli.cmdoptions
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - functools.partial
    - pip._internal.locations.base.get_src_prefix
    - sys.exit
    - os.getcwd
    - textwrap.dedent
    - logging.getLogger
    - <builtin>.getattr
    - os.path.join
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.abspath
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - parser
    - option
    - msg
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: pip._internal.cli.cmdoptions.raise_option_error
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 3
    functionsReached:
    - msg.split
    - parser.error
    - textwrap.fill
    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: msg.split
    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: textwrap.fill
    functionSourceFile: textwrap
    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.error
    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: optparse.OptionGroup
    functionSourceFile: optparse
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: optparse.OptionGroup.add_option
    functionSourceFile: optparse
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e7964310>
    argNames:
    - options
    - check_target
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 62
    functionName: pip._internal.cli.cmdoptions.check_dist_restriction
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 3
    functionsReached:
    - <builtin>.set
    - pip._internal.models.format_control.FormatControl.__init__
    - <builtin>.any
    linkageType: pythonLinkage
    raised:
    - CommandError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfbc1070>
    - <ast.Constant object at 0x7f30dfbc1040>
    argNames:
    - self
    - no_binary
    - only_binary
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 13
    functionName: pip._internal.models.format_control.FormatControl.__init__
    functionSourceFile: pip._internal.models.format_control
    functionUses: 22
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - option
    - opt
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 102
    functionName: pip._internal.cli.cmdoptions._path_option_check
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - os.path.expanduser
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - option
    - opt
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 106
    functionName: pip._internal.cli.cmdoptions._package_name_option_check
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    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: optparse.Option.TYPE_CHECKER.copy
    functionSourceFile: optparse
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.cli.cmdoptions.PipOption
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - optparse.Option.TYPE_CHECKER.copy
    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: 299
    functionName: pip._internal.cli.cmdoptions.exists_action
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - optparse.Option
    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: optparse.Option
    functionSourceFile: optparse
    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: 1
    functionLinenumber: 354
    functionName: pip._internal.cli.cmdoptions.extra_index_url
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - optparse.Option
    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: 377
    functionName: pip._internal.cli.cmdoptions.find_links
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - optparse.Option
    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: 393
    functionName: pip._internal.cli.cmdoptions.trusted_host
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - optparse.Option
    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: 405
    functionName: pip._internal.cli.cmdoptions.constraints
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 3
    functionsReached:
    - optparse.Option
    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: 418
    functionName: pip._internal.cli.cmdoptions.requirements
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 3
    functionsReached:
    - optparse.Option
    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: 431
    functionName: pip._internal.cli.cmdoptions.editable
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 2
    functionsReached:
    - optparse.Option
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - option
    - opt_str
    - value
    - parser
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 446
    functionName: pip._internal.cli.cmdoptions._handle_src
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - os.path.abspath
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - values
    - option
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 469
    functionName: pip._internal.cli.cmdoptions._get_format_control
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 2
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - option
    - opt_str
    - value
    - parser
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 474
    functionName: pip._internal.cli.cmdoptions._handle_no_binary
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - target.clear
    - other.clear
    - pip._internal.cli.cmdoptions._get_format_control
    - other.discard
    - target.add
    - value.split
    - new.index
    - <builtin>.getattr
    - value.startswith
    - pip._internal.models.format_control.FormatControl.handle_mutual_excludes
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - value
    - target
    - other
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 39
    functionName: pip._internal.models.format_control.FormatControl.handle_mutual_excludes
    functionSourceFile: pip._internal.models.format_control
    functionUses: 3
    functionsReached:
    - target.clear
    - other.clear
    - other.discard
    - target.add
    - value.split
    - new.index
    - value.startswith
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - CommandError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - option
    - opt_str
    - value
    - parser
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 485
    functionName: pip._internal.cli.cmdoptions._handle_only_binary
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - target.clear
    - other.clear
    - pip._internal.cli.cmdoptions._get_format_control
    - other.discard
    - target.add
    - value.split
    - new.index
    - <builtin>.getattr
    - value.startswith
    - pip._internal.models.format_control.FormatControl.handle_mutual_excludes
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    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: 2
    functionLinenumber: 496
    functionName: pip._internal.cli.cmdoptions.no_binary
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 4
    functionsReached:
    - <builtin>.set
    - pip._internal.models.format_control.FormatControl.__init__
    - optparse.Option
    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: 2
    functionLinenumber: 514
    functionName: pip._internal.cli.cmdoptions.only_binary
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 4
    functionsReached:
    - <builtin>.set
    - pip._internal.models.format_control.FormatControl.__init__
    - optparse.Option
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 548
    functionName: pip._internal.cli.cmdoptions._convert_python_version
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 1
    functionsReached:
    - value.split
    - <builtin>.len
    - <builtin>.tuple
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - option
    - opt_str
    - value
    - parser
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 577
    functionName: pip._internal.cli.cmdoptions._handle_python_version
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - pip._internal.cli.cmdoptions.raise_option_error
    - <builtin>.int
    - <builtin>.len
    - pip._internal.cli.cmdoptions._convert_python_version
    - value.split
    - parser.error
    - textwrap.fill
    - msg.split
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cmd_opts
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 646
    functionName: pip._internal.cli.cmdoptions.add_target_python_options
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 4
    functionsReached:
    - cmd_opts.add_option
    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: cmd_opts.add_option
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - options
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 653
    functionName: pip._internal.cli.cmdoptions.make_target_python
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 6
    functionsReached:
    - pip._internal.models.target_python.TargetPython.__init__
    - pip._internal.utils.misc.normalize_version_info
    - <builtin>.len
    - <builtin>.map
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30e079b040>
    - <ast.Constant object at 0x7f30e079ba90>
    - <ast.Constant object at 0x7f30e079b490>
    - <ast.Constant object at 0x7f30e079bc40>
    argNames:
    - self
    - platforms
    - py_version_info
    - abis
    - implementation
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 28
    functionName: pip._internal.models.target_python.TargetPython.__init__
    functionSourceFile: pip._internal.models.target_python
    functionUses: 21
    functionsReached:
    - pip._internal.utils.misc.normalize_version_info
    - <builtin>.len
    - <builtin>.map
    - typing.cast
    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: 664
    functionName: pip._internal.cli.cmdoptions.prefer_binary
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 3
    functionsReached:
    - optparse.Option
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - option
    - opt
    - value
    - parser
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 688
    functionName: pip._internal.cli.cmdoptions._handle_no_cache_dir
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - val.lower
    - pip._internal.cli.cmdoptions.raise_option_error
    - <builtin>.str
    - parser.error
    - textwrap.fill
    - msg.split
    - pip._internal.utils.misc.strtobool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - option
    - opt
    - value
    - parser
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 765
    functionName: pip._internal.cli.cmdoptions._handle_no_use_pep517
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - pip._internal.cli.cmdoptions.raise_option_error
    - parser.error
    - textwrap.fill
    - importlib.util.find_spec
    - msg.split
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.util.find_spec
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - option
    - opt_str
    - value
    - parser
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 821
    functionName: pip._internal.cli.cmdoptions._handle_config_settings
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - value.partition
    - parser.error
    - <builtin>.setattr
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.partition
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - option
    - opt_str
    - value
    - parser
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 910
    functionName: pip._internal.cli.cmdoptions._handle_merge_hash
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 0
    functionsReached:
    - value.split
    - parser.values.hashes.setdefault
    - parser.error
    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.values.hashes.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - options
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 971
    functionName: pip._internal.cli.cmdoptions.check_list_path_option
    functionSourceFile: pip._internal.cli.cmdoptions
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - CommandError
    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: pip._internal.utils.hashes
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hashes.items
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 39
    functionName: pip._internal.utils.hashes.Hashes.__and__
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 0
    functionsReached:
    - hashes.items
    - <builtin>.isinstance
    - <builtin>.sorted
    - pip._internal.utils.hashes.Hashes.__init__
    - other._allowed.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other._allowed.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: pip._internal.utils.hashes.Hashes.digest_count
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - hash_name
    - hex_digest
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 62
    functionName: pip._internal.utils.hashes.Hashes.is_hash_allowed
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - chunks
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: pip._internal.utils.hashes.Hashes.check_against_chunks
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 2
    functionsReached:
    - pip._internal.utils.hashes.MissingHashes._raise
    - hash.update
    - hashlib.new
    - gots.items
    - pip._internal.utils.hashes.Hashes._raise
    - gots.values
    - got.hexdigest
    linkageType: pythonLinkage
    raised:
    - InstallationError
    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: hashlib.new
    functionSourceFile: hashlib
    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: gots.values
    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: hash.update
    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: gots.items
    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: got.hexdigest
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - gots
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 146
    functionName: pip._internal.utils.hashes.MissingHashes._raise
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - HashMissing
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - gots
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 89
    functionName: pip._internal.utils.hashes.Hashes._raise
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - HashMismatch
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - file
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 92
    functionName: pip._internal.utils.hashes.Hashes.check_against_file
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 1
    functionsReached:
    - pip._internal.utils.hashes.MissingHashes._raise
    - pip._internal.utils.hashes.Hashes.check_against_chunks
    - hash.update
    - hashlib.new
    - file.read
    - gots.items
    - pip._internal.utils.hashes.Hashes._raise
    - pip._internal.utils.misc.read_chunks
    - gots.values
    - got.hexdigest
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 100
    functionName: pip._internal.utils.hashes.Hashes.check_against_path
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 0
    functionsReached:
    - pip._internal.utils.hashes.MissingHashes._raise
    - pip._internal.utils.hashes.Hashes.check_against_chunks
    - pip._internal.utils.hashes.Hashes._raise
    - hash.update
    - hashlib.new
    - <builtin>.open
    - gots.items
    - file.read
    - pip._internal.utils.hashes.Hashes.check_against_file
    - pip._internal.utils.misc.read_chunks
    - gots.values
    - got.hexdigest
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hashes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 104
    functionName: pip._internal.utils.hashes.Hashes.has_one_of
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 0
    functionsReached:
    - hashes.items
    - pip._internal.utils.hashes.Hashes.is_hash_allowed
    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: 111
    functionName: pip._internal.utils.hashes.Hashes.__bool__
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 115
    functionName: pip._internal.utils.hashes.Hashes.__eq__
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 120
    functionName: pip._internal.utils.hashes.Hashes.__hash__
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 140
    functionName: pip._internal.utils.hashes.MissingHashes.__init__
    functionSourceFile: pip._internal.utils.hashes
    functionUses: 8
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 61
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor
    functionSourceFile: pip._vendor
    functionUses: 0
    functionsReached:
    - <builtin>.locals
    - glob.glob
    - <builtin>.__import__
    - os.path.dirname
    - <builtin>.setattr
    - pip._vendor.vendored
    - os.path.join
    - vendored_name.rsplit
    - <builtin>.globals
    - os.path.abspath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - modulename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 29
    functionName: pip._vendor.vendored
    functionSourceFile: pip._vendor
    functionUses: 1
    functionsReached:
    - <builtin>.locals
    - <builtin>.__import__
    - <builtin>.setattr
    - <builtin>.globals
    - vendored_name.rsplit
    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: vendored_name.rsplit
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: glob.glob
    functionSourceFile: glob
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.cli.parser
    functionSourceFile: pip._internal.cli.parser
    functionUses: 0
    functionsReached:
    - logging.getLogger
    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: shutil.get_terminal_size
    functionSourceFile: shutil
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - option
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 28
    functionName: pip._internal.cli.parser.PrettyHelpFormatter.format_option_strings
    functionSourceFile: pip._internal.cli.parser
    functionUses: 0
    functionsReached:
    - opts.insert
    - opts.append
    - metavar.lower
    - <builtin>.len
    - mvarfmt.format
    - option.dest.lower
    - option.takes_value
    - pip._internal.cli.parser.PrettyHelpFormatter._format_option_strings
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca81d820>
    - <ast.Constant object at 0x7f30ca81d9a0>
    argNames:
    - self
    - option
    - mvarfmt
    - optsep
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._internal.cli.parser.PrettyHelpFormatter._format_option_strings
    functionSourceFile: pip._internal.cli.parser
    functionUses: 1
    functionsReached:
    - opts.insert
    - opts.append
    - metavar.lower
    - <builtin>.len
    - mvarfmt.format
    - option.dest.lower
    - option.takes_value
    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: opts.insert
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: option.takes_value
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: option.dest.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: metavar.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mvarfmt.format
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - heading
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 57
    functionName: pip._internal.cli.parser.PrettyHelpFormatter.format_heading
    functionSourceFile: pip._internal.cli.parser
    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
    - usage
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 62
    functionName: pip._internal.cli.parser.PrettyHelpFormatter.format_usage
    functionSourceFile: pip._internal.cli.parser
    functionUses: 0
    functionsReached:
    - pip._internal.cli.parser.PrettyHelpFormatter.indent_lines
    - text.split
    - textwrap.dedent
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - text
    - indent
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 95
    functionName: pip._internal.cli.parser.PrettyHelpFormatter.indent_lines
    functionSourceFile: pip._internal.cli.parser
    functionUses: 2
    functionsReached:
    - text.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - description
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 70
    functionName: pip._internal.cli.parser.PrettyHelpFormatter.format_description
    functionSourceFile: pip._internal.cli.parser
    functionUses: 0
    functionsReached:
    - description.lstrip
    - pip._internal.cli.parser.PrettyHelpFormatter.indent_lines
    - text.split
    - textwrap.dedent
    - description.rstrip
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: description.lstrip
    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: description.rstrip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - epilog
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 88
    functionName: pip._internal.cli.parser.PrettyHelpFormatter.format_epilog
    functionSourceFile: pip._internal.cli.parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - option
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 109
    functionName: pip._internal.cli.parser.UpdatingDefaultsHelpFormatter.expand_default
    functionSourceFile: pip._internal.cli.parser
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.utils.misc.redact_netloc
    - optparse.IndentedHelpFormatter.parser.defaults.get
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - urllib.parse.urlunsplit
    - help_text.replace
    - pip._internal.utils.misc._redact_netloc
    - typing.cast
    - optparse.IndentedHelpFormatter.parser._update_defaults
    - pip._internal.utils.misc.split_auth_from_netloc
    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: optparse.IndentedHelpFormatter.parser._update_defaults
    functionSourceFile: optparse
    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: optparse.IndentedHelpFormatter.parser.defaults.get
    functionSourceFile: optparse
    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: help_text.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - idx
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 133
    functionName: pip._internal.cli.parser.CustomOptionParser.insert_option_group
    functionSourceFile: pip._internal.cli.parser
    functionUses: 15
    functionsReached:
    - optparse.OptionParser.add_option_group
    - optparse.OptionParser.option_groups.insert
    - optparse.OptionParser.option_groups.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: optparse.OptionParser.option_groups.pop
    functionSourceFile: optparse
    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: optparse.OptionParser.option_groups.insert
    functionSourceFile: optparse
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 145
    functionName: pip._internal.cli.parser.CustomOptionParser.option_list_all
    functionSourceFile: pip._internal.cli.parser
    functionUses: 0
    functionsReached:
    - res.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: res.extend
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa7ee0>
    argNames:
    - self
    - isolated
    - load_only
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 101
    functionName: pip._internal.configuration.Configuration.__init__
    functionSourceFile: pip._internal.configuration
    functionUses: 11
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - ConfigurationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - option
    - key
    - val
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 171
    functionName: pip._internal.cli.parser.ConfigOptionParser.check_default
    functionSourceFile: pip._internal.cli.parser
    functionUses: 2
    functionsReached:
    - sys.exit
    - option.check_value
    - <builtin>.print
    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: option.check_value
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 178
    functionName: pip._internal.cli.parser.ConfigOptionParser._get_ordered_configuration_items
    functionSourceFile: pip._internal.cli.parser
    functionUses: 2
    functionsReached:
    - logger.debug
    - pip._internal.configuration.Configuration.items
    - section_key.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 137
    functionName: pip._internal.configuration.Configuration.items
    functionSourceFile: ''
    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: section_key.split
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - defaults
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 206
    functionName: pip._internal.cli.parser.ConfigOptionParser._update_defaults
    functionSourceFile: pip._internal.cli.parser
    functionUses: 1
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - option.check_value
    - logger.debug
    - optparse.OptionParser.get_option
    - pip._internal.cli.parser.ConfigOptionParser._get_ordered_configuration_items
    - <builtin>.set
    - optparse.OptionParser.exit
    - val.split
    - late_eval.add
    - pip._internal.cli.parser.ConfigOptionParser.error
    - sys.exit
    - pip._internal.cli.parser.ConfigOptionParser.check_default
    - pip._internal.configuration.Configuration.items
    - pip._internal.utils.misc.strtobool
    - optparse.OptionParser.print_usage
    - <builtin>.int
    - option.get_opt_string
    - option.callback
    - <builtin>.print
    - optparse.Values
    - <builtin>.getattr
    - option.convert_value
    - section_key.split
    - contextlib.suppress
    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: optparse.Values
    functionSourceFile: optparse
    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: optparse.OptionParser.get_option
    functionSourceFile: optparse
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - msg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 292
    functionName: pip._internal.cli.parser.ConfigOptionParser.error
    functionSourceFile: pip._internal.cli.parser
    functionUses: 2
    functionsReached:
    - optparse.OptionParser.print_usage
    - optparse.OptionParser.exit
    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: late_eval.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: option.get_opt_string
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: option.convert_value
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: option.callback
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 270
    functionName: pip._internal.cli.parser.ConfigOptionParser.get_default_values
    functionSourceFile: pip._internal.cli.parser
    functionUses: 0
    functionsReached:
    - val.lower
    - pip._internal.configuration.Configuration._load_file
    - <builtin>.isinstance
    - option.check_value
    - key.startswith
    - defaults.get
    - pip._internal.configuration.Configuration._load_environment_vars
    - name.lower
    - pip._internal.configuration.get_configuration_files
    - pip._vendor.platformdirs.site_config_dir
    - logger.debug
    - pip._internal.configuration.Configuration._construct_parser
    - pip._internal.configuration.Configuration._normalized_keys
    - parser.read
    - <builtin>.dict
    - optparse.OptionParser.get_option
    - os.environ.get
    - pip._internal.configuration.Configuration._load_config_files
    - pip._internal.utils.appdirs.site_config_dirs
    - pip._internal.cli.parser.ConfigOptionParser._get_ordered_configuration_items
    - pip._internal.configuration.Configuration.iter_config_files
    - pip._internal.utils.appdirs._macos_user_config_dir
    - pip._internal.utils.appdirs.user_config_dir
    - <builtin>.str
    - pip._internal.configuration.Configuration.get_environ_vars
    - locale.getpreferredencoding
    - <builtin>.set
    - optparse.OptionParser.defaults.copy
    - os.path.join
    - configparser.RawConfigParser
    - os.environ.items
    - os.path.expanduser
    - val.split
    - optparse.OptionParser.exit
    - late_eval.add
    - pip._internal.cli.parser.ConfigOptionParser._update_defaults
    - typing.cast.verbose
    - dirval.split
    - pip._internal.cli.parser.ConfigOptionParser.error
    - sys.exit
    - pip._vendor.platformdirs.user_data_dir
    - parser.sections
    - pip._internal.cli.parser.ConfigOptionParser.check_default
    - os.path.isdir
    - pip._internal.configuration.Configuration.load
    - pip._internal.configuration._normalize_name
    - pip._internal.configuration.Configuration.items
    - pip._internal.utils.misc.strtobool
    - optparse.OptionParser.print_usage
    - <builtin>.int
    - optparse.OptionParser._get_all_options
    - name.startswith
    - os.path.exists
    - option.get_opt_string
    - option.callback
    - <builtin>.print
    - pip._vendor.platformdirs.user_config_dir
    - optparse.Values
    - config_files.items
    - parser.items
    - <builtin>.getattr
    - option.convert_value
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - typing.cast.debug
    - section_key.split
    - contextlib.suppress
    - pip._vendor.platformdirs.site_data_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 122
    functionName: pip._internal.configuration.Configuration.load
    functionSourceFile: pip._internal.configuration
    functionUses: 3
    functionsReached:
    - pip._internal.configuration.Configuration._load_file
    - key.startswith
    - pip._internal.configuration.Configuration._load_environment_vars
    - name.lower
    - pip._internal.configuration.get_configuration_files
    - pip._vendor.platformdirs.site_config_dir
    - pip._internal.configuration.Configuration._construct_parser
    - pip._internal.configuration.Configuration._normalized_keys
    - parser.read
    - <builtin>.dict
    - pip._internal.utils.appdirs.site_config_dirs
    - pip._internal.configuration.Configuration._load_config_files
    - os.environ.get
    - pip._internal.configuration.Configuration.iter_config_files
    - pip._internal.utils.appdirs._macos_user_config_dir
    - pip._internal.utils.appdirs.user_config_dir
    - pip._internal.configuration.Configuration.get_environ_vars
    - locale.getpreferredencoding
    - os.path.join
    - os.environ.items
    - configparser.RawConfigParser
    - os.path.expanduser
    - typing.cast.verbose
    - dirval.split
    - pip._vendor.platformdirs.user_data_dir
    - parser.sections
    - os.path.isdir
    - pip._internal.configuration._normalize_name
    - name.startswith
    - os.path.exists
    - pip._vendor.platformdirs.user_config_dir
    - config_files.items
    - parser.items
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - typing.cast.debug
    - pip._vendor.platformdirs.site_data_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: optparse.OptionParser.exit
    functionSourceFile: optparse
    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: optparse.OptionParser.defaults.copy
    functionSourceFile: optparse
    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: optparse.OptionParser._get_all_options
    functionSourceFile: optparse
    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: defaults.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: optparse.OptionParser.print_usage
    functionSourceFile: optparse
    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: pip._internal.cli.status_codes
    functionSourceFile: pip._internal.cli.status_codes
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._internal.configuration
    functionSourceFile: pip._internal.configuration
    functionUses: 0
    functionsReached:
    - pip._internal.utils.misc.enum
    - enums.items
    - <builtin>.len
    - logging.getLogger
    - <builtin>.zip
    - typing.NewType
    - <builtin>.type
    - <builtin>.dict
    - typing.cast
    - pip._internal.utils._log.getLogger
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 26
    functionName: pip._internal.utils._log.getLogger
    functionSourceFile: pip._internal.utils._log
    functionUses: 8
    functionsReached:
    - logging.getLogger
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: pip._internal.configuration._normalize_name
    functionSourceFile: pip._internal.configuration
    functionUses: 14
    functionsReached:
    - name.startswith
    - name.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.lower
    functionSourceFile: <builtin>
    functionUses: 79
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 58
    functionName: pip._internal.configuration._disassemble_key
    functionSourceFile: pip._internal.configuration
    functionUses: 6
    functionsReached:
    - name.split
    linkageType: pythonLinkage
    raised:
    - ConfigurationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 68
    functionName: pip._internal.configuration.get_configuration_files
    functionSourceFile: pip._internal.configuration
    functionUses: 8
    functionsReached:
    - pip._internal.utils.appdirs._macos_user_config_dir
    - dirval.split
    - pip._internal.utils.appdirs.user_config_dir
    - pip._vendor.platformdirs.user_data_dir
    - pip._vendor.platformdirs.site_config_dir
    - pip._vendor.platformdirs.user_config_dir
    - os.path.join
    - os.path.isdir
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.expanduser
    - pip._internal.utils.appdirs.site_config_dirs
    - pip._vendor.platformdirs.site_data_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 244
    functionName: pip._internal.configuration.Configuration._load_config_files
    functionSourceFile: pip._internal.configuration
    functionUses: 4
    functionsReached:
    - pip._internal.configuration.Configuration._load_file
    - pip._internal.configuration.get_configuration_files
    - name.lower
    - pip._vendor.platformdirs.site_config_dir
    - pip._internal.configuration.Configuration._construct_parser
    - pip._internal.configuration.Configuration._normalized_keys
    - parser.read
    - <builtin>.dict
    - os.environ.get
    - pip._internal.utils.appdirs.site_config_dirs
    - pip._internal.configuration.Configuration.iter_config_files
    - pip._internal.utils.appdirs._macos_user_config_dir
    - pip._internal.utils.appdirs.user_config_dir
    - locale.getpreferredencoding
    - os.path.join
    - configparser.RawConfigParser
    - os.path.expanduser
    - typing.cast.verbose
    - dirval.split
    - pip._vendor.platformdirs.user_data_dir
    - parser.sections
    - os.path.isdir
    - pip._internal.configuration._normalize_name
    - name.startswith
    - os.path.exists
    - pip._vendor.platformdirs.user_config_dir
    - config_files.items
    - parser.items
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - typing.cast.debug
    - pip._vendor.platformdirs.site_data_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 298
    functionName: pip._internal.configuration.Configuration._load_environment_vars
    functionSourceFile: pip._internal.configuration
    functionUses: 4
    functionsReached:
    - pip._internal.configuration.Configuration.get_environ_vars
    - key.startswith
    - name.startswith
    - name.lower
    - pip._internal.configuration.Configuration._normalized_keys
    - os.environ.items
    - pip._internal.configuration._normalize_name
    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: 128
    functionName: pip._internal.configuration.Configuration.get_file_to_edit
    functionSourceFile: pip._internal.configuration
    functionUses: 1
    functionsReached:
    - pip._internal.configuration.Configuration._get_parser_to_modify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 363
    functionName: pip._internal.configuration.Configuration._get_parser_to_modify
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ConfigurationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 143
    functionName: pip._internal.configuration.Configuration.get_value
    functionSourceFile: pip._internal.configuration
    functionUses: 1
    functionsReached:
    - name.startswith
    - name.split
    - pip._internal.configuration._disassemble_key
    - name.lower
    - pip._internal.configuration._normalize_name
    linkageType: pythonLinkage
    raised:
    - ConfigurationError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 155
    functionName: pip._internal.configuration.Configuration.set_value
    functionSourceFile: pip._internal.configuration
    functionUses: 1
    functionsReached:
    - pip._internal.configuration.Configuration._mark_as_modified
    - pip._internal.configuration.Configuration._ensure_have_load_only
    - parser.add_section
    - name.startswith
    - name.split
    - pip._internal.configuration._disassemble_key
    - name.lower
    - parser.has_section
    - parser.set
    - pip._internal.configuration._normalize_name
    - typing.cast.debug
    - pip._internal.configuration.Configuration._get_parser_to_modify
    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: 1
    functionLinenumber: 227
    functionName: pip._internal.configuration.Configuration._ensure_have_load_only
    functionSourceFile: pip._internal.configuration
    functionUses: 6
    functionsReached:
    - typing.cast.debug
    linkageType: pythonLinkage
    raised:
    - ConfigurationError
    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.has_section
    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: parser.add_section
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.set
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - fname
    - parser
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 377
    functionName: pip._internal.configuration.Configuration._mark_as_modified
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 174
    functionName: pip._internal.configuration.Configuration.unset_value
    functionSourceFile: pip._internal.configuration
    functionUses: 1
    functionsReached:
    - pip._internal.configuration.Configuration._mark_as_modified
    - pip._internal.configuration.Configuration._ensure_have_load_only
    - parser.remove_section
    - name.startswith
    - name.split
    - pip._internal.configuration._disassemble_key
    - name.lower
    - parser.remove_option
    - parser.items
    - parser.has_section
    - pip._internal.configuration._normalize_name
    - typing.cast.debug
    - pip._internal.configuration.Configuration._get_parser_to_modify
    linkageType: pythonLinkage
    raised:
    - ConfigurationError
    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.remove_option
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.items
    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: parser.remove_section
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 203
    functionName: pip._internal.configuration.Configuration.save
    functionSourceFile: pip._internal.configuration
    functionUses: 3
    functionsReached:
    - pip._internal.configuration.Configuration._ensure_have_load_only
    - typing.cast.info
    - parser.write
    - os.path.dirname
    - <builtin>.open
    - typing.cast.debug
    - pip._internal.utils.misc.ensure_dir
    - os.makedirs
    linkageType: pythonLinkage
    raised:
    - ConfigurationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.info
    functionSourceFile: typing
    functionUses: 40
    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.write
    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: typing.cast.debug
    functionSourceFile: typing
    functionUses: 47
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 233
    functionName: pip._internal.configuration.Configuration._dictionary
    functionSourceFile: pip._internal.configuration
    functionUses: 0
    functionsReached:
    - retval.update
    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: retval.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 327
    functionName: pip._internal.configuration.Configuration.iter_config_files
    functionSourceFile: pip._internal.configuration
    functionUses: 6
    functionsReached:
    - pip._internal.utils.appdirs._macos_user_config_dir
    - dirval.split
    - pip._internal.utils.appdirs.user_config_dir
    - os.path.exists
    - pip._vendor.platformdirs.user_data_dir
    - pip._internal.configuration.get_configuration_files
    - pip._vendor.platformdirs.site_config_dir
    - pip._vendor.platformdirs.user_config_dir
    - os.environ.get
    - os.path.join
    - os.path.isdir
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.expanduser
    - pip._internal.utils.appdirs.site_config_dirs
    - pip._vendor.platformdirs.site_data_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: config_files.items
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - variant
    - fname
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 267
    functionName: pip._internal.configuration.Configuration._load_file
    functionSourceFile: pip._internal.configuration
    functionUses: 5
    functionsReached:
    - typing.cast.verbose
    - parser.read
    - name.startswith
    - os.path.exists
    - name.lower
    - locale.getpreferredencoding
    - parser.sections
    - pip._internal.configuration.Configuration._construct_parser
    - parser.items
    - pip._internal.configuration.Configuration._normalized_keys
    - configparser.RawConfigParser
    - pip._internal.configuration._normalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.verbose
    functionSourceFile: typing
    functionUses: 93
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 277
    functionName: pip._internal.configuration.Configuration._construct_parser
    functionSourceFile: pip._internal.configuration
    functionUses: 6
    functionsReached:
    - os.path.exists
    - locale.getpreferredencoding
    - configparser.RawConfigParser
    - parser.read
    linkageType: pythonLinkage
    raised:
    - ConfigurationFileCouldNotBeLoaded
    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.sections
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - section
    - items
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 304
    functionName: pip._internal.configuration.Configuration._normalized_keys
    functionSourceFile: pip._internal.configuration
    functionUses: 7
    functionsReached:
    - pip._internal.configuration._normalize_name
    - name.lower
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: configparser.RawConfigParser
    functionSourceFile: configparser
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 318
    functionName: pip._internal.configuration.Configuration.get_environ_vars
    functionSourceFile: pip._internal.configuration
    functionUses: 7
    functionsReached:
    - key.startswith
    - os.environ.items
    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.environ.items
    functionSourceFile: os
    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
    - variant
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 359
    functionName: pip._internal.configuration.Configuration.get_values_in_config
    functionSourceFile: pip._internal.configuration
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 382
    functionName: pip._internal.configuration.Configuration.__repr__
    functionSourceFile: pip._internal.configuration
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._internal.utils.logging
    functionSourceFile: pip._internal.utils.logging
    functionUses: 0
    functionsReached:
    - threading.local
    - contextlib.contextmanager
    - logging.getLogger
    - typing.cast
    - pip._internal.utils._log.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - exc_class
    - exc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: pip._internal.utils.logging._is_broken_pipe_error
    functionSourceFile: pip._internal.utils.logging
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30f694b3d0>
    argNames:
    - num
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 55
    functionName: pip._internal.utils.logging.indent_log
    functionSourceFile: pip._internal.utils.logging
    functionUses: 28
    functionsReached:
    - <builtin>.getattr
    - pip._internal.utils.logging.get_indentation
    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: 69
    functionName: pip._internal.utils.logging.get_indentation
    functionSourceFile: pip._internal.utils.logging
    functionUses: 53
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - args
    - add_timestamp
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: pip._internal.utils.logging.IndentingFormatter.__init__
    functionSourceFile: pip._internal.utils.logging
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - formatted
    - levelno
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 91
    functionName: pip._internal.utils.logging.IndentingFormatter.get_message_start
    functionSourceFile: pip._internal.utils.logging
    functionUses: 1
    functionsReached:
    - formatted.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: formatted.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 107
    functionName: pip._internal.utils.logging.IndentingFormatter.format
    functionSourceFile: pip._internal.utils.logging
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - logging.Formatter.formatTime
    - formatted.startswith
    - formatted.splitlines
    - <builtin>.getattr
    - pip._internal.utils.logging.IndentingFormatter.get_message_start
    - pip._internal.utils.logging.get_indentation
    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.Formatter.formatTime
    functionSourceFile: logging
    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: formatted.splitlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 129
    functionName: pip._internal.utils.logging.IndentedRenderable.__rich_console__
    functionSourceFile: pip._internal.utils.logging
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.segment.Segment.split_lines
    - console.render
    - text.partition
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - stream
    - no_color
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 143
    functionName: pip._internal.utils.logging.RichPipStreamHandler.__init__
    functionSourceFile: pip._internal.utils.logging
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - threading.RLock
    - abc.ABC.__init__
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - term.rpartition
    - os.getenv
    - <builtin>.super
    - jupyter_columns.isdigit
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - lines.isdigit
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 153
    functionName: pip._internal.utils.logging.RichPipStreamHandler.emit
    functionSourceFile: pip._internal.utils.logging
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.logging.RichHandler.render_message
    - pip._internal.utils.logging.RichPipStreamHandler.handleError
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - <builtin>.super
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - random.randint
    - <builtin>.sorted
    - pip._internal.utils.logging._is_broken_pipe_error
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - logging.Handler.format
    - RE_HANDLER.match
    - pip._internal.utils.logging.get_indentation
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - message_text.highlight_words
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - sys.exc_info
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.Handler.format
    functionSourceFile: logging
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - record
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 174
    functionName: pip._vendor.rich.logging.RichHandler.render_message
    functionSourceFile: pip._vendor.rich.logging
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - message_text.highlight_words
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 181
    functionName: pip._internal.utils.logging.RichPipStreamHandler.handleError
    functionSourceFile: pip._internal.utils.logging
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - sys.exc_info
    - pip._internal.utils.logging._is_broken_pipe_error
    linkageType: pythonLinkage
    raised:
    - BrokenStdoutLoggingError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 201
    functionName: pip._internal.utils.logging.BetterRotatingFileHandler._open
    functionSourceFile: pip._internal.utils.logging
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - os.path.dirname
    - pip._internal.utils.misc.ensure_dir
    - os.makedirs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - level
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 207
    functionName: pip._internal.utils.logging.MaxLevelFilter.__init__
    functionSourceFile: pip._internal.utils.logging
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 210
    functionName: pip._internal.utils.logging.MaxLevelFilter.filter
    functionSourceFile: pip._internal.utils.logging
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 220
    functionName: pip._internal.utils.logging.ExcludeLoggerFilter.filter
    functionSourceFile: pip._internal.utils.logging
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - verbosity
    - no_color
    - user_log_file
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 226
    functionName: pip._internal.utils.logging.setup_logging
    functionSourceFile: pip._internal.utils.logging
    functionUses: 2
    functionsReached:
    - logging.config.dictConfig
    - logging.getLevelName
    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.getLevelName
    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.config.dictConfig
    functionSourceFile: logging
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 20
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.rich.logging
    functionSourceFile: pip._vendor.rich.logging
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.logging.divide
    - <builtin>.super
    - logging.basicConfig
    - log.critical
    - log.warning
    - pip._vendor.rich._log_render.LogRender.__init__
    - log.error
    - get_console
    - log.info
    - logging.getLogger
    - logging.Handler.HIGHLIGHTER_CLASS
    - log.exception
    - log.debug
    - <builtin>.dict
    - time.sleep
    - pip._vendor.rich.logging.RichHandler.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 21
    argDefaultValues:
    - <ast.Attribute object at 0x7f30fcee9a00>
    - <ast.Constant object at 0x7f30fcee99a0>
    argNames:
    - self
    - level
    - console
    - show_time
    - omit_repeated_times
    - show_level
    - show_path
    - enable_link_path
    - highlighter
    - markup
    - rich_tracebacks
    - tracebacks_width
    - tracebacks_extra_lines
    - tracebacks_theme
    - tracebacks_word_wrap
    - tracebacks_show_locals
    - tracebacks_suppress
    - locals_max_length
    - locals_max_string
    - log_time_format
    - keywords
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 63
    functionName: pip._vendor.rich.logging.RichHandler.__init__
    functionSourceFile: pip._vendor.rich.logging
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - get_console
    - logging.Handler.HIGHLIGHTER_CLASS
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.Handler.HIGHLIGHTER_CLASS
    functionSourceFile: logging
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 111
    functionName: pip._vendor.rich.logging.RichHandler.get_level_text
    functionSourceFile: pip._vendor.rich.logging
    functionUses: 2
    functionsReached:
    - level_name.ljust
    - pip._vendor.rich.text.Text.styled
    - <builtin>.len
    - styled_text.stylize
    - pip._vendor.rich.control.strip_control_codes
    - level_name.lower
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: level_name.ljust
    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: level_name.lower
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 126
    functionName: pip._vendor.rich.logging.RichHandler.emit
    functionSourceFile: pip._vendor.rich.logging
    functionUses: 0
    functionsReached:
    - typing.cast._asdict
    - pathlib.Path
    - dataclasses.fields
    - key.startswith
    - <builtin>.sum
    - dataclasses.is_dataclass
    - pip._vendor.rich.pretty._has_default_namedtuple_repr
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - pip._vendor.rich.pretty.traverse
    - abc.ABC.title
    - <builtin>.str
    - pip._vendor.rich._log_render.LogRender.__init__
    - frame_summary.f_locals.items
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.hash
    - pip._vendor.rich.logging.RichHandler.render
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - os.path.normpath
    - pip._vendor.rich.traceback.Traceback.extract
    - pip._vendor.rich.pretty.traverse._traverse.iter_rich_args
    - logging.Handler.formatter.usesTime
    - pip._vendor.rich.traceback.Traceback.extract.get_locals
    - styled_text.stylize
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.layout.Layout.__rich_repr__
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.hasattr
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._vendor.rich.pretty.traverse.to_repr
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - pip._vendor.rich.pretty._get_attr_fields
    - inspect.getfile
    - os.path.join
    - attr.fields
    - pip._vendor.rich.pretty._is_dataclass_repr
    - abc.ABC.background_color.lower
    - logging.Handler.formatter.formatTime
    - pip._vendor.rich.text.Text.styled
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._vendor.rich.logging.RichHandler.get_level_text
    - pip._vendor.rich.pretty.traverse._traverse.iter_attrs
    - importlib.metadata.entry_points
    - match.span
    - pip._vendor.rich.traceback.Traceback.extract.safe_str
    - os.path.dirname
    - record.getMessage
    - <builtin>.callable
    - RE_COLOR.match
    - pip._vendor.rich.traceback.Traceback.from_exception
    - importlib_metadata.entry_points
    - <builtin>.max
    - sys.exc_info
    - pip._vendor.rich.pretty._is_namedtuple
    - <builtin>.isinstance
    - attr.has
    - <builtin>.__import__
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.logging.RichHandler.render_message
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - itertools.islice
    - pip._vendor.rich.pretty.traverse._traverse
    - STYLE_ATTRIBUTES.get
    - os.path.isabs
    - pip._vendor.rich.traceback.Traceback.__init__
    - logging.Handler.handleError
    - color_match.groups
    - <builtin>.list
    - datetime.datetime.fromtimestamp
    - level_name.ljust
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.id
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - logging.Handler.format
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - style_stack.append
    - logging.Handler.formatter.formatMessage
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.syntax.Syntax.get_theme
    - traceback.walk_tb
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.markup._parse
    - pip._vendor.pygments.styles.get_style_by_name
    - variants.get
    - <builtin>.set
    - style_definition.split
    - inspect.isclass
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - typing.cast.__rich_repr__
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - style_definition.strip
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - random.randint
    - stacks.append
    - frame_summary.f_locals.get
    - pip._vendor.rich.markup.render
    - filename.startswith
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - level_name.lower
    - <builtin>.reversed
    - message_text.highlight_words
    - pip._vendor.pygments.plugin.iter_entry_points
    - style_stack.pop
    - entrypoint.load
    - typing.cast.items
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: record.getMessage
    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: logging.Handler.formatter.usesTime
    functionSourceFile: logging
    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: logging.Handler.formatter.formatTime
    functionSourceFile: logging
    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: logging.Handler.formatter.formatMessage
    functionSourceFile: logging
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - record
    - traceback
    - message_renderable
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 199
    functionName: pip._vendor.rich.logging.RichHandler.render
    functionSourceFile: pip._vendor.rich.logging
    functionUses: 1
    functionsReached:
    - datetime.datetime.fromtimestamp
    - pathlib.Path
    - pip._vendor.rich.text.Text.styled
    - level_name.ljust
    - pip._vendor.rich.text.Text.__init__
    - <builtin>.len
    - styled_text.stylize
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.logging.RichHandler.get_level_text
    - level_name.lower
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.Handler.handleError
    functionSourceFile: logging
    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: message_text.highlight_words
    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: datetime.datetime.fromtimestamp
    functionSourceFile: datetime
    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: logging.basicConfig
    functionSourceFile: logging
    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: log.info
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log.warning
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log.error
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 275
    functionName: pip._vendor.rich.logging.divide
    functionSourceFile: pip._vendor.rich.logging
    functionUses: 1
    functionsReached:
    - log.exception
    - log.debug
    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: log.exception
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log.critical
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.utils._log
    functionSourceFile: pip._internal.utils._log
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 22
    functionName: pip._internal.utils._log.VerboseLogger.verbose
    functionSourceFile: pip._internal.utils._log
    functionUses: 0
    functionsReached:
    - logging.Logger.log
    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.Logger.log
    functionSourceFile: logging
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._internal.utils._log.init_logging
    functionSourceFile: pip._internal.utils._log
    functionUses: 1
    functionsReached:
    - logging.setLoggerClass
    - logging.addLevelName
    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.setLoggerClass
    functionSourceFile: logging
    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: logging.addLevelName
    functionSourceFile: logging
    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: pip._internal.models.format_control
    functionSourceFile: pip._internal.models.format_control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 26
    functionName: pip._internal.models.format_control.FormatControl.__eq__
    functionSourceFile: pip._internal.models.format_control
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.all
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 35
    functionName: pip._internal.models.format_control.FormatControl.__repr__
    functionSourceFile: pip._internal.models.format_control
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.startswith
    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: other.clear
    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: target.clear
    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: target.add
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new.index
    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: other.discard
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - canonical_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 61
    functionName: pip._internal.models.format_control.FormatControl.get_allowed_formats
    functionSourceFile: pip._internal.models.format_control
    functionUses: 0
    functionsReached:
    - <builtin>.frozenset
    - result.discard
    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.discard
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 73
    functionName: pip._internal.models.format_control.FormatControl.disallow_binaries
    functionSourceFile: pip._internal.models.format_control
    functionUses: 0
    functionsReached:
    - target.clear
    - other.clear
    - other.discard
    - target.add
    - value.split
    - new.index
    - value.startswith
    - pip._internal.models.format_control.FormatControl.handle_mutual_excludes
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    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: pip._internal.models.target_python
    functionSourceFile: pip._internal.models.target_python
    functionUses: 0
    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: 1
    functionLinenumber: 69
    functionName: pip._internal.models.target_python.TargetPython.format_given
    functionSourceFile: pip._internal.models.target_python
    functionUses: 2
    functionsReached:
    - <builtin>.str
    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: 11
    functionLinenumber: 89
    functionName: pip._internal.models.target_python.TargetPython.get_sorted_tags
    functionSourceFile: pip._internal.models.target_python
    functionUses: 12
    functionsReached:
    - formats.append
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - supported.extend
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - abi.lower
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - seen.update
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - warnings.warn
    - f.read
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - version_info
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 21
    functionName: pip._internal.utils.compatibility_tags.version_info_to_nodot
    functionSourceFile: pip._internal.utils.compatibility_tags
    functionUses: 13
    functionsReached:
    - <builtin>.map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc6fc70>
    - <ast.Constant object at 0x7f30fcc6f5b0>
    - <ast.Constant object at 0x7f30fcc6f3d0>
    - <ast.Constant object at 0x7f30fcc6f6d0>
    argNames:
    - version
    - platforms
    - impl
    - abis
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 112
    functionName: pip._internal.utils.compatibility_tags.get_supported
    functionSourceFile: pip._internal.utils.compatibility_tags
    functionUses: 32
    functionsReached:
    - formats.append
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - supported.extend
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - abi.lower
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - seen.update
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - warnings.warn
    - f.read
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - abis.append
    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: 12
    functionLinenumber: 114
    functionName: pip._internal.models.target_python.TargetPython.get_unsorted_tags
    functionSourceFile: pip._internal.models.target_python
    functionUses: 7
    functionsReached:
    - formats.append
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - supported.extend
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - abi.lower
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - seen.update
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - warnings.warn
    - f.read
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._internal.models.target_python.TargetPython.get_sorted_tags
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.utils.compatibility_tags
    functionSourceFile: pip._internal.utils.compatibility_tags
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - arch
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 26
    functionName: pip._internal.utils.compatibility_tags._mac_platforms
    functionSourceFile: pip._internal.utils.compatibility_tags
    functionUses: 35
    functionsReached:
    - pip._vendor.packaging.tags._mac_binary_formats
    - _osx_arch_pat.match
    - <builtin>.int
    - formats.extend
    - <builtin>.len
    - <builtin>.map
    - formats.append
    - platform.mac_ver
    - pip._vendor.packaging.tags._mac_arch
    - arch.startswith
    - typing.cast
    - <builtin>.tuple
    - version_str.split
    - pip._vendor.packaging.tags.mac_platforms
    - match.groups
    - <builtin>.range
    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: _osx_arch_pat.match
    functionSourceFile: <builtin>
    functionUses: 36
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - arch
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    functionSourceFile: pip._internal.utils.compatibility_tags
    functionUses: 35
    functionsReached:
    - arch.partition
    - arches.append
    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: arch.partition
    functionSourceFile: <builtin>
    functionUses: 36
    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: arches.append
    functionSourceFile: <builtin>
    functionUses: 38
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - arch
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 67
    functionName: pip._internal.utils.compatibility_tags._get_custom_platforms
    functionSourceFile: pip._internal.utils.compatibility_tags
    functionUses: 34
    functionsReached:
    - pip._vendor.packaging.tags._mac_binary_formats
    - formats.extend
    - arches.append
    - formats.append
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - match.groups
    - arch.partition
    - pip._vendor.packaging.tags._mac_arch
    - <builtin>.tuple
    - arch.startswith
    - <builtin>.len
    - <builtin>.map
    - platform.mac_ver
    - typing.cast
    - pip._internal.utils.compatibility_tags._mac_platforms
    - version_str.split
    - _osx_arch_pat.match
    - <builtin>.int
    - pip._vendor.packaging.tags.mac_platforms
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - platforms
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 78
    functionName: pip._internal.utils.compatibility_tags._expand_allowed_platforms
    functionSourceFile: pip._internal.utils.compatibility_tags
    functionUses: 33
    functionsReached:
    - pip._vendor.packaging.tags._mac_binary_formats
    - formats.extend
    - arches.append
    - formats.append
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - match.groups
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - arch.partition
    - <builtin>.set
    - pip._vendor.packaging.tags._mac_arch
    - seen.update
    - <builtin>.tuple
    - arch.startswith
    - <builtin>.len
    - <builtin>.map
    - platform.mac_ver
    - typing.cast
    - pip._internal.utils.compatibility_tags._mac_platforms
    - version_str.split
    - result.extend
    - _osx_arch_pat.match
    - <builtin>.int
    - pip._vendor.packaging.tags.mac_platforms
    - <builtin>.range
    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: seen.update
    functionSourceFile: <builtin>
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 95
    functionName: pip._internal.utils.compatibility_tags._get_python_version
    functionSourceFile: pip._internal.utils.compatibility_tags
    functionUses: 33
    functionsReached:
    - <builtin>.len
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bc6d30>
    - <ast.Constant object at 0x7f30f6bc6220>
    argNames:
    - implementation
    - version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 102
    functionName: pip._internal.utils.compatibility_tags._get_custom_interpreter
    functionSourceFile: pip._internal.utils.compatibility_tags
    functionUses: 33
    functionsReached:
    - pip._vendor.packaging.tags.interpreter_version
    - <builtin>.str
    - INTERPRETER_SHORT_NAMES.get
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.map
    - sysconfig.get_config_var
    - logger.debug
    - pip._vendor.packaging.tags._version_nodot
    - pip._vendor.packaging.tags._get_config_var
    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: supported.extend
    functionSourceFile: <builtin>
    functionUses: 33
    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: 3
    functionLinenumber: -1
    functionName: pip._internal.models.index
    functionSourceFile: pip._internal.models.index
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - urllib.parse.urlsplit
    - pip._internal.models.index.PackageIndex._url_for_path
    - pip._internal.models.index.PackageIndex.__init__
    - urllib.parse.urljoin
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - file_storage_domain
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 9
    functionName: pip._internal.models.index.PackageIndex.__init__
    functionSourceFile: pip._internal.models.index
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - urllib.parse.urljoin
    - pip._internal.models.index.PackageIndex._url_for_path
    - urllib.parse.urlsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 21
    functionName: pip._internal.models.index.PackageIndex._url_for_path
    functionSourceFile: pip._internal.models.index
    functionUses: 2
    functionsReached:
    - urllib.parse.urljoin
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.build_env
    functionSourceFile: pip._internal.build_env
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - a
    - b
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 31
    functionName: pip._internal.build_env._dedup
    functionSourceFile: pip._internal.build_env
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 36
    functionName: pip._internal.build_env._Prefix.__init__
    functionSourceFile: pip._internal.build_env
    functionUses: 12
    functionsReached:
    - pathlib.Path
    - sysconfig.get_paths
    - cmd.finalize_options
    - variables.get
    - itertools.dropwhile
    - <builtin>.str
    - distutils.command.install.install
    - <builtin>.tuple
    - unpatched.replace
    - pip._internal.build_env._dedup
    - os.path.normpath
    - logger.log
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.locations._distutils.get_scheme
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - <builtin>.setattr
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - old_v.name.startswith
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.locations._looks_like_debian_scheme
    - logger.warning
    - <builtin>.hasattr
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - part.startswith
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._looks_like_red_hat_scheme
    - new_v.name.startswith
    - part.lower
    - os.path.abspath
    - warning_contexts.append
    - match.group
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - os.path.isabs
    - p.endswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - pip._internal.locations._looks_like_bpo_44860
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - parts.pop
    - pip._internal.locations._warn_mismatched
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.getattr
    - <builtin>.all
    - format_str.format
    - sysconfig.is_python_build
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - letter.lower
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    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: source.is_dir
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 60
    functionName: pip._internal.build_env._get_system_sitepackages
    functionSourceFile: pip._internal.build_env
    functionUses: 12
    functionsReached:
    - pip._internal.locations._sysconfig.get_purelib
    - pip._internal.locations._warn_mismatched
    - pip._internal.locations._distutils.get_platlib
    - pathlib.Path
    - pip._internal.locations.get_purelib
    - pip._internal.locations._sysconfig.get_platlib
    - os.path.normcase
    - distutils.sysconfig.get_python_lib
    - sysconfig.get_paths
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - pip._internal.locations._warn_if_mismatch
    - pip._internal.locations._distutils.get_purelib
    - pip._internal.locations._looks_like_debian_scheme
    - logger.log
    - pip._internal.locations._log_context
    - site.getsitepackages
    - pip._internal.locations.get_platlib
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: site.getsitepackages
    functionSourceFile: site
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 83
    functionName: pip._internal.build_env.BuildEnvironment.__init__
    functionSourceFile: pip._internal.build_env
    functionUses: 11
    functionsReached:
    - pathlib.Path
    - sysconfig.get_paths
    - cmd.finalize_options
    - variables.get
    - itertools.dropwhile
    - pip._internal.locations._distutils.get_platlib
    - <builtin>.str
    - distutils.command.install.install
    - pip._internal.utils.temp_dir.TempDirectory._create
    - <builtin>.tuple
    - os.path.realpath
    - unpatched.replace
    - pip._internal.build_env._dedup
    - os.path.normpath
    - logger.log
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.locations._distutils.get_scheme
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - collections.OrderedDict
    - <builtin>.setattr
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - old_v.name.startswith
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.locations._looks_like_debian_scheme
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._internal.locations._sysconfig.get_purelib
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - textwrap.dedent
    - part.startswith
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._sysconfig.get_platlib
    - pip._internal.locations._looks_like_red_hat_scheme
    - new_v.name.startswith
    - part.lower
    - <builtin>.super
    - pip._internal.build_env._get_system_sitepackages
    - os.path.abspath
    - warning_contexts.append
    - os.path.exists
    - os.path.normcase
    - match.group
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.range
    - <builtin>.isinstance
    - pip._internal.locations.get_purelib
    - <builtin>.bool
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - os.path.isabs
    - pip._internal.locations._distutils.get_purelib
    - p.endswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - tempfile.mkdtemp
    - pip._internal.locations._looks_like_bpo_44860
    - <builtin>.len
    - sysconfig.get_config_var
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - pip._internal.locations.get_platlib
    - parts.pop
    - pip._internal.locations._warn_mismatched
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - collections.OrderedDict.values
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - distutils.sysconfig.get_python_lib
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - <builtin>.getattr
    - <builtin>.all
    - format_str.format
    - sysconfig.is_python_build
    - logger.debug
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - _tempdir_manager.enter_context
    - pip._vendor.packaging.version.parse
    - site.getsitepackages
    - _legacy_version_component_re.split
    - itertools.combinations_with_replacement
    - letter.lower
    - pip._internal.locations._warn_if_mismatch
    - pip._internal.build_env._Prefix.__init__
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - fp.write
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    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.values
    functionSourceFile: collections
    functionUses: 49
    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: 1
    functionLinenumber: 137
    functionName: pip._internal.build_env.BuildEnvironment.__enter__
    functionSourceFile: pip._internal.build_env
    functionUses: 0
    functionsReached:
    - os.pathsep.join
    - os.environ.update
    - old_path.split
    - path.extend
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: old_path.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.extend
    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: os.environ.update
    functionSourceFile: os
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 158
    functionName: pip._internal.build_env.BuildEnvironment.__exit__
    functionSourceFile: pip._internal.build_env
    functionUses: 0
    functionsReached:
    - os.environ.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.environ.pop
    functionSourceFile: os
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - reqs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 170
    functionName: pip._internal.build_env.BuildEnvironment.check_requirements
    functionSourceFile: pip._internal.build_env
    functionUses: 0
    functionsReached:
    - val.lower
    - pip._internal.metadata.get_environment
    - <builtin>.isinstance
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.metadata.get_default_environment
    - <builtin>.set
    - s.strip
    - missing.add
    - conflicting.add
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - urllib.parse.urlunparse
    - pip._internal.metadata.select_backend
    - typing.cast
    - typing.cast.Environment.from_paths
    - pip._internal.utils.misc.strtobool
    - req.marker.evaluate
    - req.extras.asList
    - match.group
    - env.get_distribution
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - warnings.warn
    - req.specifier.contains
    - specifiers.split
    - <builtin>.getattr
    - urllib.parse.urlparse
    - contextlib.suppress
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: env.get_distribution
    functionSourceFile: <builtin>
    functionUses: 11
    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: missing.add
    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: req.specifier.contains
    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: conflicting.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - finder
    - requirements
    - prefix_as_string
    - kind
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 204
    functionName: pip._internal.build_env.BuildEnvironment.install_requirements
    functionSourceFile: pip._internal.build_env
    functionUses: 0
    functionsReached:
    - args.extend
    - pathlib.Path
    - <builtin>.sum
    - format_control.replace
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - pip._internal.build_env.BuildEnvironment._install_requirements
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - importlib.resources.files.joinpath
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._vendor.certifi.core.where
    - importlib.resources.as_file
    - source.is_dir
    - time.time
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - pip._internal.build_env.get_runnable_pip
    - logger.getEffectiveLevel
    - os.path.dirname
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - args.append
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - importlib.resources.path.__enter__
    - importlib.resources.as_file.__enter__
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - os.fsdecode
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 12
    IfCount: 4
    argCount: 5
    argDefaultValues: []
    argNames:
    - pip_runnable
    - finder
    - requirements
    - prefix
    - kind
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 226
    functionName: pip._internal.build_env.BuildEnvironment._install_requirements
    functionSourceFile: pip._internal.build_env
    functionUses: 1
    functionsReached:
    - args.extend
    - <builtin>.sum
    - format_control.replace
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - importlib.resources.files.joinpath
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._vendor.certifi.core.where
    - importlib.resources.as_file
    - time.time
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - os.path.dirname
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - importlib.resources.path
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - importlib.resources.files
    - color_match.groups
    - sys.stdout.isatty
    - args.append
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - importlib.resources.path.__enter__
    - importlib.resources.as_file.__enter__
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logger.getEffectiveLevel
    functionSourceFile: <builtin>
    functionUses: 30
    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.append
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: format_control.replace
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: args.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 102
    functionName: pip._vendor.certifi.core.where
    functionSourceFile: pip._vendor.certifi.core
    functionUses: 6
    functionsReached:
    - importlib.resources.as_file
    - <builtin>.str
    - importlib.resources.path
    - importlib.resources.files.joinpath
    - os.path.dirname
    - os.path.join
    - importlib.resources.path.__enter__
    - importlib.resources.files
    - importlib.resources.as_file.__enter__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - message
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 116
    functionName: pip._internal.cli.spinners.open_spinner
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 23
    functionsReached:
    - sys.stdout.write
    - sys.stdout.isatty
    - time.time
    - logger.getEffectiveLevel
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - <builtin>.getattr
    - pip._internal.cli.spinners.hidden_cursor
    - itertools.cycle
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 21
    IfCount: 16
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa3ec820>
    - <ast.Constant object at 0x7f30fa3ec7f0>
    - <ast.Constant object at 0x7f30fa3ec7c0>
    - <ast.Constant object at 0x7f30fa3ec790>
    - <ast.Constant object at 0x7f30fa3ec760>
    - <ast.Constant object at 0x7f30fa3ec730>
    - <ast.Constant object at 0x7f30fa3ec700>
    - <ast.Constant object at 0x7f30fa3ec6d0>
    - <ast.Constant object at 0x7f30fa3ec6a0>
    argNames:
    - cmd
    - show_stdout
    - cwd
    - on_returncode
    - extra_ok_returncodes
    - extra_environ
    - unset_environ
    - spinner
    - log_failed_cmd
    - stdout_only
    - command_desc
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 56
    functionName: pip._internal.utils.subprocess.call_subprocess
    functionSourceFile: pip._internal.utils.subprocess
    functionUses: 69
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 289
    functionName: pip._internal.build_env.NoOpBuildEnvironment.__enter__
    functionSourceFile: pip._internal.build_env
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 292
    functionName: pip._internal.build_env.NoOpBuildEnvironment.__exit__
    functionSourceFile: pip._internal.build_env
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 300
    functionName: pip._internal.build_env.NoOpBuildEnvironment.cleanup
    functionSourceFile: pip._internal.build_env
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - finder
    - requirements
    - prefix_as_string
    - kind
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 303
    functionName: pip._internal.build_env.NoOpBuildEnvironment.install_requirements
    functionSourceFile: pip._internal.build_env
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: pip._vendor.certifi
    functionSourceFile: pip._vendor.certifi
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.certifi.core
    functionSourceFile: pip._vendor.certifi.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.resources.files.joinpath
    functionSourceFile: importlib
    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: importlib.resources.path.__enter__
    functionSourceFile: importlib
    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: importlib.resources.as_file.__enter__
    functionSourceFile: importlib
    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: 1
    functionLinenumber: 107
    functionName: pip._vendor.certifi.core.contents
    functionSourceFile: pip._vendor.certifi.core
    functionUses: 1
    functionsReached:
    - importlib.resources.files
    - importlib.resources.read_text
    - importlib.resources.files.joinpath
    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: importlib.resources.read_text
    functionSourceFile: importlib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ef5d3d90>
    - <ast.Constant object at 0x7f30ef5d3760>
    argNames:
    - package
    - resource
    - encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 91
    functionName: pip._vendor.certifi.core.read_text
    functionSourceFile: pip._vendor.certifi.core
    functionUses: 0
    functionsReached:
    - importlib.resources.as_file
    - <builtin>.str
    - importlib.resources.files.joinpath
    - importlib.resources.path
    - importlib.resources.files
    - os.path.dirname
    - <builtin>.open
    - os.path.join
    - importlib.resources.path.__enter__
    - data.read
    - importlib.resources.as_file.__enter__
    - pip._vendor.certifi.core.where
    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: data.read
    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: pip._internal.utils.subprocess
    functionSourceFile: pip._internal.utils.subprocess
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 17
    functionName: pip._internal.utils.subprocess.make_command
    functionSourceFile: pip._internal.utils.subprocess
    functionUses: 43
    functionsReached:
    - command_args.extend
    - <builtin>.isinstance
    - command_args.append
    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: command_args.extend
    functionSourceFile: <builtin>
    functionUses: 44
    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: command_args.append
    functionSourceFile: <builtin>
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: pip._internal.utils.subprocess.format_command_args
    functionSourceFile: pip._internal.utils.subprocess
    functionUses: 72
    functionsReached:
    - shlex.quote
    - <builtin>.isinstance
    - <builtin>.str
    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: shlex.quote
    functionSourceFile: shlex
    functionUses: 73
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: pip._internal.utils.subprocess.reveal_command_args
    functionSourceFile: pip._internal.utils.subprocess
    functionUses: 70
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.getEffectiveLevel
    functionSourceFile: typing
    functionUses: 70
    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: env.pop
    functionSourceFile: <builtin>
    functionUses: 70
    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: subprocess.Popen
    functionSourceFile: subprocess
    functionUses: 79
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.critical
    functionSourceFile: typing
    functionUses: 72
    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: proc.stdin.close
    functionSourceFile: <builtin>
    functionUses: 70
    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: proc.stdout.readline
    functionSourceFile: <builtin>
    functionUses: 70
    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: all_output.append
    functionSourceFile: <builtin>
    functionUses: 70
    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: spinner.spin
    functionSourceFile: <builtin>
    functionUses: 70
    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: proc.wait
    functionSourceFile: <builtin>
    functionUses: 70
    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: proc.stdout.close
    functionSourceFile: <builtin>
    functionUses: 70
    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: proc.communicate
    functionSourceFile: <builtin>
    functionUses: 74
    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: out.splitlines
    functionSourceFile: <builtin>
    functionUses: 70
    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: err.splitlines
    functionSourceFile: <builtin>
    functionUses: 70
    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: spinner.finish
    functionSourceFile: <builtin>
    functionUses: 70
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.error
    functionSourceFile: typing
    functionUses: 74
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.warning
    functionSourceFile: typing
    functionUses: 94
    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: pip._internal.cli.spinners
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 15
    functionName: pip._internal.cli.spinners.SpinnerInterface.spin
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - final_status
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 18
    functionName: pip._internal.cli.spinners.SpinnerInterface.finish
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9b12520>
    - <ast.Constant object at 0x7f30f9b124f0>
    - <ast.Constant object at 0x7f30f9b124c0>
    argNames:
    - self
    - message
    - file
    - spin_chars
    - min_update_interval_seconds
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 23
    functionName: pip._internal.cli.spinners.InteractiveSpinner.__init__
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 24
    functionsReached:
    - sys.stdout.write
    - pip._internal.cli.spinners.RateLimiter.__init__
    - <builtin>.getattr
    - itertools.cycle
    - pip._internal.utils.logging.get_indentation
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - min_update_interval_seconds
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 102
    functionName: pip._internal.cli.spinners.RateLimiter.__init__
    functionSourceFile: ''
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - status
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 43
    functionName: pip._internal.cli.spinners.InteractiveSpinner._write
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 2
    functionsReached:
    - sys.stdout.write
    - sys.stdout.flush
    - time.time
    - <builtin>.len
    - pip._internal.cli.spinners.RateLimiter.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 111
    functionName: pip._internal.cli.spinners.RateLimiter.reset
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 31
    functionsReached:
    - time.time
    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: 55
    functionName: pip._internal.cli.spinners.InteractiveSpinner.spin
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 0
    functionsReached:
    - sys.stdout.write
    - sys.stdout.flush
    - time.time
    - pip._internal.cli.spinners.RateLimiter.ready
    - <builtin>.len
    - pip._internal.cli.spinners.InteractiveSpinner._write
    - <builtin>.next
    - pip._internal.cli.spinners.RateLimiter.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 106
    functionName: pip._internal.cli.spinners.RateLimiter.ready
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 2
    functionsReached:
    - time.time
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - final_status
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 62
    functionName: pip._internal.cli.spinners.InteractiveSpinner.finish
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 0
    functionsReached:
    - sys.stdout.write
    - sys.stdout.flush
    - time.time
    - <builtin>.len
    - pip._internal.cli.spinners.InteractiveSpinner._write
    - pip._internal.cli.spinners.RateLimiter.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30db4992e0>
    argNames:
    - self
    - message
    - min_update_interval_seconds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 76
    functionName: pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 24
    functionsReached:
    - time.time
    - pip._internal.cli.spinners.RateLimiter.__init__
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - pip._internal.cli.spinners.RateLimiter.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - status
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 82
    functionName: pip._internal.cli.spinners.NonInteractiveSpinner._update
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 27
    functionsReached:
    - time.time
    - pip._internal.cli.spinners.RateLimiter.reset
    - logger.info
    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: 87
    functionName: pip._internal.cli.spinners.NonInteractiveSpinner.spin
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 0
    functionsReached:
    - pip._internal.cli.spinners.RateLimiter.ready
    - time.time
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - pip._internal.cli.spinners.RateLimiter.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - final_status
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 94
    functionName: pip._internal.cli.spinners.NonInteractiveSpinner.finish
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 24
    functionsReached:
    - time.time
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - pip._internal.cli.spinners.RateLimiter.reset
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.isatty
    functionSourceFile: sys
    functionUses: 36
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - file
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 144
    functionName: pip._internal.cli.spinners.hidden_cursor
    functionSourceFile: pip._internal.cli.spinners
    functionUses: 24
    functionsReached:
    - logger.getEffectiveLevel
    - sys.stdout.write
    - sys.stdout.isatty
    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: 2
    functionLinenumber: -1
    functionName: pip._internal.index.package_finder
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - typing.cast
    - pip._internal.utils._log.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dc685730>
    argNames:
    - link
    - version_info
    - ignore_requires_python
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 51
    functionName: pip._internal.index.package_finder._check_link_requires_python
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 7
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.frozenset
    - parsed.add
    - pip._internal.utils.packaging.check_requires_python
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - s.strip
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - typing.cast.verbose
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - <builtin>.map
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - specifiers.split
    - typing.cast.debug
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - requires_python
    - version_info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 14
    functionName: pip._internal.utils.packaging.check_requires_python
    functionSourceFile: pip._internal.utils.packaging
    functionUses: 11
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.frozenset
    - parsed.add
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - s.strip
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - <builtin>.map
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - specifiers.split
    - pip._vendor.packaging.version._legacy_cmpkey
    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: enum.auto
    functionSourceFile: enum
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.index.package_finder.LinkType
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached:
    - enum.auto
    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: pip._internal.index.package_finder.LinkEvaluator
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd9070>
    argNames:
    - self
    - project_name
    - canonical_name
    - formats
    - target_python
    - allow_yanked
    - ignore_requires_python
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 120
    functionName: pip._internal.index.package_finder.LinkEvaluator.__init__
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 2
    IfCount: 15
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - link
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 157
    functionName: pip._internal.index.package_finder.LinkEvaluator.evaluate_link
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 6
    functionsReached:
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - pip._vendor.packaging.tags._version_nodot
    - parsed.add
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - typing.cast.verbose
    - os.confstr
    - pip._internal.index.package_finder._extract_version_from_fragment
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - match.start
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - abi.lower
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - typing.cast.debug
    - stack.enter_context
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.wheel.Wheel.get_formatted_file_tags
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.enumerate
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - match.group
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.index.package_finder._find_name_version_sep
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._internal.utils.packaging.check_requires_python
    - pip._vendor.packaging.tags._normalize_string
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - version.lower
    - part.zfill
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._internal.models.target_python.TargetPython.get_sorted_tags
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - parts.pop
    - version_str.split
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._internal.models.target_python.TargetPython.get_unsorted_tags
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.index.package_finder._check_link_requires_python
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.version._parse_letter_version
    - link.splitext
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - abis.append
    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: link.splitext
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - fragment
    - canonical_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1012
    functionName: pip._internal.index.package_finder._extract_version_from_fragment
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 7
    functionsReached:
    - <builtin>.enumerate
    - typing.cast
    - pip._internal.index.package_finder._find_name_version_sep
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - candidates
    - hashes
    - project_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 252
    functionName: pip._internal.index.package_finder.filter_unallowed_hashes
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 2
    functionsReached:
    - link.is_hash_allowed
    - <builtin>.str
    - <builtin>.len
    - matches_or_no_digest.append
    - typing.cast.debug
    - <builtin>.list
    - non_matches.append
    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: link.is_hash_allowed
    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: non_matches.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: matches_or_no_digest.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d351cf10>
    - <ast.Constant object at 0x7f30d351cee0>
    argNames:
    - self
    - prefer_binary
    - allow_all_prereleases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 333
    functionName: pip._internal.index.package_finder.CandidatePreferences.__init__
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - candidates
    - applicable_candidates
    - best_candidate
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 352
    functionName: pip._internal.index.package_finder.BestCandidateResult.__init__
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 1
    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: 1
    functionLinenumber: 376
    functionName: pip._internal.index.package_finder.BestCandidateResult.iter_all
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    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: 380
    functionName: pip._internal.index.package_finder.BestCandidateResult.iter_applicable
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30d34e3730>
    - <ast.Constant object at 0x7f30d34e3700>
    - <ast.Constant object at 0x7f30d34e36d0>
    - <ast.Constant object at 0x7f30d34e36a0>
    - <ast.Constant object at 0x7f30d34e3670>
    argNames:
    - cls
    - project_name
    - target_python
    - prefer_binary
    - allow_all_prereleases
    - specifier
    - hashes
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 393
    functionName: pip._internal.index.package_finder.CandidateEvaluator.create
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 3
    functionsReached:
    - formats.append
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - supported.extend
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - pip._internal.models.target_python.TargetPython.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - abi.lower
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.enumerate
    - seen.update
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - match.group
    - warnings.warn
    - f.read
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._internal.models.target_python.TargetPython.get_sorted_tags
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - pip._internal.index.package_finder.CandidateEvaluator.__init__
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - specifiers.split
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - pip._internal.utils.misc.normalize_version_info
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30d350c9d0>
    - <ast.Constant object at 0x7f30d350c9a0>
    - <ast.Constant object at 0x7f30d350c970>
    argNames:
    - self
    - project_name
    - supported_tags
    - specifier
    - prefer_binary
    - allow_all_prereleases
    - hashes
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 428
    functionName: pip._internal.index.package_finder.CandidateEvaluator.__init__
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 4
    functionsReached:
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidates
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 454
    functionName: pip._internal.index.package_finder.CandidateEvaluator.get_applicable_candidates
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - spec.filter
    - <builtin>.bool
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - non_matches.append
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - pip._internal.index.package_finder.filter_unallowed_hashes
    - matches_or_no_digest.append
    - letter.lower
    - found_prereleases.append
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - link.is_hash_allowed
    - <builtin>.len
    - <builtin>.sorted
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.packaging.specifiers.SpecifierSet.filter
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - filtered.append
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - typing.cast.debug
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 490
    functionName: pip._internal.index.package_finder.CandidateEvaluator._sort_key
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached:
    - link.is_hash_allowed
    - <builtin>.int
    - pip._internal.models.wheel.Wheel.find_most_preferred_tag
    - interpreter.lower
    - pip._vendor.packaging.tags.Tag.__init__
    - <builtin>.len
    - pip._internal.models.wheel.Wheel.__init__
    - <builtin>.min
    - abi.lower
    - wheel_info.group
    - re.match
    - match.groups
    - <builtin>.hash
    - platform.lower
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidates
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 559
    functionName: pip._internal.index.package_finder.CandidateEvaluator.sort_best_candidate
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 1
    functionsReached:
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidates
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 572
    functionName: pip._internal.index.package_finder.CandidateEvaluator.compute_best_candidate
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - spec.filter
    - <builtin>.bool
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - non_matches.append
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.index.package_finder.filter_unallowed_hashes
    - <builtin>.str
    - matches_or_no_digest.append
    - letter.lower
    - found_prereleases.append
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - link.is_hash_allowed
    - <builtin>.len
    - <builtin>.sorted
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.index.package_finder.CandidateEvaluator.sort_best_candidate
    - pip._internal.index.package_finder.BestCandidateResult.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.filter
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.max
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - filtered.append
    - <builtin>.int
    - pip._internal.index.package_finder.CandidateEvaluator.get_applicable_candidates
    - match.group
    - _local_version_separators.split
    - part.isdigit
    - _legacy_version_replacement_map.get
    - warnings.warn
    - typing.cast.debug
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30d350b850>
    - <ast.Constant object at 0x7f30d350b820>
    - <ast.Constant object at 0x7f30d350b7f0>
    argNames:
    - self
    - link_collector
    - target_python
    - allow_yanked
    - format_control
    - candidate_prefs
    - ignore_requires_python
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 597
    functionName: pip._internal.index.package_finder.PackageFinder.__init__
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 14
    functionsReached:
    - <builtin>.set
    - pip._internal.models.format_control.FormatControl.__init__
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d3509a60>
    argNames:
    - cls
    - link_collector
    - selection_prefs
    - target_python
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 637
    functionName: pip._internal.index.package_finder.PackageFinder.create
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 13
    functionsReached:
    - pip._internal.models.target_python.TargetPython.__init__
    - pip._internal.models.format_control.FormatControl.__init__
    - pip._internal.utils.misc.normalize_version_info
    - <builtin>.len
    - pip._internal.index.package_finder.PackageFinder.__init__
    - <builtin>.map
    - <builtin>.set
    - typing.cast
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 669
    functionName: pip._internal.index.package_finder.PackageFinder.target_python
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - search_scope
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 677
    functionName: pip._internal.index.package_finder.PackageFinder.search_scope
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 681
    functionName: pip._internal.index.package_finder.PackageFinder.find_links
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 685
    functionName: pip._internal.index.package_finder.PackageFinder.index_urls
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 689
    functionName: pip._internal.index.package_finder.PackageFinder.trusted_hosts
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached:
    - pip._internal.utils.misc.build_netloc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 694
    functionName: pip._internal.index.package_finder.PackageFinder.allow_all_prereleases
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 697
    functionName: pip._internal.index.package_finder.PackageFinder.set_allow_all_prereleases
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 701
    functionName: pip._internal.index.package_finder.PackageFinder.prefer_binary
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 704
    functionName: pip._internal.index.package_finder.PackageFinder.set_prefer_binary
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 707
    functionName: pip._internal.index.package_finder.PackageFinder.requires_python_skipped_reasons
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached:
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - project_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 715
    functionName: pip._internal.index.package_finder.PackageFinder.make_link_evaluator
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 3
    functionsReached:
    - _canonicalize_regex.sub
    - typing.cast
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._internal.index.package_finder.LinkEvaluator.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - links
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 728
    functionName: pip._internal.index.package_finder.PackageFinder._sort_links
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 5
    functionsReached:
    - <builtin>.set
    - seen.add
    - no_eggs.append
    - eggs.append
    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: eggs.append
    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: no_eggs.append
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - link
    - result
    - detail
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 744
    functionName: pip._internal.index.package_finder.PackageFinder._log_skipped_link
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 6
    functionsReached:
    - typing.cast.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - link_evaluator
    - link
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 752
    functionName: pip._internal.index.package_finder.PackageFinder.get_install_candidate
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 5
    functionsReached:
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - supported.extend
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - typing.cast.verbose
    - os.confstr
    - pip._internal.index.package_finder._extract_version_from_fragment
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - match.start
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - abi.lower
    - pip._vendor.packaging.tags.mac_platforms
    - stack.enter_context
    - typing.cast.debug
    - pip._vendor.packaging.tags.compatible_tags
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - pip._internal.index.package_finder.LinkEvaluator.evaluate_link
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.wheel.Wheel.get_formatted_file_tags
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.enumerate
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - match.group
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.index.package_finder._find_name_version_sep
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._internal.utils.packaging.check_requires_python
    - pip._vendor.packaging.tags._normalize_string
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - version.lower
    - part.zfill
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._internal.models.target_python.TargetPython.get_sorted_tags
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - parts.pop
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - sysconfig.get_platform
    - <builtin>.int
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._internal.models.target_python.TargetPython.get_unsorted_tags
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - pip._internal.index.package_finder.PackageFinder._log_skipped_link
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.index.package_finder._check_link_requires_python
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.models.candidate.InstallationCandidate.__init__
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.version._parse_letter_version
    - link.splitext
    - <builtin>.reversed
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - name
    - version
    - link
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 12
    functionName: pip._internal.models.candidate.InstallationCandidate.__init__
    functionSourceFile: pip._internal.models.candidate
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - <builtin>.super
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.reversed
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - link_evaluator
    - links
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 770
    functionName: pip._internal.index.package_finder.PackageFinder.evaluate_links
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 4
    functionsReached:
    - pip._internal.index.package_finder.PackageFinder._sort_links
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - supported.extend
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - eggs.append
    - <builtin>.tuple
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - typing.cast.verbose
    - os.confstr
    - pip._internal.index.package_finder._extract_version_from_fragment
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - match.start
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - abi.lower
    - pip._vendor.packaging.tags.mac_platforms
    - stack.enter_context
    - typing.cast.debug
    - pip._vendor.packaging.tags.compatible_tags
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - pip._internal.index.package_finder.LinkEvaluator.evaluate_link
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.wheel.Wheel.get_formatted_file_tags
    - candidates.append
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.enumerate
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - match.group
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.index.package_finder._find_name_version_sep
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._internal.utils.packaging.check_requires_python
    - pip._vendor.packaging.tags._normalize_string
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - version.lower
    - no_eggs.append
    - part.zfill
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._internal.models.target_python.TargetPython.get_sorted_tags
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - parts.pop
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - sysconfig.get_platform
    - <builtin>.int
    - part.isdigit
    - seen.add
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._internal.models.target_python.TargetPython.get_unsorted_tags
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - pip._internal.index.package_finder.PackageFinder._log_skipped_link
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.index.package_finder._check_link_requires_python
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.models.candidate.InstallationCandidate.__init__
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.version._parse_letter_version
    - link.splitext
    - <builtin>.reversed
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - abis.append
    - pip._internal.index.package_finder.PackageFinder.get_install_candidate
    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: candidates.append
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - project_url
    - link_evaluator
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 784
    functionName: pip._internal.index.package_finder.PackageFinder.process_project_url
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached:
    - pip._internal.index.collector._get_encoding_from_headers
    - pip._internal.index.package_finder.PackageFinder._sort_links
    - pip._internal.index.collector.IndexContent.__init__
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - link.url.split
    - pip._internal.utils.misc._redact_netloc
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - result._replace
    - pip._vendor.packaging._musllinux.platform_tags
    - base.lower
    - <builtin>.str
    - itertools.chain
    - pip._internal.index.collector._make_index_content
    - pip._internal.models.link._ensure_quoted_url
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - eggs.append
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.utils.logging.indent_log
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - hashes.items
    - pip._internal.models.link._clean_url_path
    - typing.cast.verbose
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - pip._internal.index.package_finder._extract_version_from_fragment
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - session.get
    - os.path.normpath
    - url.endswith
    - pip._internal.utils.misc.pairwise
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.index.collector._get_simple_response
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.utils.misc.redact_auth_from_url
    - match.start
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - urllib.parse.quote
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - pip._vendor.packaging.tags.generic_tags
    - abi.lower
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - typing.cast.debug
    - stack.enter_context
    - urllib.parse.urlparse
    - pip._internal.index.collector._ensure_api_response
    - logger.warning
    - <builtin>.hasattr
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - pip._internal.models.link.supported_hashes
    - pip._internal.index.package_finder.LinkEvaluator.evaluate_link
    - version_string.split
    - email.message.Message
    - pip._vendor.packaging._musllinux._get_musl_version
    - part.startswith
    - content_type_l.startswith
    - wheel_info.group
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.wheel.Wheel.get_formatted_file_tags
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - candidates.append
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.enumerate
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.utils.misc.split_auth_from_netloc
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - urllib.parse.urlunparse
    - pip._internal.models.link.Link.from_json
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - cleaned_parts.append
    - <builtin>.iter
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - os.path.isdir
    - os.path.abspath
    - resp.reason.decode
    - abis.insert
    - output.splitlines
    - pip._internal.utils.logging.get_indentation
    - struct.calcsize
    - match.group
    - pip._internal.index.collector.HTMLLinkParser.__init__
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.index.package_finder._find_name_version_sep
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - link_hash.as_dict
    - pip._vendor.packaging.tags.cpython_tags
    - resp.headers.get
    - n.strip
    - pip._internal.utils.packaging.check_requires_python
    - pip._vendor.packaging.tags._normalize_string
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - version.lower
    - no_eggs.append
    - part.zfill
    - html.parser.HTMLParser.anchors.get
    - url.lower
    - html.parser.HTMLParser.feed
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._internal.index.collector._handle_get_simple_fail
    - pip._internal.models.target_python.TargetPython.get_sorted_tags
    - file.read
    - session.head
    - pip._internal.index.package_finder.PackageFinder.evaluate_links
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - metadata_info.partition
    - page.content.decode
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - auth.split
    - <builtin>.len
    - pip._internal.models.link.Link.from_element
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - parts.pop
    - page.content_type.lower
    - version_str.split
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - seen.add
    - urllib.request.url2pathname
    - _legacy_version_replacement_map.get
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - content_type.lower
    - pip._internal.utils.misc._transform_url
    - <builtin>.open
    - specifiers.split
    - <builtin>.getattr
    - linux.split
    - m.get_param
    - pip._vendor.packaging._manylinux._glibc_version_string
    - urllib.parse.unquote
    - operator.itemgetter
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - file_data.get
    - pip._internal.utils.misc.redact_netloc
    - logger.debug
    - <builtin>.frozenset
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - response.headers.get
    - pip._vendor.packaging.tags.platform_tags
    - json.loads
    - pip._internal.index.collector.LinkCollector.fetch_response
    - reserved.upper
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - pip._internal.network.utils.raise_for_status
    - <builtin>.set
    - arch.partition
    - m.group
    - pip._internal.index.collector.parse_links
    - linux.replace
    - pip._internal.models.target_python.TargetPython.get_unsorted_tags
    - itertools.zip_longest
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.index.collector._ensure_api_header
    - pip._internal.index.package_finder.PackageFinder._log_skipped_link
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - pip._vendor.packaging.tags._linux_platforms
    - contextlib.ExitStack
    - pip._internal.index.package_finder._check_link_requires_python
    - pip._internal.utils.deprecation.deprecated
    - urllib.parse.urlunsplit
    - pip._vendor.packaging.version._parse_local_version
    - _reserved_chars_re.split
    - pip._internal.models.candidate.InstallationCandidate.__init__
    - pip._internal.index.collector._match_vcs_scheme
    - pip._internal.models.link._clean_file_url_path
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.version._parse_letter_version
    - data.get
    - link.splitext
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._internal.models.link._clean_url_path_part
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.index.collector._get_index_content
    - version_str.decode
    - pip._internal.utils.misc.splitext
    - abis.append
    - pip._internal.index.package_finder.PackageFinder.get_install_candidate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 452
    functionName: pip._internal.index.collector.LinkCollector.fetch_response
    functionSourceFile: pip._internal.index.collector
    functionUses: 1
    functionsReached:
    - pip._internal.index.collector._get_encoding_from_headers
    - pip._internal.index.collector.IndexContent.__init__
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - link.url.split
    - pip._internal.utils.misc._redact_netloc
    - match.groups
    - itertools.dropwhile
    - base.lower
    - <builtin>.str
    - pip._internal.index.collector._make_index_content
    - <builtin>.tuple
    - session.get
    - os.path.normpath
    - url.endswith
    - pip._internal.index.collector._get_simple_response
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.utils.misc.redact_auth_from_url
    - urllib.parse.quote
    - urllib.parse.urljoin
    - pip._internal.index.collector._ensure_api_response
    - urllib.parse.urlparse
    - logger.warning
    - cls._hash_url_fragment_re.search
    - email.message.Message
    - part.startswith
    - content_type_l.startswith
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.utils.misc.split_auth_from_netloc
    - part.lower
    - <builtin>.super
    - os.path.isdir
    - os.path.abspath
    - resp.reason.decode
    - match.group
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - link_hash.as_dict
    - resp.headers.get
    - version.lower
    - part.zfill
    - url.lower
    - pip._internal.index.collector._handle_get_simple_fail
    - session.head
    - <builtin>.list
    - pip._internal.models.link.Link._egg_fragment
    - auth.split
    - <builtin>.len
    - typing.cast
    - parts.pop
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - urllib.request.url2pathname
    - _legacy_version_replacement_map.get
    - content_type.lower
    - pip._internal.utils.misc._transform_url
    - m.get_param
    - urllib.parse.unquote
    - posixpath.splitext
    - format_str.format
    - pip._internal.utils.misc.redact_netloc
    - logger.debug
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - response.headers.get
    - letter.lower
    - pip._internal.network.utils.raise_for_status
    - pip._internal.index.collector._ensure_api_header
    - pip._internal.utils.deprecation.deprecated
    - urllib.parse.urlunsplit
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.index.collector._match_vcs_scheme
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._internal.index.collector._get_index_content
    - pip._internal.utils.misc.splitext
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - page
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 224
    functionName: pip._internal.index.collector.parse_links
    functionSourceFile: pip._internal.index.collector
    functionUses: 3
    functionsReached:
    - urllib.parse.unquote
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - pip._internal.models.link.supported_hashes
    - pip._internal.utils.urls.path_to_url
    - file_data.get
    - link_hash.as_dict
    - format_str.format
    - logger.debug
    - part.startswith
    - content_type_l.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - html.parser.HTMLParser.anchors.get
    - _legacy_version_component_re.split
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - result._replace
    - json.loads
    - reserved.upper
    - itertools.chain
    - <builtin>.str
    - html.parser.HTMLParser.feed
    - pip._internal.models.link._ensure_quoted_url
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - itertools.zip_longest
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - hashes.items
    - metadata_info.partition
    - pip._internal.models.link._clean_url_path
    - page.content.decode
    - pip._internal.models.link.Link._egg_fragment
    - urllib.parse.urlunparse
    - pip._internal.models.link.Link.from_json
    - pip._internal.models.link.Link.from_element
    - cleaned_parts.append
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - _reserved_chars_re.split
    - os.path.normpath
    - pip._internal.utils.misc.pairwise
    - <builtin>.iter
    - os.path.abspath
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.models.link._clean_file_url_path
    - parts.pop
    - page.content_type.lower
    - data.get
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.models.link._clean_url_path_part
    - urllib.parse.urlsplit
    - <builtin>.int
    - match.group
    - part.isdigit
    - urllib.request.url2pathname
    - _legacy_version_replacement_map.get
    - pip._internal.index.collector.HTMLLinkParser.__init__
    - urllib.parse.quote
    - warnings.warn
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    - cls._hash_url_fragment_re.search
    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: pip._internal.index.package_finder.PackageFinder
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached:
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - project_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 806
    functionName: pip._internal.index.package_finder.PackageFinder.find_all_candidates
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 2
    functionsReached:
    - pip._internal.index.package_finder.PackageFinder._sort_links
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - logger.isEnabledFor
    - <builtin>.str
    - itertools.chain
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - eggs.append
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - typing.cast.verbose
    - os.confstr
    - typing.cast.isEnabledFor
    - pip._internal.index.package_finder._extract_version_from_fragment
    - <builtin>.sorted
    - pip._internal.index.sources._LocalFileSource.__init__
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - collections.OrderedDict
    - match.start
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - pip._vendor.packaging.tags.generic_tags
    - abi.lower
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - typing.cast.debug
    - stack.enter_context
    - logger.warning
    - <builtin>.hasattr
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._internal.index.sources.build_source
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - pip._internal.index.sources._FlatDirectorySource.__init__
    - formats.extend
    - pip._internal.index.package_finder.LinkEvaluator.evaluate_link
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - source.file_links
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.wheel.Wheel.get_formatted_file_tags
    - pip._internal.utils.urls.url_to_path
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - candidates.append
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.enumerate
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - location.startswith
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - pip._internal.index.sources._FlatDirectoryToUrls.__init__
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - pip._internal.index.collector.LinkCollector.collect_sources
    - os.path.isdir
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - itertools.chain.from_iterable
    - struct.calcsize
    - os.path.exists
    - match.group
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - glibc_max_list.append
    - pip._internal.index.package_finder._find_name_version_sep
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - link_hash.as_dict
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._internal.utils.packaging.check_requires_python
    - pip._vendor.packaging.tags._normalize_string
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - version.lower
    - no_eggs.append
    - part.zfill
    - collections.defaultdict
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._internal.models.target_python.TargetPython.get_sorted_tags
    - file.read
    - pip._internal.index.package_finder.PackageFinder.evaluate_links
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - os.path.isfile
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - source.page_candidates
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - parts.pop
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - seen.add
    - urllib.request.url2pathname
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - paths.append
    - <builtin>.open
    - specifiers.split
    - pip._internal.index.package_finder.LinkEvaluator.__init__
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - pip._internal.index.sources._IndexDirectorySource.__init__
    - interpreter.lower
    - format_str.format
    - pip._internal.index.package_finder.PackageFinder.make_link_evaluator
    - logger.debug
    - <builtin>.frozenset
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - url.split
    - arch.partition
    - pip._internal.index.sources._RemoteFileSource.__init__
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._internal.models.target_python.TargetPython.get_unsorted_tags
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - typing.NamedTuple.__init__
    - pip._internal.index.package_finder.PackageFinder._log_skipped_link
    - pip._internal.utils.compatibility_tags._get_python_version
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.index.package_finder._check_link_requires_python
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.models.candidate.InstallationCandidate.__init__
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.version._parse_letter_version
    - link.splitext
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - functools.partial
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - abis.append
    - pip._internal.index.package_finder.PackageFinder.get_install_candidate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - project_name
    - candidates_from_page
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 458
    functionName: pip._internal.index.collector.LinkCollector.collect_sources
    functionSourceFile: pip._internal.index.collector
    functionUses: 3
    functionsReached:
    - pip._internal.index.sources.build_source
    - pip._internal.index.sources._FlatDirectorySource.__init__
    - pip._internal.index.sources._IndexDirectorySource.__init__
    - pip._internal.models.link.Link.__init__
    - <builtin>.isinstance
    - pip._internal.utils.urls.path_to_url
    - format_str.format
    - link_hash.as_dict
    - logger.debug
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - part.zfill
    - version.lower
    - pip._internal.utils.urls.url_to_path
    - collections.defaultdict
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - _legacy_version_component_re.split
    - logger.isEnabledFor
    - <builtin>.str
    - itertools.chain
    - url.split
    - letter.lower
    - pip._internal.index.sources._RemoteFileSource.__init__
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - location.startswith
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._internal.models.link.Link._egg_fragment
    - typing.NamedTuple.__init__
    - os.path.isfile
    - <builtin>.len
    - pip._internal.index.sources._LocalFileSource.__init__
    - pip._internal.index.sources._FlatDirectoryToUrls.__init__
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.isdir
    - os.path.abspath
    - typing.cast
    - cls._hash_url_fragment_re.search
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - os.path.exists
    - match.group
    - collections.OrderedDict
    - urllib.request.url2pathname
    - warnings.warn
    - _legacy_version_replacement_map.get
    - urllib.parse.urljoin
    - pip._internal.utils.urls.get_url_scheme
    - pip._vendor.packaging.version._legacy_cmpkey
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    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: source.page_candidates
    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: source.file_links
    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: typing.cast.isEnabledFor
    functionSourceFile: typing
    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: paths.append
    functionSourceFile: <builtin>
    functionUses: 6
    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 0x7f30e584c280>
    - <ast.Constant object at 0x7f30e584c250>
    argNames:
    - self
    - project_name
    - specifier
    - hashes
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 858
    functionName: pip._internal.index.package_finder.PackageFinder.make_candidate_evaluator
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 2
    functionsReached:
    - formats.append
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - supported.extend
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - pip._internal.models.target_python.TargetPython.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - abi.lower
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.enumerate
    - seen.update
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - match.group
    - warnings.warn
    - f.read
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._internal.models.target_python.TargetPython.get_sorted_tags
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - pip._internal.index.package_finder.CandidateEvaluator.__init__
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - specifiers.split
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - pip._internal.utils.misc.normalize_version_info
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - pip._internal.index.package_finder.CandidateEvaluator.create
    - abis.append
    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 0x7f30e58409d0>
    - <ast.Constant object at 0x7f30e58409a0>
    argNames:
    - self
    - project_name
    - specifier
    - hashes
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 876
    functionName: pip._internal.index.package_finder.PackageFinder.find_best_candidate
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 1
    functionsReached:
    - pip._internal.index.package_finder.PackageFinder._sort_links
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - logger.isEnabledFor
    - <builtin>.str
    - itertools.chain
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - eggs.append
    - <builtin>.tuple
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - pip._internal.models.wheel.Wheel.supported
    - pip._internal.models.target_python.TargetPython.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - typing.cast.verbose
    - os.confstr
    - typing.cast.isEnabledFor
    - pip._internal.index.package_finder._extract_version_from_fragment
    - <builtin>.sorted
    - pip._internal.index.sources._LocalFileSource.__init__
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - collections.OrderedDict
    - match.start
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - pip._vendor.packaging.tags.generic_tags
    - abi.lower
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - typing.cast.debug
    - stack.enter_context
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - pip._internal.index.sources.build_source
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - pip._internal.index.sources._FlatDirectorySource.__init__
    - formats.extend
    - pip._internal.index.package_finder.LinkEvaluator.evaluate_link
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - part.startswith
    - wheel_info.group
    - source.file_links
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.wheel.Wheel.get_formatted_file_tags
    - pip._internal.utils.urls.url_to_path
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - candidates.append
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.enumerate
    - pip._internal.index.package_finder.PackageFinder.make_candidate_evaluator
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - location.startswith
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - pip._internal.index.sources._FlatDirectoryToUrls.__init__
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - pip._internal.index.collector.LinkCollector.collect_sources
    - os.path.isdir
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - itertools.chain.from_iterable
    - struct.calcsize
    - match.group
    - os.path.exists
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.index.package_finder._find_name_version_sep
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - link_hash.as_dict
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.utils.packaging.check_requires_python
    - version.lower
    - no_eggs.append
    - part.zfill
    - collections.defaultdict
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._internal.models.target_python.TargetPython.get_sorted_tags
    - file.read
    - pip._internal.index.package_finder.PackageFinder.evaluate_links
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.index.package_finder.PackageFinder.find_all_candidates
    - os.path.isfile
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - source.page_candidates
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._internal.index.package_finder.CandidateEvaluator.__init__
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - parts.pop
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - urllib.parse.urlsplit
    - seen.add
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - urllib.request.url2pathname
    - paths.append
    - <builtin>.open
    - candidate_evaluator.compute_best_candidate
    - specifiers.split
    - pip._internal.index.package_finder.LinkEvaluator.__init__
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - pip._internal.index.sources._IndexDirectorySource.__init__
    - interpreter.lower
    - pip._internal.utils.misc.normalize_version_info
    - format_str.format
    - pip._internal.index.package_finder.PackageFinder.make_link_evaluator
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - url.split
    - letter.lower
    - arch.partition
    - <builtin>.set
    - pip._internal.index.sources._RemoteFileSource.__init__
    - m.group
    - linux.replace
    - pip._internal.models.target_python.TargetPython.get_unsorted_tags
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - typing.NamedTuple.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - contextlib.ExitStack
    - pip._internal.index.package_finder.PackageFinder._log_skipped_link
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.index.package_finder._check_link_requires_python
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.models.candidate.InstallationCandidate.__init__
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.version._parse_letter_version
    - link.splitext
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - functools.partial
    - version_str.decode
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.index.package_finder.CandidateEvaluator.create
    - abis.append
    - pip._internal.index.package_finder.PackageFinder.get_install_candidate
    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: candidate_evaluator.compute_best_candidate
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - req
    - upgrade
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 18
    functionLinenumber: 898
    functionName: pip._internal.index.package_finder.PackageFinder.find_requirement
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 0
    functionsReached:
    - pip._internal.index.package_finder.PackageFinder._sort_links
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - logger.isEnabledFor
    - <builtin>.str
    - itertools.chain
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - eggs.append
    - <builtin>.tuple
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - pip._internal.models.wheel.Wheel.supported
    - pip._internal.models.target_python.TargetPython.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - typing.cast.verbose
    - os.confstr
    - typing.cast.isEnabledFor
    - pip._internal.index.package_finder._extract_version_from_fragment
    - <builtin>.sorted
    - pip._internal.index.sources._LocalFileSource.__init__
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - collections.OrderedDict
    - match.start
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - typing.cast.debug
    - abi.lower
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - pip._internal.index.sources.build_source
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - pip._internal.index.sources._FlatDirectorySource.__init__
    - formats.extend
    - pip._internal.index.package_finder.LinkEvaluator.evaluate_link
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - source.file_links
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.wheel.Wheel.get_formatted_file_tags
    - pip._internal.utils.urls.url_to_path
    - best_candidate_result.iter_all
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - candidates.append
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.enumerate
    - pip._internal.index.package_finder.PackageFinder.make_candidate_evaluator
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - location.startswith
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - pip._internal.index.package_finder.PackageFinder.find_requirement._should_install_candidate
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - pip._internal.index.sources._FlatDirectoryToUrls.__init__
    - req.hashes
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - pip._internal.index.collector.LinkCollector.collect_sources
    - os.path.isdir
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - itertools.chain.from_iterable
    - struct.calcsize
    - match.group
    - os.path.exists
    - warnings.warn
    - f.read
    - typing.cast.critical
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.index.package_finder._find_name_version_sep
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._internal.index.package_finder.PackageFinder.find_requirement._format_versions
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - link_hash.as_dict
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.utils.packaging.check_requires_python
    - version.lower
    - no_eggs.append
    - part.zfill
    - collections.defaultdict
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._internal.models.target_python.TargetPython.get_sorted_tags
    - file.read
    - pip._internal.index.package_finder.PackageFinder.evaluate_links
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.index.package_finder.PackageFinder.find_all_candidates
    - os.path.isfile
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - source.page_candidates
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._internal.index.package_finder.CandidateEvaluator.__init__
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - parts.pop
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - urllib.parse.urlsplit
    - seen.add
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - urllib.request.url2pathname
    - _legacy_version_replacement_map.get
    - paths.append
    - <builtin>.open
    - candidate_evaluator.compute_best_candidate
    - specifiers.split
    - pip._internal.index.package_finder.LinkEvaluator.__init__
    - pip._internal.index.package_finder.PackageFinder.find_best_candidate
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - pip._internal.index.sources._IndexDirectorySource.__init__
    - interpreter.lower
    - pip._internal.utils.misc.normalize_version_info
    - format_str.format
    - pip._internal.index.package_finder.PackageFinder.make_link_evaluator
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - url.split
    - letter.lower
    - arch.partition
    - <builtin>.set
    - pip._internal.index.sources._RemoteFileSource.__init__
    - m.group
    - linux.replace
    - pip._internal.models.target_python.TargetPython.get_unsorted_tags
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - typing.NamedTuple.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - contextlib.ExitStack
    - pip._internal.index.package_finder.PackageFinder._log_skipped_link
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.index.package_finder._check_link_requires_python
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.models.candidate.InstallationCandidate.__init__
    - pip._internal.utils.compatibility_tags.get_supported
    - best_candidate_result.iter_applicable
    - pip._vendor.packaging.version._parse_letter_version
    - link.splitext
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - functools.partial
    - version_str.decode
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.index.package_finder.CandidateEvaluator.create
    - abis.append
    - pip._internal.index.package_finder.PackageFinder.get_install_candidate
    linkageType: pythonLinkage
    raised:
    - DistributionNotFound
    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.hashes
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cand_iter
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 919
    functionName: pip._internal.index.package_finder.PackageFinder.find_requirement._format_versions
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 1
    functionsReached:
    - <builtin>.sorted
    - <builtin>.str
    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: best_candidate_result.iter_all
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - candidate
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 944
    functionName: pip._internal.index.package_finder.PackageFinder.find_requirement._should_install_candidate
    functionSourceFile: pip._internal.index.package_finder
    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: best_candidate_result.iter_applicable
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - fragment
    - canonical_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 986
    functionName: pip._internal.index.package_finder._find_name_version_sep
    functionSourceFile: pip._internal.index.package_finder
    functionUses: 8
    functionsReached:
    - _canonicalize_regex.sub
    - typing.cast
    - <builtin>.enumerate
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.utils.unpacking
    functionSourceFile: pip._internal.utils.unpacking
    functionUses: 0
    functionsReached:
    - logger.debug
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: pip._internal.utils.unpacking.current_umask
    functionSourceFile: pip._internal.utils.unpacking
    functionUses: 17
    functionsReached:
    - os.umask
    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.umask
    functionSourceFile: os
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: pip._internal.utils.unpacking.split_leading_dir
    functionSourceFile: pip._internal.utils.unpacking
    functionUses: 13
    functionsReached:
    - path.find
    - path.lstrip
    - path.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.lstrip
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.find
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - paths
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 62
    functionName: pip._internal.utils.unpacking.has_leading_dir
    functionSourceFile: pip._internal.utils.unpacking
    functionUses: 12
    functionsReached:
    - path.find
    - pip._internal.utils.unpacking.split_leading_dir
    - path.lstrip
    - path.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - directory
    - target
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 77
    functionName: pip._internal.utils.unpacking.is_within_directory
    functionSourceFile: pip._internal.utils.unpacking
    functionUses: 15
    functionsReached:
    - os.path.abspath
    - os.path.commonprefix
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 88
    functionName: pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    functionSourceFile: pip._internal.utils.unpacking
    functionUses: 13
    functionsReached:
    - os.chmod
    - pip._internal.utils.unpacking.current_umask
    - os.umask
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - info
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 96
    functionName: pip._internal.utils.unpacking.zip_item_is_executable
    functionSourceFile: pip._internal.utils.unpacking
    functionUses: 12
    functionsReached:
    - <builtin>.bool
    - stat.S_ISREG
    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: stat.S_ISREG
    functionSourceFile: stat
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d3aeb460>
    argNames:
    - filename
    - location
    - flatten
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 103
    functionName: pip._internal.utils.unpacking.unzip_file
    functionSourceFile: pip._internal.utils.unpacking
    functionUses: 10
    functionsReached:
    - path.lstrip
    - <builtin>.bool
    - pip._internal.utils.unpacking.is_within_directory
    - zipfp.close
    - path.split
    - shutil.copyfileobj
    - zip.open
    - zip.namelist
    - fn.endswith
    - os.path.join
    - os.makedirs
    - os.chmod
    - zipfile.ZipFile
    - os.umask
    - pip._internal.utils.unpacking.has_leading_dir
    - zip.infolist
    - os.path.abspath
    - stat.S_ISREG
    - os.path.commonprefix
    - fp.close
    - pip._internal.utils.unpacking.current_umask
    - pip._internal.utils.unpacking.split_leading_dir
    - os.path.dirname
    - <builtin>.open
    - pip._internal.utils.unpacking.zip_item_is_executable
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - pip._internal.utils.misc.ensure_dir
    - path.find
    linkageType: pythonLinkage
    raised:
    - InstallationError
    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: zip.namelist
    functionSourceFile: <builtin>
    functionUses: 11
    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: zip.infolist
    functionSourceFile: <builtin>
    functionUses: 11
    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: fn.endswith
    functionSourceFile: <builtin>
    functionUses: 11
    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: zip.open
    functionSourceFile: <builtin>
    functionUses: 11
    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: shutil.copyfileobj
    functionSourceFile: shutil
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fp.close
    functionSourceFile: <builtin>
    functionUses: 41
    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: zipfp.close
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 13
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - filename
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 149
    functionName: pip._internal.utils.unpacking.untar_file
    functionSourceFile: pip._internal.utils.unpacking
    functionUses: 10
    functionsReached:
    - path.lstrip
    - pip._internal.utils.unpacking.is_within_directory
    - path.split
    - shutil.copyfileobj
    - tar.extractfile
    - filename.lower
    - tar._extract_member
    - os.path.join
    - tar.getmembers
    - os.makedirs
    - os.chmod
    - member.issym
    - os.umask
    - pip._internal.utils.unpacking.has_leading_dir
    - tar.utime
    - tar.close
    - os.path.abspath
    - member.isdir
    - os.path.commonprefix
    - fp.close
    - pip._internal.utils.unpacking.current_umask
    - pip._internal.utils.unpacking.split_leading_dir
    - os.path.dirname
    - <builtin>.open
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - tarfile.open
    - logger.warning
    - pip._internal.utils.misc.ensure_dir
    - path.find
    linkageType: pythonLinkage
    raised:
    - InstallationError
    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: filename.lower
    functionSourceFile: <builtin>
    functionUses: 11
    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: tarfile.open
    functionSourceFile: tarfile
    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: tar.getmembers
    functionSourceFile: <builtin>
    functionUses: 11
    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: member.isdir
    functionSourceFile: <builtin>
    functionUses: 11
    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: member.issym
    functionSourceFile: <builtin>
    functionUses: 11
    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: tar._extract_member
    functionSourceFile: <builtin>
    functionUses: 11
    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: tar.extractfile
    functionSourceFile: <builtin>
    functionUses: 11
    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: tar.utime
    functionSourceFile: <builtin>
    functionUses: 11
    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: tar.close
    functionSourceFile: <builtin>
    functionUses: 11
    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: tarfile.is_tarfile
    functionSourceFile: tarfile
    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: logger.critical
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.models.candidate
    functionSourceFile: pip._internal.models.candidate
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 22
    functionName: pip._internal.models.candidate.InstallationCandidate.__repr__
    functionSourceFile: pip._internal.models.candidate
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 29
    functionName: pip._internal.models.candidate.InstallationCandidate.__str__
    functionSourceFile: pip._internal.models.candidate
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.utils.models
    functionSourceFile: pip._internal.utils.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - defining_class
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 13
    functionName: pip._internal.utils.models.KeyBasedCompareMixin.__init__
    functionSourceFile: pip._internal.utils.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 17
    functionName: pip._internal.utils.models.KeyBasedCompareMixin.__hash__
    functionSourceFile: pip._internal.utils.models
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 20
    functionName: pip._internal.utils.models.KeyBasedCompareMixin.__lt__
    functionSourceFile: pip._internal.utils.models
    functionUses: 0
    functionsReached:
    - operator.__eq__
    - <builtin>.isinstance
    - operator.__le__
    - operator.__lt__
    - pip._internal.utils.models.KeyBasedCompareMixin._compare
    - operator.__ge__
    - operator.__gt__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - other
    - method
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._internal.utils.models.KeyBasedCompareMixin._compare
    functionSourceFile: pip._internal.utils.models
    functionUses: 5
    functionsReached:
    - operator.__eq__
    - <builtin>.isinstance
    - operator.__le__
    - operator.__lt__
    - operator.__ge__
    - operator.__gt__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 23
    functionName: pip._internal.utils.models.KeyBasedCompareMixin.__le__
    functionSourceFile: pip._internal.utils.models
    functionUses: 0
    functionsReached:
    - operator.__eq__
    - <builtin>.isinstance
    - operator.__le__
    - operator.__lt__
    - pip._internal.utils.models.KeyBasedCompareMixin._compare
    - operator.__ge__
    - operator.__gt__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 26
    functionName: pip._internal.utils.models.KeyBasedCompareMixin.__gt__
    functionSourceFile: pip._internal.utils.models
    functionUses: 0
    functionsReached:
    - operator.__eq__
    - <builtin>.isinstance
    - operator.__le__
    - operator.__lt__
    - pip._internal.utils.models.KeyBasedCompareMixin._compare
    - operator.__ge__
    - operator.__gt__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 29
    functionName: pip._internal.utils.models.KeyBasedCompareMixin.__ge__
    functionSourceFile: pip._internal.utils.models
    functionUses: 0
    functionsReached:
    - operator.__eq__
    - <builtin>.isinstance
    - operator.__le__
    - operator.__lt__
    - pip._internal.utils.models.KeyBasedCompareMixin._compare
    - operator.__ge__
    - operator.__gt__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 32
    functionName: pip._internal.utils.models.KeyBasedCompareMixin.__eq__
    functionSourceFile: pip._internal.utils.models
    functionUses: 0
    functionsReached:
    - operator.__eq__
    - <builtin>.isinstance
    - operator.__le__
    - operator.__lt__
    - pip._internal.utils.models.KeyBasedCompareMixin._compare
    - operator.__ge__
    - operator.__gt__
    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: operator.__eq__
    functionSourceFile: operator
    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: operator.__ge__
    functionSourceFile: operator
    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: operator.__le__
    functionSourceFile: operator
    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: operator.__lt__
    functionSourceFile: operator
    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: operator.__gt__
    functionSourceFile: operator
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.models.link
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - re.compile
    - functools.lru_cache
    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: pip._internal.models.link.LinkHash
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - re.compile
    - functools.lru_cache
    - re.escape
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 69
    functionName: pip._internal.models.link.LinkHash.__post_init__
    functionSourceFile: pip._internal.models.link
    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:
    - cls
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 74
    functionName: pip._internal.models.link.LinkHash.find_hash_url_fragment
    functionSourceFile: pip._internal.models.link
    functionUses: 61
    functionsReached:
    - match.groups
    - cls._hash_url_fragment_re.search
    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: cls._hash_url_fragment_re.search
    functionSourceFile: <builtin>
    functionUses: 62
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 82
    functionName: pip._internal.models.link.LinkHash.as_dict
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 85
    functionName: pip._internal.models.link.LinkHash.as_hashes
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - hashes.items
    - <builtin>.sorted
    - pip._internal.utils.hashes.Hashes.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hashes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 89
    functionName: pip._internal.models.link.LinkHash.is_hash_allowed
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - hashes.is_hash_allowed
    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: hashes.is_hash_allowed
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 104
    functionName: pip._internal.models.link.MetadataFile.__post_init__
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - hashes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 109
    functionName: pip._internal.models.link.supported_hashes
    functionSourceFile: pip._internal.models.link
    functionUses: 6
    functionsReached:
    - hashes.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - part
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 120
    functionName: pip._internal.models.link._clean_url_path_part
    functionSourceFile: pip._internal.models.link
    functionUses: 8
    functionsReached:
    - urllib.parse.unquote
    - urllib.parse.quote
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - part
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 128
    functionName: pip._internal.models.link._clean_file_url_path
    functionSourceFile: pip._internal.models.link
    functionUses: 8
    functionsReached:
    - urllib.request.pathname2url
    - urllib.request.url2pathname
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - is_local_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 145
    functionName: pip._internal.models.link._clean_url_path
    functionSourceFile: pip._internal.models.link
    functionUses: 7
    functionsReached:
    - urllib.parse.unquote
    - urllib.request.pathname2url
    - reserved.upper
    - pip._internal.models.link._clean_url_path_part
    - itertools.chain
    - urllib.request.url2pathname
    - cleaned_parts.append
    - urllib.parse.quote
    - _reserved_chars_re.split
    - <builtin>.iter
    - pip._internal.utils.misc.pairwise
    - itertools.zip_longest
    - pip._internal.models.link._clean_file_url_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _reserved_chars_re.split
    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: cleaned_parts.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: reserved.upper
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 167
    functionName: pip._internal.models.link._ensure_quoted_url
    functionSourceFile: pip._internal.models.link
    functionUses: 6
    functionsReached:
    - urllib.parse.unquote
    - result._replace
    - urllib.request.pathname2url
    - pip._internal.models.link._clean_url_path
    - reserved.upper
    - pip._internal.models.link._clean_url_path_part
    - itertools.chain
    - urllib.parse.urlunparse
    - urllib.request.url2pathname
    - cleaned_parts.append
    - urllib.parse.quote
    - _reserved_chars_re.split
    - <builtin>.iter
    - pip._internal.utils.misc.pairwise
    - pip._internal.models.link._clean_file_url_path
    - itertools.zip_longest
    - urllib.parse.urlparse
    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._replace
    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: link_hash.as_dict
    functionSourceFile: <builtin>
    functionUses: 61
    functionsReached: []
    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: 6
    functionLinenumber: 434
    functionName: pip._internal.models.link.Link._egg_fragment
    functionSourceFile: pip._internal.models.link
    functionUses: 61
    functionsReached:
    - <builtin>.isinstance
    - format_str.format
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - file_data
    - page_url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 263
    functionName: pip._internal.models.link.Link.from_json
    functionSourceFile: pip._internal.models.link
    functionUses: 4
    functionsReached:
    - urllib.parse.unquote
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - pip._internal.models.link.supported_hashes
    - file_data.get
    - pip._internal.utils.urls.path_to_url
    - link_hash.as_dict
    - format_str.format
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - result._replace
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - reserved.upper
    - itertools.chain
    - <builtin>.str
    - pip._internal.models.link._ensure_quoted_url
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - itertools.zip_longest
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - hashes.items
    - pip._internal.models.link._clean_url_path
    - pip._internal.models.link.Link._egg_fragment
    - urllib.parse.urlunparse
    - cleaned_parts.append
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - _reserved_chars_re.split
    - <builtin>.iter
    - pip._internal.utils.misc.pairwise
    - os.path.normpath
    - os.path.abspath
    - pip._internal.models.link._clean_file_url_path
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.models.link._clean_url_path_part
    - urllib.parse.urlsplit
    - <builtin>.int
    - match.group
    - part.isdigit
    - urllib.request.url2pathname
    - _legacy_version_replacement_map.get
    - warnings.warn
    - urllib.parse.quote
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    - cls._hash_url_fragment_re.search
    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: file_data.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - anchor_attribs
    - page_url
    - base_url
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 314
    functionName: pip._internal.models.link.Link.from_element
    functionSourceFile: pip._internal.models.link
    functionUses: 4
    functionsReached:
    - urllib.parse.unquote
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - pip._internal.models.link.supported_hashes
    - pip._internal.utils.urls.path_to_url
    - format_str.format
    - link_hash.as_dict
    - logger.debug
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - html.parser.HTMLParser.anchors.get
    - _legacy_version_component_re.split
    - result._replace
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - reserved.upper
    - itertools.chain
    - <builtin>.str
    - pip._internal.models.link._ensure_quoted_url
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - itertools.zip_longest
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - metadata_info.partition
    - hashes.items
    - pip._internal.models.link._clean_url_path
    - pip._internal.models.link.Link._egg_fragment
    - urllib.parse.urlunparse
    - cleaned_parts.append
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - _reserved_chars_re.split
    - <builtin>.iter
    - pip._internal.utils.misc.pairwise
    - os.path.normpath
    - os.path.abspath
    - pip._internal.models.link._clean_file_url_path
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.models.link._clean_url_path_part
    - urllib.parse.urlsplit
    - <builtin>.int
    - match.group
    - part.isdigit
    - urllib.request.url2pathname
    - _legacy_version_replacement_map.get
    - warnings.warn
    - urllib.parse.quote
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    - cls._hash_url_fragment_re.search
    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: html.parser.HTMLParser.anchors.get
    functionSourceFile: html
    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: metadata_info.partition
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 365
    functionName: pip._internal.models.link.Link.__str__
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - <builtin>.str
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc._redact_netloc
    - typing.cast
    - pip._internal.utils.misc.split_auth_from_netloc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 375
    functionName: pip._internal.models.link.Link.__repr__
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 379
    functionName: pip._internal.models.link.Link.url
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 383
    functionName: pip._internal.models.link.Link.filename
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc.split_auth_from_netloc
    - posixpath.basename
    - auth.split
    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: posixpath.basename
    functionSourceFile: posixpath
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 397
    functionName: pip._internal.models.link.Link.file_path
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - pip._internal.utils.urls.url_to_path
    - <builtin>.len
    - urllib.parse.urlsplit
    - urllib.request.url2pathname
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 401
    functionName: pip._internal.models.link.Link.scheme
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 405
    functionName: pip._internal.models.link.Link.netloc
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 412
    functionName: pip._internal.models.link.Link.path
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - urllib.parse.unquote
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 415
    functionName: pip._internal.models.link.Link.splitext
    functionSourceFile: pip._internal.models.link
    functionUses: 1
    functionsReached:
    - pip._internal.models.link.Link.splitext
    - posixpath.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 419
    functionName: pip._internal.models.link.Link.ext
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - pip._internal.models.link.Link.splitext
    - posixpath.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 423
    functionName: pip._internal.models.link.Link.url_without_fragment
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - urllib.parse.urlunsplit
    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: pip._internal.models.link.Link
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 455
    functionName: pip._internal.models.link.Link.subdirectory_fragment
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - match.group
    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: 8
    functionLinenumber: 461
    functionName: pip._internal.models.link.Link.metadata_link
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - format_str.format
    - pip._internal.utils.urls.path_to_url
    - link_hash.as_dict
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.abspath
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 470
    functionName: pip._internal.models.link.Link.as_hashes
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - hashes.items
    - <builtin>.sorted
    - pip._internal.utils.hashes.Hashes.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 474
    functionName: pip._internal.models.link.Link.hash
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 478
    functionName: pip._internal.models.link.Link.hash_name
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 482
    functionName: pip._internal.models.link.Link.show_url
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - posixpath.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 486
    functionName: pip._internal.models.link.Link.is_file
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 489
    functionName: pip._internal.models.link.Link.is_existing_dir
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - os.path.isdir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 493
    functionName: pip._internal.models.link.Link.is_wheel
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 497
    functionName: pip._internal.models.link.Link.is_vcs
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 503
    functionName: pip._internal.models.link.Link.is_yanked
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 507
    functionName: pip._internal.models.link.Link.has_hash
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hashes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 510
    functionName: pip._internal.models.link.Link.is_hash_allowed
    functionSourceFile: pip._internal.models.link
    functionUses: 0
    functionsReached:
    - <builtin>.any
    - hashes.is_hash_allowed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - link
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 551
    functionName: pip._internal.models.link._clean_link
    functionSourceFile: pip._internal.models.link
    functionUses: 6
    functionsReached:
    - parsed._replace
    - typing.NamedTuple.__init__
    - urllib.parse.parse_qs
    - logger.debug
    - parsed.netloc.rsplit
    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: parsed.netloc.rsplit
    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: urllib.parse.parse_qs
    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: parsed._replace
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - link1
    - link2
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 578
    functionName: pip._internal.models.link.links_equivalent
    functionSourceFile: pip._internal.models.link
    functionUses: 5
    functionsReached:
    - parsed._replace
    - typing.NamedTuple.__init__
    - pip._internal.models.link._clean_link
    - logger.debug
    - parsed.netloc.rsplit
    - urllib.parse.parse_qs
    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: pip._internal.vcs
    functionSourceFile: pip._internal.vcs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._internal.vcs.versioncontrol
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - logging.getLogger
    - pip._internal.vcs.versioncontrol.VcsSupport.__init__
    - urllib.parse.uses_netloc.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 50
    functionName: pip._internal.vcs.versioncontrol.is_url
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 34
    functionsReached:
    - url.split
    - pip._internal.utils.urls.get_url_scheme
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d272c8b0>
    argNames:
    - repo_url
    - rev
    - project_name
    - subdir
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 60
    functionName: pip._internal.vcs.versioncontrol.make_vcs_requirement_url
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 1
    functionsReached:
    - project_name.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: project_name.replace
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - location
    - repo_root
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 78
    functionName: pip._internal.vcs.versioncontrol.find_path_to_project_root_from_repo_root
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 3
    functionsReached:
    - os.path.samefile
    - os.path.relpath
    - os.path.isfile
    - os.path.dirname
    - os.path.isdir
    - os.path.join
    - pip._internal.utils.misc.is_installable_dir
    - logger.warning
    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.relpath
    functionSourceFile: os
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 112
    functionName: pip._internal.vcs.versioncontrol.RemoteNotValidError.__init__
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4ab7790>
    - <ast.Constant object at 0x7f30f4ab77c0>
    argNames:
    - self
    - vc_class
    - rev
    - extra_args
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 126
    functionName: pip._internal.vcs.versioncontrol.RevOptions.__init__
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 146
    functionName: pip._internal.vcs.versioncontrol.RevOptions.__repr__
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 150
    functionName: pip._internal.vcs.versioncontrol.RevOptions.arg_rev
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    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: 1
    functionLinenumber: 156
    functionName: pip._internal.vcs.versioncontrol.RevOptions.to_args
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached:
    - pip._internal.vcs.git.Git.get_base_rev_args
    - pip._internal.vcs.bazaar.Bazaar.get_base_rev_args
    - pip._internal.vcs.mercurial.Mercurial.get_base_rev_args
    - pip._internal.vcs.versioncontrol.VersionControl.get_base_rev_args
    - pip._internal.vcs.subversion.Subversion.get_base_rev_args
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - rev
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 76
    functionName: pip._internal.vcs.git.Git.get_base_rev_args
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - rev
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 33
    functionName: pip._internal.vcs.bazaar.Bazaar.get_base_rev_args
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - rev
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 33
    functionName: pip._internal.vcs.mercurial.Mercurial.get_base_rev_args
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - rev
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 325
    functionName: pip._internal.vcs.versioncontrol.VersionControl.get_base_rev_args
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - rev
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 41
    functionName: pip._internal.vcs.subversion.Subversion.get_base_rev_args
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 168
    functionName: pip._internal.vcs.versioncontrol.RevOptions.to_display
    functionSourceFile: pip._internal.vcs.versioncontrol
    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
    - rev
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 174
    functionName: pip._internal.vcs.versioncontrol.RevOptions.make_new
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached:
    - pip._internal.vcs.versioncontrol.VersionControl.make_rev_options
    - pip._internal.vcs.versioncontrol.RevOptions.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30cae11a00>
    - <ast.Constant object at 0x7f30cae119d0>
    argNames:
    - cls
    - rev
    - extra_args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 348
    functionName: pip._internal.vcs.versioncontrol.VersionControl.make_rev_options
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 5
    functionsReached:
    - pip._internal.vcs.versioncontrol.RevOptions.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 188
    functionName: pip._internal.vcs.versioncontrol.VcsSupport.__init__
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - urllib.parse.uses_netloc.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.uses_netloc.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 194
    functionName: pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 198
    functionName: pip._internal.vcs.versioncontrol.VcsSupport.backends
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached:
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 202
    functionName: pip._internal.vcs.versioncontrol.VcsSupport.dirnames
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 206
    functionName: pip._internal.vcs.versioncontrol.VcsSupport.all_schemes
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached:
    - schemes.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: schemes.extend
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cls
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 212
    functionName: pip._internal.vcs.versioncontrol.VcsSupport.register
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - pip._internal.vcs.subversion.Subversion.__init__
    - sys.stdin.isatty
    - logger.debug
    - pip._internal.utils.misc.is_console_interactive
    - logger.warning
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6f949a0>
    argNames:
    - self
    - use_interactive
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 187
    functionName: pip._internal.vcs.subversion.Subversion.__init__
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 5
    functionsReached:
    - <builtin>.super
    - pip._internal.utils.misc.is_console_interactive
    - sys.stdin.isatty
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 220
    functionName: pip._internal.vcs.versioncontrol.VcsSupport.unregister
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 224
    functionName: pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_dir
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 4
    functionsReached:
    - logger.debug
    - vcs_backend.get_repository_root
    - <builtin>.max
    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: vcs_backend.get_repository_root
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 256
    functionName: pip._internal.vcs.versioncontrol.VcsSupport.get_backend
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached:
    - name.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - remote_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 278
    functionName: pip._internal.vcs.versioncontrol.VersionControl.should_add_vcs_url_prefix
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 1
    functionsReached:
    - remote_url.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: remote_url.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 286
    functionName: pip._internal.vcs.versioncontrol.VersionControl.get_subdirectory
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - repo_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 294
    functionName: pip._internal.vcs.versioncontrol.VersionControl.get_requirement_revision
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 1
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - pip._internal.vcs.versioncontrol.VersionControl.get_revision
    - pip._internal.vcs.bazaar.Bazaar.get_revision
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - _svn_info_xml_rev_re.finditer
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - data.startswith
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - dirurl.startswith
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - dirs.remove
    - <builtin>.iter
    - pip._internal.vcs.subversion.Subversion.get_revision
    - match.span
    - current_rev.strip
    - os.path.exists
    - match.group
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.subversion.Subversion._get_svn_url_rev
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - f.read
    - typing.cast.critical
    - pip._internal.vcs.mercurial.Mercurial.get_revision
    - <builtin>.max
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._internal.vcs.git.Git.get_revision
    - os.walk
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.list
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - _svn_rev_re.finditer
    - typing.cast.warning
    - <builtin>.int
    - revision.splitlines
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.open
    - <builtin>.all
    - color_rgb.split
    - data.split
    - typing.cast.getEffectiveLevel
    - _svn_info_xml_url_re.search
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - m.group
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - _svn_xml_url_re.search
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 92
    functionName: pip._internal.vcs.mercurial.Mercurial.get_revision
    functionSourceFile: pip._internal.vcs.mercurial
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 614
    functionName: pip._internal.vcs.versioncontrol.VersionControl.get_revision
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26d1d60>
    argNames:
    - cls
    - location
    - rev
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 426
    functionName: pip._internal.vcs.git.Git.get_revision
    functionSourceFile: pip._internal.vcs.git
    functionUses: 9
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - current_rev.strip
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 45
    functionName: pip._internal.vcs.subversion.Subversion.get_revision
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - _svn_info_xml_rev_re.finditer
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - data.startswith
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - dirurl.startswith
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - dirs.remove
    - <builtin>.iter
    - match.span
    - os.path.exists
    - match.group
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.subversion.Subversion._get_svn_url_rev
    - f.read
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - <builtin>.max
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - os.walk
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.list
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - _svn_rev_re.finditer
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.open
    - <builtin>.all
    - color_rgb.split
    - data.split
    - typing.cast.getEffectiveLevel
    - _svn_info_xml_url_re.search
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - m.group
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - _svn_xml_url_re.search
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 97
    functionName: pip._internal.vcs.bazaar.Bazaar.get_revision
    functionSourceFile: pip._internal.vcs.bazaar
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - revision.splitlines
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - repo_dir
    - project_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 301
    functionName: pip._internal.vcs.versioncontrol.VersionControl.get_src_requirement
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._internal.utils.urls.path_to_url
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - pip._internal.vcs.versioncontrol.make_vcs_requirement_url
    - remote_url.lower
    - os.path.samefile
    - pip._internal.vcs.mercurial.Mercurial.get_remote_url
    - <builtin>.str
    - pip._internal.vcs.versioncontrol.VersionControl.get_revision
    - pip._internal.vcs.bazaar.Bazaar.get_revision
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pathlib.PurePath
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._internal.vcs.subversion.Subversion.get_remote_url
    - pip._internal.utils.subprocess.make_command
    - pip._internal.vcs.mercurial.Mercurial.get_requirement_revision
    - pip._internal.vcs.bazaar.Bazaar.get_remote_url
    - urls.splitlines
    - _svn_info_xml_rev_re.finditer
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - urllib.parse.urljoin
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - logger.warning
    - remote.startswith
    - stdout.splitlines
    - proc.communicate
    - tag.name.startswith
    - found_remote.split
    - RE_TAGS.finditer
    - pip._internal.vcs.mercurial.Mercurial.get_subdirectory
    - marshal.dumps
    - data.startswith
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - line.strip
    - dirurl.startswith
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - pip._internal.vcs.versioncontrol.VersionControl.get_requirement_revision
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - dirs.remove
    - <builtin>.iter
    - os.path.isdir
    - os.path.abspath
    - pip._internal.vcs.git.Git._git_remote_to_pip_url
    - pip._internal.vcs.subversion.Subversion.get_revision
    - pip._internal.vcs.git.Git.get_remote_url
    - match.span
    - current_rev.strip
    - os.path.exists
    - match.group
    - os.path.dirname
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.subversion.Subversion._get_svn_url_rev
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - f.read
    - pip._internal.vcs.versioncontrol.VersionControl._is_local_repository
    - shlex.quote
    - pip._internal.vcs.mercurial.Mercurial.get_revision
    - <builtin>.max
    - typing.cast.critical
    - line.startswith
    - <builtin>.isinstance
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._internal.vcs.git.Git.get_revision
    - line.split
    - os.walk
    - line.rstrip
    - spinner.spin
    - pip._internal.vcs.versioncontrol.VersionControl.get_subdirectory
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - os.path.isabs
    - out.splitlines
    - pip._internal.vcs.versioncontrol.VersionControl.should_add_vcs_url_prefix
    - color_match.groups
    - <builtin>.list
    - os.path.relpath
    - os.path.isfile
    - <builtin>.len
    - pip._internal.vcs.git.Git.get_subdirectory
    - pip._internal.vcs.versioncontrol.find_path_to_project_root_from_repo_root
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.misc.is_installable_dir
    - _svn_rev_re.finditer
    - pip._internal.utils.subprocess.call_subprocess
    - url.strip
    - urllib.request.pathname2url
    - typing.cast.warning
    - <builtin>.int
    - revision.splitlines
    - repo.startswith
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.open
    - <builtin>.all
    - color_rgb.split
    - data.split
    - typing.cast.getEffectiveLevel
    - SCP_REGEX.match
    - _svn_info_xml_url_re.search
    - plain_text.replace
    - re.match
    - style.strip
    - project_name.replace
    - pip._vendor.rich.markup._parse
    - variants.get
    - pip._internal.vcs.subversion.Subversion.should_add_vcs_url_prefix
    - m.group
    - style_definition.split
    - scp_match.expand
    - os.environ.copy
    - command_args.extend
    - style_definition.strip
    - _svn_xml_url_re.search
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - pip._internal.vcs.git.Git.should_add_vcs_url_prefix
    - <builtin>.reversed
    - pip._internal.vcs.versioncontrol.VersionControl.get_remote_url
    - style_stack.pop
    - os.path.splitdrive
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 80
    functionName: pip._internal.vcs.mercurial.Mercurial.get_remote_url
    functionSourceFile: pip._internal.vcs.mercurial
    functionUses: 3
    functionsReached:
    - <builtin>.sum
    - pip._internal.utils.urls.path_to_url
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - urllib.parse.urljoin
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - pip._internal.vcs.versioncontrol.VersionControl._is_local_repository
    - shlex.quote
    - <builtin>.isinstance
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - url.strip
    - urllib.request.pathname2url
    - typing.cast.warning
    - <builtin>.int
    - repo.startswith
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - os.path.splitdrive
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 349
    functionName: pip._internal.vcs.git.Git.get_remote_url
    functionSourceFile: pip._internal.vcs.git
    functionUses: 3
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pathlib.PurePath
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - remote.startswith
    - stdout.splitlines
    - proc.communicate
    - tag.name.startswith
    - found_remote.split
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._internal.vcs.git.Git._git_remote_to_pip_url
    - match.span
    - os.path.exists
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - url.strip
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - SCP_REGEX.match
    - plain_text.replace
    - re.match
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - scp_match.expand
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 109
    functionName: pip._internal.vcs.subversion.Subversion.get_remote_url
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 3
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - _svn_info_xml_rev_re.finditer
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - logger.warning
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - data.startswith
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.isdir
    - match.span
    - os.path.exists
    - match.group
    - os.path.dirname
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.subversion.Subversion._get_svn_url_rev
    - f.read
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - <builtin>.max
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.list
    - os.path.isfile
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.subprocess.call_subprocess
    - _svn_rev_re.finditer
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.open
    - <builtin>.all
    - color_rgb.split
    - data.split
    - typing.cast.getEffectiveLevel
    - _svn_info_xml_url_re.search
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - m.group
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - _svn_xml_url_re.search
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 604
    functionName: pip._internal.vcs.versioncontrol.VersionControl.get_remote_url
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 82
    functionName: pip._internal.vcs.bazaar.Bazaar.get_remote_url
    functionSourceFile: pip._internal.vcs.bazaar
    functionUses: 3
    functionsReached:
    - <builtin>.sum
    - pip._internal.utils.urls.path_to_url
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._internal.utils.subprocess.make_command
    - urls.splitlines
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - urllib.parse.urljoin
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - line.strip
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - pip._internal.vcs.versioncontrol.VersionControl._is_local_repository
    - shlex.quote
    - line.startswith
    - <builtin>.isinstance
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.split
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - urllib.request.pathname2url
    - typing.cast.warning
    - <builtin>.int
    - repo.startswith
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - command_args.extend
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - os.path.splitdrive
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - remote_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 37
    functionName: pip._internal.vcs.subversion.Subversion.should_add_vcs_url_prefix
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo_url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 521
    functionName: pip._internal.vcs.git.Git.should_add_vcs_url_prefix
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 105
    functionName: pip._internal.vcs.mercurial.Mercurial.get_requirement_revision
    functionSourceFile: pip._internal.vcs.mercurial
    functionUses: 1
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 438
    functionName: pip._internal.vcs.git.Git.get_subdirectory
    functionSourceFile: pip._internal.vcs.git
    functionUses: 1
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - os.path.samefile
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - logger.warning
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.isdir
    - os.path.abspath
    - match.span
    - os.path.dirname
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - os.path.isabs
    - out.splitlines
    - color_match.groups
    - os.path.relpath
    - os.path.isfile
    - <builtin>.len
    - pip._internal.vcs.versioncontrol.find_path_to_project_root_from_repo_root
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 124
    functionName: pip._internal.vcs.mercurial.Mercurial.get_subdirectory
    functionSourceFile: pip._internal.vcs.mercurial
    functionUses: 1
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - os.path.samefile
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - logger.warning
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.isdir
    - os.path.abspath
    - match.span
    - os.path.dirname
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - os.path.isabs
    - out.splitlines
    - color_match.groups
    - os.path.relpath
    - os.path.isfile
    - <builtin>.len
    - pip._internal.vcs.versioncontrol.find_path_to_project_root_from_repo_root
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - dest
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 334
    functionName: pip._internal.vcs.versioncontrol.VersionControl.is_immutable_rev_checkout
    functionSourceFile: pip._internal.vcs.versioncontrol
    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:
    - cls
    - repo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 361
    functionName: pip._internal.vcs.versioncontrol.VersionControl._is_local_repository
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 5
    functionsReached:
    - repo.startswith
    - os.path.splitdrive
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.startswith
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - netloc
    - scheme
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 370
    functionName: pip._internal.vcs.versioncontrol.VersionControl.get_netloc_and_auth
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 391
    functionName: pip._internal.vcs.versioncontrol.VersionControl.get_url_rev_and_auth
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - urllib.parse.unquote
    - pip._internal.vcs.versioncontrol.VersionControl.get_netloc_and_auth
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.vcs.subversion.Subversion.get_netloc_and_auth
    - urllib.parse.urlunsplit
    - scheme.split
    - pip._internal.utils.misc.split_auth_from_netloc
    - path.rsplit
    linkageType: pythonLinkage
    raised:
    - InstallationError
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: scheme.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - netloc
    - scheme
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 74
    functionName: pip._internal.vcs.subversion.Subversion.get_netloc_and_auth
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 5
    functionsReached:
    - <builtin>.super
    - pip._internal.utils.misc.split_auth_from_netloc
    - urllib.parse.unquote
    - auth.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.rsplit
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - username
    - password
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 421
    functionName: pip._internal.vcs.versioncontrol.VersionControl.make_rev_args
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 429
    functionName: pip._internal.vcs.versioncontrol.VersionControl.get_url_rev_options
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 3
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.vcs.versioncontrol.VersionControl.get_url_rev_and_auth
    - pip._internal.vcs.versioncontrol.VersionControl.get_netloc_and_auth
    - pip._internal.utils.misc._get_netloc
    - pip._internal.vcs.subversion.Subversion.get_url_rev_and_auth
    - path.lstrip
    - pip._internal.vcs.git.Git.get_url_rev_and_auth
    - pip._internal.vcs.bazaar.Bazaar.get_url_rev_and_auth
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.misc._redact_netloc
    - pip._internal.vcs.versioncontrol.VersionControl.make_rev_options
    - scheme.find
    - scheme.split
    - pip._internal.utils.misc.split_auth_from_netloc
    - scheme.endswith
    - <builtin>.super
    - auth.split
    - pip._internal.utils.misc.hide_url
    - <builtin>.len
    - urllib.parse.urlunsplit
    - pip._internal.vcs.subversion.Subversion.make_rev_args
    - pip._internal.utils.misc.hide_value
    - typing.cast
    - pip._internal.vcs.versioncontrol.RevOptions.__init__
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.vcs.subversion.Subversion.get_netloc_and_auth
    - urllib.request.url2pathname
    - urllib.parse.quote
    - pip._internal.vcs.versioncontrol.VersionControl.make_rev_args
    - pip._internal.utils.misc._transform_url
    - pip._internal.utils.misc.HiddenText.__init__
    - path.rsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 456
    functionName: pip._internal.vcs.git.Git.get_url_rev_and_auth
    functionSourceFile: pip._internal.vcs.git
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - path.lstrip
    - <builtin>.len
    - urllib.request.url2pathname
    - scheme.find
    - scheme.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 74
    functionName: pip._internal.vcs.bazaar.Bazaar.get_url_rev_and_auth
    functionSourceFile: pip._internal.vcs.bazaar
    functionUses: 4
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 89
    functionName: pip._internal.vcs.subversion.Subversion.get_url_rev_and_auth
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 4
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - username
    - password
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 97
    functionName: pip._internal.vcs.subversion.Subversion.make_rev_args
    functionSourceFile: ''
    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:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 445
    functionName: pip._internal.vcs.versioncontrol.VersionControl.normalize_url
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 3
    functionsReached:
    - urllib.parse.unquote
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - url1
    - url2
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 453
    functionName: pip._internal.vcs.versioncontrol.VersionControl.compare_urls
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 2
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.vcs.versioncontrol.VersionControl.normalize_url
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    - verbosity
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 459
    functionName: pip._internal.vcs.versioncontrol.VersionControl.fetch_new
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 473
    functionName: pip._internal.vcs.versioncontrol.VersionControl.switch
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 482
    functionName: pip._internal.vcs.versioncontrol.VersionControl.update
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - dest
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 492
    functionName: pip._internal.vcs.versioncontrol.VersionControl.is_commit_id_equal
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 18
    IfCount: 8
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - verbosity
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 502
    functionName: pip._internal.vcs.versioncontrol.VersionControl.obtain
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 1
    functionsReached:
    - pip._internal.vcs.bazaar.Bazaar.switch
    - pip._internal.vcs.git.Git.get_git_version
    - <builtin>.sum
    - pip._internal.utils.urls.path_to_url
    - shutil.rmtree
    - pip._internal.vcs.bazaar.Bazaar.get_url_rev_and_auth
    - output.strip
    - operator.attrgetter
    - pip._internal.vcs.subversion.Subversion.get_vcs_version
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._internal.utils.misc._redact_netloc
    - typing.cast.error
    - match.groups
    - pip._internal.vcs.git.Git.fetch_new
    - pip._internal.vcs.mercurial.Mercurial.get_remote_url
    - <builtin>.str
    - scheme.find
    - err.splitlines
    - <builtin>.tuple
    - configparser.RawConfigParser
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pathlib.PurePath
    - pip._internal.vcs.git.Git.update
    - sys.exit
    - pip._internal.vcs.bazaar.Bazaar.is_commit_id_equal
    - os.getcwd
    - <builtin>.sorted
    - pip._internal.vcs.subversion.Subversion.make_rev_args
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._internal.vcs.subversion.Subversion.get_remote_url
    - pip._internal.vcs.subversion.Subversion.is_commit_id_equal
    - pip._internal.utils.subprocess.make_command
    - pip._internal.vcs.bazaar.Bazaar.update
    - pip._internal.vcs.versioncontrol.VersionControl.normalize_url
    - pip._internal.vcs.mercurial.Mercurial.switch
    - pip._internal.vcs.bazaar.Bazaar.fetch_new
    - pip._internal.utils.misc.redact_auth_from_url
    - urllib.parse.quote
    - pip._internal.vcs.bazaar.Bazaar.get_remote_url
    - urls.splitlines
    - pip._internal.vcs.versioncontrol.VersionControl.make_rev_args
    - _svn_info_xml_rev_re.finditer
    - urllib.parse.urljoin
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - pip._internal.utils.misc.backup_dir
    - pip._internal.vcs.git.Git.get_revision_sha
    - proc.wait
    - ref.startswith
    - path.rsplit
    - logger.warning
    - remote.startswith
    - pip._internal.vcs.versioncontrol.VersionControl.get_netloc_and_auth
    - path.lstrip
    - stdout.splitlines
    - proc.communicate
    - tag.name.startswith
    - found_remote.split
    - GIT_VERSION_REGEX.match
    - RE_TAGS.finditer
    - marshal.dumps
    - data.startswith
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.vcs.git.Git._should_fetch
    - pip._internal.utils.misc._check_no_input
    - pip._internal.utils.misc.display_path
    - pip._internal.vcs.versioncontrol.VersionControl.make_rev_options
    - line.strip
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - pip._internal.vcs.versioncontrol.VersionControl.is_repository_directory
    - pip._internal.utils.misc.split_auth_from_netloc
    - config.write
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - pip._internal.vcs.git.Git.has_commit
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.isdir
    - pip._internal.vcs.git.Git.is_commit_id_equal
    - config.set
    - os.path.abspath
    - pip._internal.vcs.git.Git._git_remote_to_pip_url
    - pip._internal.utils.misc.hide_value
    - pip._internal.vcs.git.Git.get_remote_url
    - match.span
    - current_rev.strip
    - pip._internal.vcs.versioncontrol.VersionControl.update
    - os.path.exists
    - match.group
    - os.path.normcase
    - os.path.dirname
    - response.strip
    - pip._internal.vcs.subversion.Subversion.get_remote_call_options
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.subversion.Subversion._get_svn_url_rev
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - f.read
    - pip._internal.vcs.versioncontrol.VersionControl._is_local_repository
    - shlex.quote
    - <builtin>.max
    - typing.cast.critical
    - line.startswith
    - pip._internal.vcs.versioncontrol.VersionControl.get_url_rev_and_auth
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - pip._internal.vcs.subversion.Subversion.get_url_rev_and_auth
    - <builtin>.bool
    - original_word.lower
    - pip._internal.utils.misc.ask
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._internal.vcs.versioncontrol.VersionControl.fetch_new
    - pip._internal.vcs.git.Git.get_revision
    - os.environ.get
    - line.split
    - line.rstrip
    - pip._internal.vcs.git.looks_like_hash
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.vcs.mercurial.Mercurial.update
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.list
    - scheme.endswith
    - pip._internal.vcs.subversion.Subversion.fetch_new
    - auth.split
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.misc.hide_url
    - pip._vendor.rich.style.Style.__init__
    - version.startswith
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.vcs.versioncontrol.VersionControl.compare_urls
    - pip._internal.vcs.subversion.Subversion.switch
    - typing.cast
    - refs.get
    - _svn_rev_re.finditer
    - pip._internal.utils.subprocess.call_subprocess
    - url.strip
    - urllib.request.pathname2url
    - typing.cast.warning
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.vcs.subversion.Subversion.call_vcs_version
    - repo.startswith
    - pip._internal.vcs.subversion.Subversion.update
    - pip._internal.vcs.subversion.Subversion.get_netloc_and_auth
    - urllib.request.url2pathname
    - command_args.append
    - pip._internal.utils.misc._transform_url
    - <builtin>.open
    - rev_options.make_new
    - all_output.append
    - <builtin>.getattr
    - <builtin>.all
    - style_stack.append
    - config.read
    - <builtin>.input
    - pip._internal.vcs.git.Git.get_current_branch
    - color_rgb.split
    - urllib.parse.unquote
    - pip._internal.vcs.mercurial.Mercurial.is_commit_id_equal
    - data.split
    - pip._internal.utils.misc.ask_path_exists
    - pip._internal.vcs.mercurial.Mercurial.fetch_new
    - typing.cast.getEffectiveLevel
    - pip._internal.vcs.git.Git.get_url_rev_and_auth
    - SCP_REGEX.match
    - pip._internal.utils.misc.redact_netloc
    - logger.debug
    - _svn_info_xml_url_re.search
    - plain_text.replace
    - re.match
    - version.partition
    - style.strip
    - rev_options.to_args
    - shutil.move
    - output.startswith
    - rev_options.to_display
    - pip._vendor.rich.markup._parse
    - variants.get
    - m.group
    - style_definition.split
    - scheme.split
    - scp_match.expand
    - rev.startswith
    - os.environ.copy
    - command_args.extend
    - style_definition.strip
    - _svn_xml_url_re.search
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - pip._internal.utils.misc.rmtree
    - random.randint
    - pip._internal.vcs.git.Git.update_submodules
    - urllib.parse.urlunsplit
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - HASH_REGEX.match
    - pip._internal.vcs.versioncontrol.RevOptions.__init__
    - pip._internal.vcs.git.Git.switch
    - <builtin>.reversed
    - pip._internal.vcs.versioncontrol.VersionControl.get_url_rev_options
    - functools.partial
    - <builtin>.print
    - pip._internal.vcs.versioncontrol.VersionControl.get_remote_url
    - logger.info
    - pip._internal.vcs.versioncontrol.VersionControl.switch
    - pip._internal.vcs.git.Git.resolve_revision
    - pip._internal.utils.misc.HiddenText.__init__
    - style_stack.pop
    - pip._internal.vcs.versioncontrol.VersionControl.is_commit_id_equal
    - os.path.splitdrive
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 8
    IfCount: 7
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    - verbosity
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 261
    functionName: pip._internal.vcs.git.Git.fetch_new
    functionSourceFile: pip._internal.vcs.git
    functionUses: 2
    functionsReached:
    - pip._internal.vcs.git.Git.get_git_version
    - <builtin>.sum
    - output.strip
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - os.getcwd
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - pip._internal.vcs.git.Git.get_revision_sha
    - proc.wait
    - logger.warning
    - ref.startswith
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - GIT_VERSION_REGEX.match
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.vcs.git.Git._should_fetch
    - pip._internal.utils.misc.display_path
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - pip._internal.vcs.git.Git.has_commit
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._internal.vcs.git.Git.is_commit_id_equal
    - os.path.abspath
    - match.span
    - current_rev.strip
    - os.path.normcase
    - match.group
    - os.path.exists
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._internal.vcs.git.Git.get_revision
    - line.split
    - line.rstrip
    - pip._internal.vcs.git.looks_like_hash
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - refs.get
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - rev_options.make_new
    - style_stack.append
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - pip._internal.vcs.git.Git.get_current_branch
    - typing.cast.getEffectiveLevel
    - logger.debug
    - plain_text.replace
    - style.strip
    - rev_options.to_args
    - rev_options.to_display
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - rev.startswith
    - command_args.extend
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._internal.vcs.git.Git.update_submodules
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - HASH_REGEX.match
    - <builtin>.reversed
    - logger.info
    - pip._internal.vcs.git.Git.resolve_revision
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    - verbosity
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 36
    functionName: pip._internal.vcs.mercurial.Mercurial.fetch_new
    functionSourceFile: pip._internal.vcs.mercurial
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - os.getcwd
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.utils.misc.display_path
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - match.span
    - os.path.normcase
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - rev_options.to_args
    - rev_options.to_display
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - logger.info
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    - verbosity
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 36
    functionName: pip._internal.vcs.bazaar.Bazaar.fetch_new
    functionSourceFile: pip._internal.vcs.bazaar
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - os.getcwd
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.utils.misc.display_path
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - match.span
    - os.path.normcase
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - rev_options.to_args
    - rev_options.to_display
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - logger.info
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    - verbosity
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 280
    functionName: pip._internal.vcs.subversion.Subversion.fetch_new
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.vcs.subversion.Subversion.get_vcs_version
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - <builtin>.tuple
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - os.getcwd
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.utils.misc.display_path
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - match.span
    - os.path.normcase
    - pip._internal.vcs.subversion.Subversion.get_remote_call_options
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - version.startswith
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - pip._internal.vcs.subversion.Subversion.call_vcs_version
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - version.partition
    - style.strip
    - rev_options.to_args
    - rev_options.to_display
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - command_args.extend
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - logger.info
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rev_options.to_display
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 677
    functionName: pip._internal.vcs.versioncontrol.VersionControl.is_repository_directory
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 3
    functionsReached:
    - logger.debug
    - os.path.exists
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - dest
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 119
    functionName: pip._internal.vcs.mercurial.Mercurial.is_commit_id_equal
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - dest
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 183
    functionName: pip._internal.vcs.subversion.Subversion.is_commit_id_equal
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - dest
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 247
    functionName: pip._internal.vcs.git.Git.is_commit_id_equal
    functionSourceFile: pip._internal.vcs.git
    functionUses: 4
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - current_rev.strip
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._internal.vcs.git.Git.get_revision
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - dest
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 107
    functionName: pip._internal.vcs.bazaar.Bazaar.is_commit_id_equal
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 74
    functionName: pip._internal.vcs.mercurial.Mercurial.update
    functionSourceFile: pip._internal.vcs.mercurial
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - rev_options.to_args
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 334
    functionName: pip._internal.vcs.git.Git.update
    functionSourceFile: pip._internal.vcs.git
    functionUses: 2
    functionsReached:
    - pip._internal.vcs.git.Git.get_git_version
    - <builtin>.sum
    - output.strip
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - pip._internal.vcs.git.Git.get_revision_sha
    - proc.wait
    - logger.warning
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - GIT_VERSION_REGEX.match
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.vcs.git.Git._should_fetch
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - pip._internal.vcs.git.Git.has_commit
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - current_rev.strip
    - match.group
    - os.path.exists
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._internal.vcs.git.Git.get_revision
    - line.split
    - line.rstrip
    - pip._internal.vcs.git.looks_like_hash
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - refs.get
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - rev_options.make_new
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - rev_options.to_args
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - rev.startswith
    - command_args.extend
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._internal.vcs.git.Git.update_submodules
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - HASH_REGEX.match
    - <builtin>.reversed
    - pip._internal.vcs.git.Git.resolve_revision
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 314
    functionName: pip._internal.vcs.subversion.Subversion.update
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.vcs.subversion.Subversion.get_vcs_version
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - <builtin>.tuple
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - pip._internal.vcs.subversion.Subversion.get_remote_call_options
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - version.startswith
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - pip._internal.vcs.subversion.Subversion.call_vcs_version
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - version.partition
    - style.strip
    - rev_options.to_args
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - command_args.extend
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 60
    functionName: pip._internal.vcs.bazaar.Bazaar.update
    functionSourceFile: pip._internal.vcs.bazaar
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - rev_options.to_args
    - output.startswith
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 324
    functionName: pip._internal.vcs.git.Git.switch
    functionSourceFile: pip._internal.vcs.git
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - os.path.exists
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - rev_options.to_args
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._internal.vcs.git.Git.update_submodules
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 57
    functionName: pip._internal.vcs.bazaar.Bazaar.switch
    functionSourceFile: pip._internal.vcs.bazaar
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 304
    functionName: pip._internal.vcs.subversion.Subversion.switch
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.vcs.subversion.Subversion.get_vcs_version
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - <builtin>.tuple
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - pip._internal.vcs.subversion.Subversion.get_remote_call_options
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - version.startswith
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - pip._internal.vcs.subversion.Subversion.call_vcs_version
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - version.partition
    - style.strip
    - rev_options.to_args
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - command_args.extend
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dest
    - url
    - rev_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 60
    functionName: pip._internal.vcs.mercurial.Mercurial.switch
    functionSourceFile: pip._internal.vcs.mercurial
    functionUses: 2
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - configparser.RawConfigParser
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - logger.warning
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - config.write
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - config.set
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.open
    - <builtin>.all
    - config.read
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - rev_options.to_args
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - command_args.extend
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - location
    - url
    - verbosity
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 591
    functionName: pip._internal.vcs.versioncontrol.VersionControl.unpack
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached:
    - pip._internal.vcs.bazaar.Bazaar.switch
    - pip._internal.vcs.git.Git.get_git_version
    - <builtin>.sum
    - shutil.rmtree
    - pip._internal.utils.urls.path_to_url
    - pip._internal.vcs.bazaar.Bazaar.get_url_rev_and_auth
    - output.strip
    - operator.attrgetter
    - pip._internal.vcs.subversion.Subversion.get_vcs_version
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._internal.utils.misc._redact_netloc
    - typing.cast.error
    - match.groups
    - pip._internal.vcs.git.Git.fetch_new
    - pip._internal.vcs.mercurial.Mercurial.get_remote_url
    - <builtin>.str
    - scheme.find
    - err.splitlines
    - <builtin>.tuple
    - configparser.RawConfigParser
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - pathlib.PurePath
    - pip._internal.vcs.git.Git.update
    - sys.exit
    - pip._internal.vcs.bazaar.Bazaar.is_commit_id_equal
    - os.getcwd
    - <builtin>.sorted
    - pip._internal.vcs.subversion.Subversion.make_rev_args
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._internal.vcs.subversion.Subversion.get_remote_url
    - pip._internal.vcs.subversion.Subversion.is_commit_id_equal
    - pip._internal.utils.subprocess.make_command
    - pip._internal.vcs.bazaar.Bazaar.update
    - pip._internal.vcs.versioncontrol.VersionControl.normalize_url
    - pip._internal.vcs.mercurial.Mercurial.switch
    - pip._internal.vcs.bazaar.Bazaar.fetch_new
    - pip._internal.utils.misc.redact_auth_from_url
    - urllib.parse.quote
    - pip._internal.vcs.bazaar.Bazaar.get_remote_url
    - urls.splitlines
    - pip._internal.vcs.versioncontrol.VersionControl.make_rev_args
    - _svn_info_xml_rev_re.finditer
    - urllib.parse.urljoin
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - pip._internal.utils.misc.backup_dir
    - pip._internal.vcs.git.Git.get_revision_sha
    - proc.wait
    - ref.startswith
    - path.rsplit
    - logger.warning
    - remote.startswith
    - pip._internal.vcs.versioncontrol.VersionControl.get_netloc_and_auth
    - path.lstrip
    - stdout.splitlines
    - proc.communicate
    - tag.name.startswith
    - found_remote.split
    - GIT_VERSION_REGEX.match
    - RE_TAGS.finditer
    - marshal.dumps
    - data.startswith
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.vcs.git.Git._should_fetch
    - pip._internal.utils.misc._check_no_input
    - pip._internal.utils.misc.display_path
    - pip._internal.vcs.versioncontrol.VersionControl.make_rev_options
    - line.strip
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - pip._internal.vcs.versioncontrol.VersionControl.is_repository_directory
    - pip._internal.utils.misc.split_auth_from_netloc
    - config.write
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - pip._internal.vcs.git.Git.has_commit
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.isdir
    - pip._internal.vcs.git.Git.is_commit_id_equal
    - os.path.abspath
    - config.set
    - pip._internal.vcs.git.Git._git_remote_to_pip_url
    - pip._internal.utils.misc.hide_value
    - pip._internal.vcs.git.Git.get_remote_url
    - match.span
    - current_rev.strip
    - pip._internal.vcs.versioncontrol.VersionControl.update
    - os.path.normcase
    - os.path.exists
    - match.group
    - os.path.dirname
    - response.strip
    - pip._internal.vcs.subversion.Subversion.get_remote_call_options
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.subversion.Subversion._get_svn_url_rev
    - pip._internal.vcs.versioncontrol.VersionControl.obtain
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - pip._internal.vcs.versioncontrol.VersionControl._is_local_repository
    - f.read
    - shlex.quote
    - <builtin>.max
    - typing.cast.critical
    - line.startswith
    - pip._internal.vcs.versioncontrol.VersionControl.get_url_rev_and_auth
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - pip._internal.vcs.subversion.Subversion.get_url_rev_and_auth
    - <builtin>.bool
    - original_word.lower
    - pip._internal.utils.misc.ask
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._internal.vcs.versioncontrol.VersionControl.fetch_new
    - pip._internal.vcs.git.Git.get_revision
    - os.environ.get
    - line.split
    - line.rstrip
    - pip._internal.vcs.git.looks_like_hash
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.vcs.mercurial.Mercurial.update
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.list
    - scheme.endswith
    - pip._internal.vcs.subversion.Subversion.fetch_new
    - auth.split
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.misc.hide_url
    - pip._vendor.rich.style.Style.__init__
    - version.startswith
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.vcs.versioncontrol.VersionControl.compare_urls
    - pip._internal.vcs.subversion.Subversion.switch
    - typing.cast
    - refs.get
    - _svn_rev_re.finditer
    - pip._internal.utils.subprocess.call_subprocess
    - url.strip
    - urllib.request.pathname2url
    - typing.cast.warning
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.vcs.subversion.Subversion.call_vcs_version
    - repo.startswith
    - pip._internal.vcs.subversion.Subversion.get_netloc_and_auth
    - pip._internal.vcs.subversion.Subversion.update
    - urllib.request.url2pathname
    - command_args.append
    - pip._internal.utils.misc._transform_url
    - <builtin>.open
    - rev_options.make_new
    - all_output.append
    - <builtin>.getattr
    - <builtin>.all
    - style_stack.append
    - config.read
    - <builtin>.input
    - pip._internal.vcs.git.Git.get_current_branch
    - color_rgb.split
    - urllib.parse.unquote
    - pip._internal.vcs.mercurial.Mercurial.is_commit_id_equal
    - data.split
    - pip._internal.utils.misc.ask_path_exists
    - pip._internal.vcs.mercurial.Mercurial.fetch_new
    - typing.cast.getEffectiveLevel
    - pip._internal.vcs.git.Git.get_url_rev_and_auth
    - SCP_REGEX.match
    - pip._internal.utils.misc.redact_netloc
    - logger.debug
    - _svn_info_xml_url_re.search
    - plain_text.replace
    - re.match
    - version.partition
    - style.strip
    - rev_options.to_args
    - shutil.move
    - output.startswith
    - rev_options.to_display
    - pip._vendor.rich.markup._parse
    - variants.get
    - m.group
    - style_definition.split
    - scheme.split
    - scp_match.expand
    - rev.startswith
    - os.environ.copy
    - command_args.extend
    - style_definition.strip
    - _svn_xml_url_re.search
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - pip._internal.utils.misc.rmtree
    - random.randint
    - pip._internal.vcs.git.Git.update_submodules
    - urllib.parse.urlunsplit
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - HASH_REGEX.match
    - pip._internal.vcs.versioncontrol.RevOptions.__init__
    - pip._internal.vcs.git.Git.switch
    - <builtin>.reversed
    - pip._internal.vcs.versioncontrol.VersionControl.get_url_rev_options
    - functools.partial
    - <builtin>.print
    - pip._internal.vcs.versioncontrol.VersionControl.get_remote_url
    - logger.info
    - pip._internal.vcs.versioncontrol.VersionControl.switch
    - pip._internal.vcs.git.Git.resolve_revision
    - pip._internal.utils.misc.HiddenText.__init__
    - style_stack.pop
    - pip._internal.vcs.versioncontrol.VersionControl.is_commit_id_equal
    - os.path.splitdrive
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7f30caddd8e0>
    - <ast.Constant object at 0x7f30caddd8b0>
    - <ast.Constant object at 0x7f30caddd880>
    - <ast.Constant object at 0x7f30caddd850>
    - <ast.Constant object at 0x7f30caddd820>
    - <ast.Constant object at 0x7f30caddd7f0>
    - <ast.Constant object at 0x7f30caddd7c0>
    - <ast.Constant object at 0x7f30caddd790>
    - <ast.Constant object at 0x7f30caddd760>
    argNames:
    - cls
    - cmd
    - show_stdout
    - cwd
    - on_returncode
    - extra_ok_returncodes
    - command_desc
    - extra_environ
    - spinner
    - log_failed_cmd
    - stdout_only
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 621
    functionName: pip._internal.vcs.versioncontrol.VersionControl.run_command
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 42
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised:
    - BadCommand
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 685
    functionName: pip._internal.vcs.versioncontrol.VersionControl.get_repository_root
    functionSourceFile: pip._internal.vcs.versioncontrol
    functionUses: 0
    functionsReached:
    - logger.debug
    - os.path.exists
    - pip._internal.vcs.versioncontrol.VersionControl.is_repository_directory
    - os.path.join
    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: 4
    functionLinenumber: -1
    functionName: pip._internal.vcs.mercurial
    functionSourceFile: pip._internal.vcs.mercurial
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._internal.vcs.subversion.Subversion.__init__
    - sys.stdin.isatty
    - logger.debug
    - logging.getLogger
    - pip._internal.vcs.versioncontrol.VcsSupport.register
    - pip._internal.utils.misc.is_console_interactive
    - logger.warning
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rev_options.to_args
    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: config.read
    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: config.set
    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: config.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: url.strip
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 138
    functionName: pip._internal.vcs.mercurial.Mercurial.get_repository_root
    functionSourceFile: pip._internal.vcs.mercurial
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - r.rstrip
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - logger.debug
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.rstrip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: -1
    functionName: pip._internal.vcs.subversion
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._internal.vcs.subversion.Subversion.__init__
    - sys.stdin.isatty
    - logger.debug
    - logging.getLogger
    - pip._internal.vcs.versioncontrol.VcsSupport.register
    - re.compile
    - pip._internal.utils.misc.is_console_interactive
    - logger.warning
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dirs.remove
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 133
    functionName: pip._internal.vcs.subversion.Subversion._get_svn_url_rev
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 6
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - _svn_info_xml_rev_re.finditer
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - data.startswith
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - os.path.exists
    - match.group
    - RE_COLOR.match
    - proc.stdout.close
    - f.read
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - <builtin>.max
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.list
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - _svn_rev_re.finditer
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.open
    - <builtin>.all
    - color_rgb.split
    - data.split
    - typing.cast.getEffectiveLevel
    - _svn_info_xml_url_re.search
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - m.group
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - _svn_xml_url_re.search
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: dirurl.startswith
    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: data.startswith
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.split
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _svn_xml_url_re.search
    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: _svn_rev_re.finditer
    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: _svn_info_xml_url_re.search
    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: _svn_info_xml_rev_re.finditer
    functionSourceFile: <builtin>
    functionUses: 7
    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: 10
    functionLinenumber: 201
    functionName: pip._internal.vcs.subversion.Subversion.call_vcs_version
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 7
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - <builtin>.tuple
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - version.startswith
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - version.partition
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: version.startswith
    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: version.partition
    functionSourceFile: <builtin>
    functionUses: 8
    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: 11
    functionLinenumber: 229
    functionName: pip._internal.vcs.subversion.Subversion.get_vcs_version
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 6
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - <builtin>.tuple
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - version.startswith
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - pip._internal.vcs.subversion.Subversion.call_vcs_version
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - version.partition
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    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: 12
    functionLinenumber: 249
    functionName: pip._internal.vcs.subversion.Subversion.get_remote_call_options
    functionSourceFile: pip._internal.vcs.subversion
    functionUses: 5
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.vcs.subversion.Subversion.get_vcs_version
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - <builtin>.tuple
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - <builtin>.map
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - version.startswith
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - pip._internal.vcs.subversion.Subversion.call_vcs_version
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - version.partition
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    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: 4
    functionLinenumber: -1
    functionName: pip._internal.vcs.git
    functionSourceFile: pip._internal.vcs.git
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._internal.vcs.subversion.Subversion.__init__
    - sys.stdin.isatty
    - logger.debug
    - logging.getLogger
    - pip._internal.vcs.versioncontrol.VcsSupport.register
    - re.compile
    - pip._internal.utils.misc.is_console_interactive
    - logger.warning
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - sha
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 55
    functionName: pip._internal.vcs.git.looks_like_hash
    functionSourceFile: pip._internal.vcs.git
    functionUses: 6
    functionsReached:
    - <builtin>.bool
    - HASH_REGEX.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: HASH_REGEX.match
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - dest
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 79
    functionName: pip._internal.vcs.git.Git.is_immutable_rev_checkout
    functionSourceFile: pip._internal.vcs.git
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._internal.vcs.bazaar.Bazaar.get_url_rev_and_auth
    - output.strip
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._internal.utils.misc._redact_netloc
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - scheme.find
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._internal.vcs.subversion.Subversion.make_rev_args
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._internal.utils.misc.redact_auth_from_url
    - urllib.parse.quote
    - pip._internal.vcs.versioncontrol.VersionControl.make_rev_args
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - pip._internal.vcs.git.Git.get_revision_sha
    - proc.wait
    - path.rsplit
    - pip._internal.vcs.versioncontrol.VersionControl.get_netloc_and_auth
    - path.lstrip
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.vcs.versioncontrol.VersionControl.make_rev_options
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - pip._internal.utils.misc.split_auth_from_netloc
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._internal.vcs.git.Git.is_commit_id_equal
    - pip._internal.utils.misc.hide_value
    - match.span
    - current_rev.strip
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - pip._internal.vcs.versioncontrol.VersionControl.get_url_rev_and_auth
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - pip._internal.vcs.subversion.Subversion.get_url_rev_and_auth
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._internal.vcs.git.Git.get_revision
    - line.split
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - scheme.endswith
    - auth.split
    - pip._internal.utils.misc.hide_url
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - refs.get
    - typing.cast
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.vcs.subversion.Subversion.get_netloc_and_auth
    - urllib.request.url2pathname
    - command_args.append
    - all_output.append
    - pip._internal.utils.misc._transform_url
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - urllib.parse.unquote
    - typing.cast.getEffectiveLevel
    - pip._internal.vcs.git.Git.get_url_rev_and_auth
    - pip._internal.utils.misc.redact_netloc
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - scheme.split
    - os.environ.copy
    - command_args.extend
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - urllib.parse.urlunsplit
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - pip._internal.vcs.versioncontrol.RevOptions.__init__
    - <builtin>.reversed
    - pip._internal.vcs.versioncontrol.VersionControl.get_url_rev_options
    - pip._internal.utils.misc.HiddenText.__init__
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - dest
    - rev
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 132
    functionName: pip._internal.vcs.git.Git.get_revision_sha
    functionSourceFile: pip._internal.vcs.git
    functionUses: 6
    functionsReached:
    - <builtin>.sum
    - output.strip
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.split
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - refs.get
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - command_args.extend
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: 10
    functionLinenumber: 93
    functionName: pip._internal.vcs.git.Git.get_git_version
    functionSourceFile: pip._internal.vcs.git
    functionUses: 4
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - logger.warning
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - GIT_VERSION_REGEX.match
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - match.group
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: GIT_VERSION_REGEX.match
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 107
    functionName: pip._internal.vcs.git.Git.get_current_branch
    functionSourceFile: pip._internal.vcs.git
    functionUses: 3
    functionsReached:
    - <builtin>.sum
    - output.strip
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - ref.startswith
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - command_args.extend
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.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: ref.startswith
    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: refs.get
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - dest
    - rev
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 178
    functionName: pip._internal.vcs.git.Git._should_fetch
    functionSourceFile: pip._internal.vcs.git
    functionUses: 5
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - pip._internal.vcs.git.Git.has_commit
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - pip._internal.vcs.git.looks_like_hash
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - rev.startswith
    - command_args.extend
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - HASH_REGEX.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rev.startswith
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - location
    - rev
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 410
    functionName: pip._internal.vcs.git.Git.has_commit
    functionSourceFile: pip._internal.vcs.git
    functionUses: 6
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - dest
    - url
    - rev_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 201
    functionName: pip._internal.vcs.git.Git.resolve_revision
    functionSourceFile: pip._internal.vcs.git
    functionUses: 4
    functionsReached:
    - <builtin>.sum
    - output.strip
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - pip._internal.vcs.git.Git.get_revision_sha
    - proc.wait
    - logger.warning
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.vcs.git.Git._should_fetch
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - pip._internal.vcs.git.Git.has_commit
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - current_rev.strip
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._internal.vcs.git.Git.get_revision
    - line.split
    - line.rstrip
    - pip._internal.vcs.git.looks_like_hash
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - refs.get
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - rev_options.make_new
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - rev_options.to_args
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - rev.startswith
    - command_args.extend
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - HASH_REGEX.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rev_options.make_new
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 487
    functionName: pip._internal.vcs.git.Git.update_submodules
    functionSourceFile: pip._internal.vcs.git
    functionUses: 5
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - os.path.exists
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stdout.splitlines
    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: remote.startswith
    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: found_remote.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 379
    functionName: pip._internal.vcs.git.Git._git_remote_to_pip_url
    functionSourceFile: pip._internal.vcs.git
    functionUses: 4
    functionsReached:
    - pathlib.PurePath
    - os.path.exists
    - SCP_REGEX.match
    - scp_match.expand
    - re.match
    linkageType: pythonLinkage
    raised:
    - RemoteNotValidError
    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: pathlib.PurePath
    functionSourceFile: pathlib
    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: SCP_REGEX.match
    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: scp_match.expand
    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: current_rev.strip
    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: scheme.endswith
    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: scheme.find
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 496
    functionName: pip._internal.vcs.git.Git.get_repository_root
    functionSourceFile: pip._internal.vcs.git
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._internal.utils.subprocess.make_command
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - r.rstrip
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - pip._internal.vcs.versioncontrol.VersionControl.run_command
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - command_args.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - logger.debug
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - command_args.extend
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    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: 4
    functionLinenumber: -1
    functionName: pip._internal.vcs.bazaar
    functionSourceFile: pip._internal.vcs.bazaar
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._internal.vcs.subversion.Subversion.__init__
    - sys.stdin.isatty
    - logger.debug
    - logging.getLogger
    - pip._internal.vcs.versioncontrol.VcsSupport.register
    - pip._internal.utils.misc.is_console_interactive
    - logger.warning
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.startswith
    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: urls.splitlines
    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: revision.splitlines
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._internal.index.collector
    functionSourceFile: pip._internal.index.collector
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - pip._internal.index.collector.with_cached_index_content
    - functools.wraps
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: pip._internal.index.collector._match_vcs_scheme
    functionSourceFile: pip._internal.index.collector
    functionUses: 3
    functionsReached:
    - url.lower
    - <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.lower
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - content_type
    - request_desc
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: pip._internal.index.collector._NotAPIContent.__init__
    functionSourceFile: pip._internal.index.collector
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - response
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 68
    functionName: pip._internal.index.collector._ensure_api_header
    functionSourceFile: pip._internal.index.collector
    functionUses: 5
    functionsReached:
    - content_type.lower
    - response.headers.get
    - content_type_l.startswith
    linkageType: pythonLinkage
    raised:
    - _NotAPIContent
    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: content_type.lower
    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: content_type_l.startswith
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - session
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 94
    functionName: pip._internal.index.collector._ensure_api_response
    functionSourceFile: pip._internal.index.collector
    functionUses: 4
    functionsReached:
    - response.headers.get
    - <builtin>.isinstance
    - urllib.parse.urlsplit
    - pip._internal.index.collector._ensure_api_header
    - pip._internal.network.utils.raise_for_status
    - content_type.lower
    - session.head
    - content_type_l.startswith
    - resp.reason.decode
    linkageType: pythonLinkage
    raised:
    - _NotHTTP
    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: session.head
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - resp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 29
    functionName: pip._internal.network.utils.raise_for_status
    functionSourceFile: pip._internal.network.utils
    functionUses: 26
    functionsReached:
    - resp.reason.decode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - NetworkConnectionError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 6
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - session
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 112
    functionName: pip._internal.index.collector._get_simple_response
    functionSourceFile: pip._internal.index.collector
    functionUses: 3
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - posixpath.splitext
    - pip._internal.utils.urls.path_to_url
    - format_str.format
    - pip._internal.utils.misc.redact_netloc
    - link_hash.as_dict
    - logger.debug
    - resp.headers.get
    - part.startswith
    - pip._vendor.packaging.version.parse
    - content_type_l.startswith
    - match.groups
    - pip._internal.utils.misc._redact_netloc
    - version.lower
    - part.zfill
    - itertools.dropwhile
    - _legacy_version_component_re.split
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - response.headers.get
    - base.lower
    - <builtin>.str
    - letter.lower
    - pip._internal.network.utils.raise_for_status
    - session.head
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.tuple
    - pip._internal.index.collector._ensure_api_response
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.utils.misc.split_auth_from_netloc
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.index.collector._ensure_api_header
    - auth.split
    - pip._internal.utils.deprecation.deprecated
    - urllib.parse.urlunsplit
    - pip._vendor.packaging.version._parse_local_version
    - session.get
    - os.path.normpath
    - part.isdigit
    - os.path.abspath
    - typing.cast
    - resp.reason.decode
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.utils.filetypes.is_archive_file
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - match.group
    - <builtin>.int
    - pip._internal.utils.misc.splitext
    - _legacy_version_replacement_map.get
    - warnings.warn
    - urllib.parse.quote
    - content_type.lower
    - pip._internal.utils.misc._transform_url
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - cls._hash_url_fragment_re.search
    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: session.get
    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: resp.headers.get
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - headers
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 175
    functionName: pip._internal.index.collector._get_encoding_from_headers
    functionSourceFile: pip._internal.index.collector
    functionUses: 4
    functionsReached:
    - email.message.Message
    - m.get_param
    - <builtin>.str
    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: email.message.Message
    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: m.get_param
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - page
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 187
    functionName: pip._internal.index.collector.CacheablePageContent.__init__
    functionSourceFile: pip._internal.index.collector
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 191
    functionName: pip._internal.index.collector.CacheablePageContent.__eq__
    functionSourceFile: pip._internal.index.collector
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 194
    functionName: pip._internal.index.collector.CacheablePageContent.__hash__
    functionSourceFile: pip._internal.index.collector
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - page
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 199
    functionName: pip._internal.index.collector.ParseLinks.__call__
    functionSourceFile: pip._internal.index.collector
    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:
    - fn
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 203
    functionName: pip._internal.index.collector.with_cached_index_content
    functionSourceFile: pip._internal.index.collector
    functionUses: 1
    functionsReached:
    - functools.wraps
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cacheable_page
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 211
    functionName: pip._internal.index.collector.with_cached_index_content.wrapper
    functionSourceFile: pip._internal.index.collector
    functionUses: 1
    functionsReached:
    - urllib.parse.unquote
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - pip._internal.models.link.supported_hashes
    - pip._internal.utils.urls.path_to_url
    - file_data.get
    - link_hash.as_dict
    - format_str.format
    - logger.debug
    - part.startswith
    - content_type_l.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - itertools.dropwhile
    - version.lower
    - part.zfill
    - _legacy_version_component_re.split
    - html.parser.HTMLParser.anchors.get
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - result._replace
    - json.loads
    - reserved.upper
    - itertools.chain
    - <builtin>.str
    - parts.pop
    - html.parser.HTMLParser.feed
    - pip._internal.models.link._ensure_quoted_url
    - letter.lower
    - pip._internal.index.collector.parse_links
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - itertools.zip_longest
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - metadata_info.partition
    - hashes.items
    - pip._internal.models.link._clean_url_path
    - page.content.decode
    - pip._internal.models.link.Link._egg_fragment
    - urllib.parse.urlunparse
    - pip._internal.models.link.Link.from_json
    - pip._internal.models.link.Link.from_element
    - cleaned_parts.append
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - _reserved_chars_re.split
    - os.path.normpath
    - pip._internal.utils.misc.pairwise
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.models.link._clean_file_url_path
    - pip._vendor.packaging.version._parse_letter_version
    - page.content_type.lower
    - data.get
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.models.link._clean_url_path_part
    - urllib.parse.urlsplit
    - <builtin>.int
    - match.group
    - part.isdigit
    - urllib.request.url2pathname
    - _legacy_version_replacement_map.get
    - pip._internal.index.collector.HTMLLinkParser.__init__
    - warnings.warn
    - urllib.parse.quote
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - page
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 215
    functionName: pip._internal.index.collector.with_cached_index_content.wrapper_wrapper
    functionSourceFile: pip._internal.index.collector
    functionUses: 0
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - match.groups
    - itertools.dropwhile
    - result._replace
    - <builtin>.str
    - itertools.chain
    - pip._internal.models.link._ensure_quoted_url
    - pip._internal.index.collector.CacheablePageContent.__init__
    - <builtin>.tuple
    - hashes.items
    - pip._internal.models.link._clean_url_path
    - os.path.normpath
    - pip._internal.utils.misc.pairwise
    - pip._internal.index.collector.with_cached_index_content.wrapper
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.quote
    - urllib.parse.urljoin
    - urllib.parse.urlparse
    - cls._hash_url_fragment_re.search
    - pip._internal.models.link.supported_hashes
    - part.startswith
    - content_type_l.startswith
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.super
    - urllib.parse.urlunparse
    - pip._internal.models.link.Link.from_json
    - cleaned_parts.append
    - <builtin>.iter
    - os.path.abspath
    - match.group
    - pip._internal.index.collector.HTMLLinkParser.__init__
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.isinstance
    - link_hash.as_dict
    - version.lower
    - part.zfill
    - html.parser.HTMLParser.anchors.get
    - html.parser.HTMLParser.feed
    - <builtin>.list
    - metadata_info.partition
    - page.content.decode
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.models.link.Link.from_element
    - parts.pop
    - page.content_type.lower
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - urllib.request.url2pathname
    - _legacy_version_replacement_map.get
    - urllib.parse.unquote
    - format_str.format
    - file_data.get
    - logger.debug
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - json.loads
    - reserved.upper
    - letter.lower
    - pip._internal.index.collector.parse_links
    - itertools.zip_longest
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - _reserved_chars_re.split
    - pip._internal.models.link._clean_file_url_path
    - pip._vendor.packaging.version._parse_letter_version
    - data.get
    - <builtin>.reversed
    - pip._internal.models.link._clean_url_path_part
    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: page.content_type.lower
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 286
    functionName: pip._internal.index.collector.HTMLLinkParser.__init__
    functionSourceFile: pip._internal.index.collector
    functionUses: 4
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: page.content.decode
    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: html.parser.HTMLParser.feed
    functionSourceFile: html
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c01100>
    argNames:
    - self
    - content
    - content_type
    - encoding
    - url
    - cache_link_parsing
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 255
    functionName: pip._internal.index.collector.IndexContent.__init__
    functionSourceFile: pip._internal.index.collector
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 276
    functionName: pip._internal.index.collector.IndexContent.__str__
    functionSourceFile: pip._internal.index.collector
    functionUses: 0
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc._redact_netloc
    - typing.cast
    - pip._internal.utils.misc.split_auth_from_netloc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tag
    - attrs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 293
    functionName: pip._internal.index.collector.HTMLLinkParser.handle_starttag
    functionSourceFile: pip._internal.index.collector
    functionUses: 0
    functionsReached:
    - <builtin>.dict
    - pip._internal.index.collector.HTMLLinkParser.get_href
    - html.parser.HTMLParser.anchors.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - attrs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 301
    functionName: pip._internal.index.collector.HTMLLinkParser.get_href
    functionSourceFile: ''
    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: html.parser.HTMLParser.anchors.append
    functionSourceFile: html
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e8f9fdc0>
    argNames:
    - link
    - reason
    - meth
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 308
    functionName: pip._internal.index.collector._handle_get_simple_fail
    functionSourceFile: pip._internal.index.collector
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e8f9f970>
    argNames:
    - response
    - cache_link_parsing
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 318
    functionName: pip._internal.index.collector._make_index_content
    functionSourceFile: pip._internal.index.collector
    functionUses: 3
    functionsReached:
    - pip._internal.index.collector._get_encoding_from_headers
    - pip._internal.index.collector.IndexContent.__init__
    - <builtin>.str
    - email.message.Message
    - m.get_param
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 9
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - link
    - session
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 331
    functionName: pip._internal.index.collector._get_index_content
    functionSourceFile: pip._internal.index.collector
    functionUses: 2
    functionsReached:
    - pip._internal.index.collector._get_encoding_from_headers
    - pip._internal.index.collector.IndexContent.__init__
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - link.url.split
    - pip._internal.utils.misc._redact_netloc
    - match.groups
    - itertools.dropwhile
    - base.lower
    - <builtin>.str
    - pip._internal.index.collector._make_index_content
    - <builtin>.tuple
    - session.get
    - os.path.normpath
    - url.endswith
    - pip._internal.index.collector._get_simple_response
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.utils.misc.redact_auth_from_url
    - urllib.parse.quote
    - urllib.parse.urljoin
    - pip._internal.index.collector._ensure_api_response
    - urllib.parse.urlparse
    - logger.warning
    - cls._hash_url_fragment_re.search
    - email.message.Message
    - part.startswith
    - content_type_l.startswith
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.utils.misc.split_auth_from_netloc
    - part.lower
    - <builtin>.super
    - os.path.isdir
    - os.path.abspath
    - resp.reason.decode
    - match.group
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - link_hash.as_dict
    - resp.headers.get
    - version.lower
    - part.zfill
    - url.lower
    - pip._internal.index.collector._handle_get_simple_fail
    - session.head
    - <builtin>.list
    - pip._internal.models.link.Link._egg_fragment
    - auth.split
    - <builtin>.len
    - typing.cast
    - parts.pop
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - urllib.parse.urlsplit
    - urllib.request.url2pathname
    - _legacy_version_replacement_map.get
    - content_type.lower
    - pip._internal.utils.misc._transform_url
    - m.get_param
    - urllib.parse.unquote
    - posixpath.splitext
    - format_str.format
    - pip._internal.utils.misc.redact_netloc
    - logger.debug
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - response.headers.get
    - letter.lower
    - pip._internal.network.utils.raise_for_status
    - pip._internal.index.collector._ensure_api_header
    - pip._internal.utils.deprecation.deprecated
    - urllib.parse.urlunsplit
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.index.collector._match_vcs_scheme
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._internal.utils.misc.splitext
    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: link.url.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: url.endswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - session
    - search_scope
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 406
    functionName: pip._internal.index.collector.LinkCollector.__init__
    functionSourceFile: pip._internal.index.collector
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e8dcc850>
    argNames:
    - cls
    - session
    - options
    - suppress_no_index
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 415
    functionName: pip._internal.index.collector.LinkCollector.create
    functionSourceFile: pip._internal.index.collector
    functionUses: 13
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.utils.misc._get_netloc
    - built_find_links.append
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.compat.has_tls
    - logger.debug
    - link.startswith
    - pip._internal.utils.misc._redact_netloc
    - itertools.chain
    - os.path.realpath
    - os.path.expanduser
    - pip._internal.utils.misc.split_auth_from_netloc
    - auth.split
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - typing.cast
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.models.search_scope.SearchScope.create
    - os.path.exists
    - os.path.normcase
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - pip._internal.index.collector.LinkCollector.__init__
    - urllib.parse.urlparse
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - find_links
    - index_urls
    - no_index
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 26
    functionName: pip._internal.models.search_scope.SearchScope.create
    functionSourceFile: pip._internal.models.search_scope
    functionUses: 14
    functionsReached:
    - pip._internal.models.search_scope.SearchScope.__init__
    - built_find_links.append
    - itertools.chain
    - os.path.exists
    - os.path.realpath
    - os.path.normcase
    - pip._internal.utils.compat.has_tls
    - link.startswith
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - os.path.expanduser
    - urllib.parse.urlparse
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 449
    functionName: pip._internal.index.collector.LinkCollector.find_links
    functionSourceFile: pip._internal.index.collector
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 6
    argDefaultValues: []
    argNames:
    - location
    - candidates_from_page
    - page_validator
    - expand_dir
    - cache_link_parsing
    - project_name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 226
    functionName: pip._internal.index.sources.build_source
    functionSourceFile: pip._internal.index.sources
    functionUses: 4
    functionsReached:
    - pip._internal.index.sources._FlatDirectorySource.__init__
    - pip._internal.index.sources._IndexDirectorySource.__init__
    - pip._internal.models.link.Link.__init__
    - <builtin>.isinstance
    - pip._internal.utils.urls.path_to_url
    - format_str.format
    - link_hash.as_dict
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - part.zfill
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._internal.utils.urls.url_to_path
    - collections.defaultdict
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - version.lower
    - _legacy_version_component_re.split
    - <builtin>.str
    - url.split
    - letter.lower
    - pip._internal.index.sources._RemoteFileSource.__init__
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - location.startswith
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._internal.models.link.Link._egg_fragment
    - os.path.isfile
    - <builtin>.len
    - pip._internal.index.sources._LocalFileSource.__init__
    - pip._internal.index.sources._FlatDirectoryToUrls.__init__
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.isdir
    - os.path.abspath
    - typing.cast
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - os.path.exists
    - match.group
    - urllib.request.url2pathname
    - _legacy_version_replacement_map.get
    - warnings.warn
    - urllib.parse.urljoin
    - pip._internal.utils.urls.get_url_scheme
    - pip._vendor.packaging.version._legacy_cmpkey
    - logger.warning
    - cls._hash_url_fragment_re.search
    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: pip._internal.network.utils
    functionSourceFile: pip._internal.network.utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp.reason.decode
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30fcc6f340>
    argNames:
    - response
    - chunk_size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: pip._internal.network.utils.response_chunks
    functionSourceFile: pip._internal.network.utils
    functionUses: 11
    functionsReached:
    - response.raw.read
    - response.raw.stream
    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: response.raw.stream
    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: response.raw.read
    functionSourceFile: <builtin>
    functionUses: 12
    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: pip._vendor.requests.models
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: pip._vendor.requests.models.RequestEncodingMixin.path_url
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - urllib.parse.urlsplit
    - url.append
    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.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 107
    functionName: pip._vendor.requests.models.RequestEncodingMixin._encode_params
    functionSourceFile: pip._vendor.requests.models
    functionUses: 27
    functionsReached:
    - <builtin>.isinstance
    - v.encode
    - urllib.parse.urlencode
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - k.encode
    - <builtin>.list
    - result.append
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 340
    functionName: pip._vendor.requests.utils.to_key_val_list
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 32
    functionsReached:
    - collections.abc.MutableMapping.items
    - <builtin>.list
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: k.encode
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.encode
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlencode
    functionSourceFile: urllib
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 4
    IfCount: 11
    argCount: 2
    argDefaultValues: []
    argNames:
    - files
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 137
    functionName: pip._vendor.requests.models.RequestEncodingMixin._encode_files
    functionSourceFile: pip._vendor.requests.models
    functionUses: 26
    functionsReached:
    - os.urandom
    - v.encode
    - <builtin>.isinstance
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - io.BytesIO.getvalue
    - d.items
    - pip._vendor.urllib3.filepost.choose_boundary
    - <builtin>.dict
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - <builtin>.str
    - s.encode
    - io.BytesIO
    - <builtin>.list
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - new_fields.append
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.urllib3.packages.six.iteritems
    - boundary.decode
    - binascii.hexlify
    - <builtin>.iter
    - d.iteritems
    - fp.read
    - pip._vendor.urllib3.fields.guess_content_type
    - os.path.basename
    - request_param.make_multipart
    - field.render_headers
    - pip._vendor.urllib3.packages.six.b
    - <builtin>.getattr
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - field.decode
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: field.decode
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_fields.append
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 256
    functionName: pip._vendor.requests.utils.guess_filename
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 27
    functionsReached:
    - <builtin>.getattr
    - <builtin>.isinstance
    - os.path.basename
    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: fp.read
    functionSourceFile: <builtin>
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30dbade610>
    - <ast.Constant object at 0x7f30dbadee50>
    - <ast.Name object at 0x7f30dbaded60>
    argNames:
    - self
    - name
    - data
    - filename
    - headers
    - header_formatter
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 143
    functionName: pip._vendor.urllib3.fields.RequestField.__init__
    functionSourceFile: pip._vendor.urllib3.fields
    functionUses: 32
    functionsReached:
    - <builtin>.dict
    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 0x7f30e26a87f0>
    - <ast.Constant object at 0x7f30e26a8ac0>
    - <ast.Constant object at 0x7f30e26a8610>
    argNames:
    - self
    - content_disposition
    - content_type
    - content_location
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 249
    functionName: pip._vendor.urllib3.fields.RequestField.make_multipart
    functionSourceFile: ''
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a8130>
    argNames:
    - fields
    - boundary
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 63
    functionName: pip._vendor.urllib3.filepost.encode_multipart_formdata
    functionSourceFile: pip._vendor.urllib3.filepost
    functionUses: 29
    functionsReached:
    - os.urandom
    - <builtin>.isinstance
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - io.BytesIO.getvalue
    - d.items
    - pip._vendor.urllib3.filepost.choose_boundary
    - <builtin>.dict
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - <builtin>.str
    - s.encode
    - mimetypes.guess_type
    - <builtin>.len
    - pip._vendor.urllib3.packages.six.iteritems
    - boundary.decode
    - binascii.hexlify
    - <builtin>.iter
    - d.iteritems
    - pip._vendor.urllib3.fields.guess_content_type
    - request_param.make_multipart
    - field.render_headers
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.urllib3.filepost.iter_field_objects
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - event
    - hook
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 207
    functionName: pip._vendor.requests.models.RequestHooksMixin.register_hook
    functionSourceFile: pip._vendor.requests.models
    functionUses: 27
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - event
    - hook
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 218
    functionName: pip._vendor.requests.models.RequestHooksMixin.deregister_hook
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa7d60>
    - <ast.Constant object at 0x7f30f4aa77c0>
    - <ast.Constant object at 0x7f30f4aa74f0>
    - <ast.Constant object at 0x7f30f4aa79d0>
    - <ast.Constant object at 0x7f30f4aa7bb0>
    - <ast.Constant object at 0x7f30f4aa7100>
    - <ast.Constant object at 0x7f30f4aa7040>
    - <ast.Constant object at 0x7f30f4aa78b0>
    - <ast.Constant object at 0x7f30f4aa7580>
    - <ast.Constant object at 0x7f30f4aa71f0>
    argNames:
    - self
    - method
    - url
    - headers
    - files
    - data
    - params
    - auth
    - cookies
    - hooks
    - json
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 258
    functionName: pip._vendor.requests.models.Request.__init__
    functionSourceFile: pip._vendor.requests.models
    functionUses: 22
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.requests.hooks.default_hooks
    - hooks.items
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - <builtin>.list
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 15
    functionName: pip._vendor.requests.hooks.default_hooks
    functionSourceFile: ''
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hooks.items
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 293
    functionName: pip._vendor.requests.models.Request.__repr__
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 296
    functionName: pip._vendor.requests.models.Request.prepare
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - h.isalnum
    - urllib.parse.quote.split
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - path.split
    - <builtin>.dict
    - SCHEME_RE.search
    - <builtin>.str
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - result.update
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.parse.urljoin.seek
    - pip._vendor.urllib3.fields.guess_content_type
    - u_string.encode
    - scheme.lower
    - os.path.basename
    - collections.OrderedDict
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.packages.six.b
    - collections.abc.MutableMapping.update
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - collections.abc.MutableMapping.decode
    - <builtin>.hasattr
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - pip._vendor.urllib3.filepost.choose_boundary
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - path.startswith
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - urllib.parse.urlunparse
    - pip._vendor.requests.cookies.get_cookie_header
    - output.insert
    - <builtin>.iter
    - d.iteritems
    - urllib.parse.quote.upper
    - match.span
    - <builtin>.chr
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - field.decode
    - urllib.parse.urlencode.tell
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - v.encode
    - validator.match
    - <builtin>.bool
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - HTTPError.__init__
    - os.fstat
    - path.endswith
    - component.encode
    - pip._vendor.requests.cookies.MockRequest.__init__
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - <builtin>.any
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - s.decode
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - uri_bytes.count
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - <builtin>.hex
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - collections.OrderedDict.values
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - IPV4_RE.match
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - urllib.parse.urlencode.fileno
    - output.append
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.urllib3.fields.RequestField.__init__
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - io.BytesIO.write
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - <builtin>.set
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - encoded_component.decode
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - boundary.decode
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - fp.read
    - zone_id.startswith
    - http.cookiejar.Cookie
    - pip._vendor.requests.utils.requote_uri
    - urllib.parse.urljoin.tell
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 335
    functionName: pip._vendor.requests.models.PreparedRequest.__init__
    functionSourceFile: pip._vendor.requests.models
    functionUses: 27
    functionsReached:
    - pip._vendor.requests.hooks.default_hooks
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 8
    IfCount: 0
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc6f610>
    - <ast.Constant object at 0x7f30fcc6faf0>
    - <ast.Constant object at 0x7f30fcc6f100>
    - <ast.Constant object at 0x7f30fcc6f520>
    - <ast.Constant object at 0x7f30fcc6f940>
    - <ast.Constant object at 0x7f30fcc6fa00>
    - <ast.Constant object at 0x7f30fcc6f6a0>
    - <ast.Constant object at 0x7f30fcc6f910>
    - <ast.Constant object at 0x7f30fcc6fd30>
    - <ast.Constant object at 0x7f30fcc6fcd0>
    argNames:
    - self
    - method
    - url
    - headers
    - files
    - data
    - params
    - auth
    - cookies
    - hooks
    - json
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 352
    functionName: pip._vendor.requests.models.PreparedRequest.prepare
    functionSourceFile: pip._vendor.requests.models
    functionUses: 24
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - h.isalnum
    - urllib.parse.quote.split
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - path.split
    - <builtin>.dict
    - SCHEME_RE.search
    - <builtin>.str
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - result.update
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.parse.urljoin.seek
    - pip._vendor.urllib3.fields.guess_content_type
    - u_string.encode
    - scheme.lower
    - os.path.basename
    - collections.OrderedDict
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.packages.six.b
    - collections.abc.MutableMapping.update
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - collections.abc.MutableMapping.decode
    - <builtin>.hasattr
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - pip._vendor.urllib3.filepost.choose_boundary
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - path.startswith
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - urllib.parse.urlunparse
    - pip._vendor.requests.cookies.get_cookie_header
    - output.insert
    - <builtin>.iter
    - d.iteritems
    - urllib.parse.quote.upper
    - match.span
    - <builtin>.chr
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - field.decode
    - urllib.parse.urlencode.tell
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - v.encode
    - validator.match
    - <builtin>.bool
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - HTTPError.__init__
    - os.fstat
    - path.endswith
    - component.encode
    - pip._vendor.requests.cookies.MockRequest.__init__
    - s.encode
    - collections.abc.MutableMapping.upper
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - <builtin>.any
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - s.decode
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - uri_bytes.count
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - <builtin>.hex
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - collections.OrderedDict.values
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - IPV4_RE.match
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - urllib.parse.urlencode.fileno
    - output.append
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.urllib3.fields.RequestField.__init__
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - io.BytesIO.write
    - authority.rpartition
    - <builtin>.set
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - encoded_component.decode
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - cookie.value.endswith
    - boundary.decode
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - fp.read
    - zone_id.startswith
    - http.cookiejar.Cookie
    - pip._vendor.requests.utils.requote_uri
    - urllib.parse.urljoin.tell
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - method
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 394
    functionName: pip._vendor.requests.models.PreparedRequest.prepare_method
    functionSourceFile: pip._vendor.requests.models
    functionUses: 25
    functionsReached:
    - urllib.parse.urljoin.upper
    - <builtin>.isinstance
    - pip._vendor.requests._internal_utils.to_native_string
    - collections.abc.MutableMapping.upper
    - urllib.parse.urljoin.decode
    - collections.abc.MutableMapping.decode
    - urllib.parse.quote.decode
    - urllib.parse.quote.upper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 1
    IfCount: 12
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - params
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 410
    functionName: pip._vendor.requests.models.PreparedRequest.prepare_url
    functionSourceFile: pip._vendor.requests.models
    functionUses: 25
    functionsReached:
    - <builtin>.isinstance
    - v.encode
    - URI_RE.match
    - urllib.parse.urlunparse.split
    - name.lower
    - host.startswith
    - IPV4_RE.match
    - h.isalnum
    - urllib.parse.quote.split
    - urllib.parse.urljoin.decode
    - HTTPError.__init__
    - path.split
    - output.append
    - path.endswith
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - <builtin>.str
    - byte.decode
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - authority.rpartition
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - k.encode
    - pip._vendor.urllib3.packages.six.raise_from
    - <builtin>.list
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - encoded_component.decode
    - output.pop
    - <builtin>.any
    - path.startswith
    - pip._vendor.idna.encode
    - collections.abc.MutableMapping.split
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - urllib.parse.quote.lower
    - urllib.parse.urlunparse
    - pip._vendor.requests.utils.unquote_unreserved
    - <builtin>.len
    - output.insert
    - collections.namedtuple.__init__
    - s.decode
    - PERCENT_RE.subn
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - <builtin>.range
    - zone_id.startswith
    - u_string.encode
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.requests.utils.requote_uri
    - scheme.lower
    - <builtin>.chr
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - <builtin>.hasattr
    - urllib.parse.urlencode
    - urllib.parse.quote
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.requests.utils.to_key_val_list
    - <builtin>.bytearray
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.packages.six.ensure_text
    - urllib.parse.quote.lstrip
    - result.append
    - collections.abc.MutableMapping.decode
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - InvalidURL
    - MissingSchema
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - headers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 484
    functionName: pip._vendor.requests.models.PreparedRequest.prepare_headers
    functionSourceFile: pip._vendor.requests.models
    functionUses: 25
    functionsReached:
    - pip._vendor.requests.utils._validate_header_part
    - <builtin>.isinstance
    - pip._vendor.requests._internal_utils.to_native_string
    - validator.match
    - collections.OrderedDict
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - pip._vendor.requests.utils.check_header_validity
    - urllib.parse.urljoin.decode
    - collections.abc.MutableMapping.items
    - urllib.parse.quote.decode
    - collections.abc.MutableMapping.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cookies
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 611
    functionName: pip._vendor.requests.models.PreparedRequest.prepare_cookies
    functionSourceFile: pip._vendor.requests.models
    functionUses: 27
    functionsReached:
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.requests.cookies.MockRequest.__init__
    - <builtin>.set
    - result.update
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - <builtin>.super
    - pip._vendor.requests.cookies.get_cookie_header
    - cookie.value.endswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - pip._vendor.requests.cookies.create_cookie
    - cookie.value.startswith
    - urllib.parse.urlparse
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 2
    IfCount: 10
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e2d65640>
    argNames:
    - self
    - data
    - files
    - json
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 495
    functionName: pip._vendor.requests.models.PreparedRequest.prepare_body
    functionSourceFile: pip._vendor.requests.models
    functionUses: 25
    functionsReached:
    - urllib.parse.urlencode.seek
    - os.urandom
    - collections.abc.MutableMapping.fileno
    - <builtin>.isinstance
    - v.encode
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - <builtin>.object
    - io.BytesIO.getvalue
    - collections.abc.MutableMapping.tell
    - urllib.parse.urljoin.fileno
    - urllib.parse.quote.fileno
    - d.items
    - urllib.parse.quote.encode
    - pip._vendor.urllib3.filepost.choose_boundary
    - os.fstat
    - <builtin>.dict
    - urllib.parse.urlencode.fileno
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - <builtin>.str
    - s.encode
    - urllib.parse.urljoin.encode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - urllib.parse.quote.tell
    - k.encode
    - <builtin>.list
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.encode
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.urllib3.packages.six.iteritems
    - boundary.decode
    - binascii.hexlify
    - <builtin>.iter
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - d.iteritems
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - fp.read
    - pip._vendor.requests.utils.super_len
    - urllib.parse.urljoin.seek
    - pip._vendor.urllib3.fields.guess_content_type
    - <builtin>.max
    - os.path.basename
    - <builtin>.hasattr
    - request_param.make_multipart
    - urllib.parse.urlencode
    - urllib.parse.urljoin.tell
    - warnings.warn
    - field.render_headers
    - pip._vendor.urllib3.packages.six.b
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.utils.to_key_val_list
    - urllib.parse.urlencode.tell
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - field.decode
    - urllib.parse.quote.seek
    - result.append
    - io.BytesIO
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    - InvalidJSONError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e2d64850>
    argNames:
    - self
    - auth
    - url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 589
    functionName: pip._vendor.requests.models.PreparedRequest.prepare_auth
    functionSourceFile: pip._vendor.requests.models
    functionUses: 28
    functionsReached:
    - urllib.parse.urlencode.seek
    - urllib.parse.unquote
    - collections.abc.MutableMapping.fileno
    - <builtin>.isinstance
    - pip._vendor.requests.utils.get_auth_from_url
    - collections.abc.MutableMapping.tell
    - urllib.parse.urljoin.fileno
    - urllib.parse.quote.fileno
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - os.fstat
    - urllib.parse.urlencode.fileno
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - urllib.parse.quote.tell
    - <builtin>.any
    - collections.abc.MutableMapping.seek
    - <builtin>.len
    - pip._vendor.requests.utils.super_len
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - urllib.parse.urljoin.seek
    - collections.OrderedDict
    - warnings.warn
    - urllib.parse.urljoin.tell
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - urllib.parse.urlencode.tell
    - <builtin>.max
    - urllib.parse.urlparse
    - urllib.parse.quote.seek
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hooks
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 631
    functionName: pip._vendor.requests.models.PreparedRequest.prepare_hooks
    functionSourceFile: pip._vendor.requests.models
    functionUses: 25
    functionsReached:
    - <builtin>.isinstance
    - collections.OrderedDict.values
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 380
    functionName: pip._vendor.requests.models.PreparedRequest.__repr__
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 383
    functionName: pip._vendor.requests.models.PreparedRequest.copy
    functionSourceFile: pip._vendor.requests.models
    functionUses: 24
    functionsReached:
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - <builtin>.isinstance
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - cookie.value.replace
    - pip._vendor.requests.cookies._copy_cookie_jar
    - new_jar.clear
    - http.cookiejar.CookieJar.set_policy
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - pip._vendor.requests.hooks.default_hooks
    - copy.copy
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - <builtin>.super
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - new_jar.set_cookie
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - collections.OrderedDict.values
    - collections.OrderedDict
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - collections.abc.MutableMapping.__init__
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 76
    functionName: pip._vendor.requests.structures.CaseInsensitiveDict.copy
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 25
    functionsReached:
    - collections.OrderedDict.values
    - collections.OrderedDict
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - jar
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 440
    functionName: pip._vendor.requests.cookies._copy_cookie_jar
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 25
    functionsReached:
    - http.cookiejar.CookieJar.set_policy
    - <builtin>.super
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - <builtin>.isinstance
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - cookie.value.replace
    - cookie.value.endswith
    - copy.copy
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - cookie.value.startswith
    - new_jar.clear
    - new_jar.set_cookie
    - collections.abc.MutableMapping.__init__
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin.upper
    functionSourceFile: urllib
    functionUses: 26
    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.abc.MutableMapping.upper
    functionSourceFile: collections
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote.upper
    functionSourceFile: urllib
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2112370>
    argNames:
    - string
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 25
    functionName: pip._vendor.requests._internal_utils.to_native_string
    functionSourceFile: pip._vendor.requests._internal_utils
    functionUses: 40
    functionsReached:
    - collections.abc.MutableMapping.decode
    - <builtin>.isinstance
    - urllib.parse.urljoin.decode
    - urllib.parse.quote.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - host
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 401
    functionName: pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    functionSourceFile: pip._vendor.requests.models
    functionUses: 26
    functionsReached:
    - pip._vendor.idna.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.idna.encode
    functionSourceFile: ''
    functionUses: 54
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote.decode
    functionSourceFile: urllib
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote.lstrip
    functionSourceFile: urllib
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote.lower
    functionSourceFile: urllib
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 1
    IfCount: 14
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 333
    functionName: pip._vendor.urllib3.util.url.parse_url
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 44
    functionsReached:
    - <builtin>.isinstance
    - URI_RE.match
    - name.lower
    - IPV4_RE.match
    - <builtin>.bytearray
    - HTTPError.__init__
    - path.split
    - output.append
    - path.endswith
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - byte.decode
    - ZONE_ID_RE.search
    - authority.rpartition
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - encoded_component.decode
    - output.pop
    - path.startswith
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - zone_id.startswith
    - <builtin>.int
    - scheme.lower
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - LocationParseError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - u_string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 38
    functionName: pip._vendor.requests._internal_utils.unicode_is_ascii
    functionSourceFile: pip._vendor.requests._internal_utils
    functionUses: 26
    functionsReached:
    - <builtin>.isinstance
    - u_string.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - uri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 659
    functionName: pip._vendor.requests.utils.requote_uri
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 28
    functionsReached:
    - <builtin>.chr
    - <builtin>.int
    - pip._vendor.requests.utils.unquote_unreserved
    - urllib.parse.urljoin.split
    - <builtin>.len
    - urllib.parse.urlunparse.split
    - urllib.parse.quote
    - h.isalnum
    - urllib.parse.quote.split
    - collections.abc.MutableMapping.split
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e82ee760>
    argNames:
    - self
    - data
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 57
    functionsReached:
    - collections.OrderedDict
    - collections.abc.MutableMapping.update
    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.abc.MutableMapping.items
    functionSourceFile: collections
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - header
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1032
    functionName: pip._vendor.requests.utils.check_header_validity
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 26
    functionsReached:
    - pip._vendor.requests.utils._validate_header_part
    - <builtin>.isinstance
    - validator.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin.encode
    functionSourceFile: urllib
    functionUses: 26
    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.abc.MutableMapping.encode
    functionSourceFile: collections
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote.encode
    functionSourceFile: urllib
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 3
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - o
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 133
    functionName: pip._vendor.requests.utils.super_len
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 31
    functionsReached:
    - urllib.parse.urlencode.seek
    - urllib.parse.urljoin.seek
    - collections.abc.MutableMapping.fileno
    - collections.abc.MutableMapping.seek
    - collections.abc.MutableMapping.tell
    - urllib.parse.urljoin.fileno
    - <builtin>.len
    - urllib.parse.quote.fileno
    - warnings.warn
    - urllib.parse.urljoin.tell
    - urllib.parse.urlencode.tell
    - urllib.parse.quote.tell
    - os.fstat
    - <builtin>.max
    - urllib.parse.urlencode.fileno
    - urllib.parse.quote.seek
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.abc.MutableMapping.tell
    functionSourceFile: collections
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlencode.tell
    functionSourceFile: urllib
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote.tell
    functionSourceFile: urllib
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin.tell
    functionSourceFile: urllib
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - body
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 573
    functionName: pip._vendor.requests.models.PreparedRequest.prepare_content_length
    functionSourceFile: pip._vendor.requests.models
    functionUses: 30
    functionsReached:
    - urllib.parse.urlencode.seek
    - collections.abc.MutableMapping.fileno
    - urllib.parse.quote.seek
    - collections.abc.MutableMapping.tell
    - urllib.parse.urljoin.fileno
    - urllib.parse.quote.fileno
    - os.fstat
    - urllib.parse.urlencode.fileno
    - collections.abc.MutableMapping.get
    - urllib.parse.quote.tell
    - collections.abc.MutableMapping.seek
    - <builtin>.len
    - pip._vendor.requests.utils.super_len
    - urllib.parse.urljoin.seek
    - warnings.warn
    - urllib.parse.urljoin.tell
    - <builtin>.max
    - urllib.parse.urlencode.tell
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.abc.MutableMapping.get
    functionSourceFile: collections
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1016
    functionName: pip._vendor.requests.utils.get_auth_from_url
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 34
    functionsReached:
    - urllib.parse.unquote
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - username
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 79
    functionName: pip._vendor.requests.auth.HTTPBasicAuth.__init__
    functionSourceFile: ''
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca81dfd0>
    - <ast.Constant object at 0x7f30ca81d820>
    - <ast.Constant object at 0x7f30ca81d130>
    argNames:
    - self
    - prompting
    - index_urls
    - keyring_provider
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 224
    functionName: pip._internal.network.auth.MultiDomainBasicAuth.__init__
    functionSourceFile: ''
    functionUses: 40
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd095670>
    - <ast.Constant object at 0x7f30fd095640>
    argNames:
    - cookie_dict
    - cookiejar
    - overwrite
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 521
    functionName: pip._vendor.requests.cookies.cookiejar_from_dict
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 44
    functionsReached:
    - <builtin>.super
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - cookie.value.replace
    - <builtin>.bool
    - cookie.value.endswith
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.set
    - result.update
    - cookie.value.startswith
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - jar
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 140
    functionName: pip._vendor.requests.cookies.get_cookie_header
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 28
    functionsReached:
    - urllib.parse.urlparse
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - http.cookiejar.CookieJar.add_cookie_header
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 26
    functionsReached:
    - collections.OrderedDict.values
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 659
    functionName: pip._vendor.requests.models.Response.__init__
    functionSourceFile: pip._vendor.requests.models
    functionUses: 3
    functionsReached:
    - <builtin>.super
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - cookie.value.replace
    - <builtin>.bool
    - collections.OrderedDict
    - cookie.value.endswith
    - pip._vendor.requests.cookies.create_cookie
    - datetime.timedelta
    - <builtin>.set
    - result.update
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datetime.timedelta
    functionSourceFile: datetime
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 706
    functionName: pip._vendor.requests.models.Response.__enter__
    functionSourceFile: pip._vendor.requests.models
    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
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 709
    functionName: pip._vendor.requests.models.Response.__exit__
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - pip._vendor.requests.models.Response.close
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1023
    functionName: pip._vendor.requests.models.Response.close
    functionSourceFile: pip._vendor.requests.models
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    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: 1
    functionLinenumber: 712
    functionName: pip._vendor.requests.models.Response.__getstate__
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 720
    functionName: pip._vendor.requests.models.Response.__setstate__
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - state.items
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 728
    functionName: pip._vendor.requests.models.Response.__repr__
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 731
    functionName: pip._vendor.requests.models.Response.__bool__
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 741
    functionName: pip._vendor.requests.models.Response.__nonzero__
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 751
    functionName: pip._vendor.requests.models.Response.__iter__
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - decoder.decode
    - codecs.getincrementaldecoder
    - pip._vendor.requests.utils.stream_decode_response_unicode
    - pip._vendor.requests.models.Response.iter_content
    - <builtin>.isinstance
    - <builtin>.hasattr
    - <builtin>.len
    - pip._vendor.requests.utils.iter_slices
    - pip._vendor.requests.models.Response.iter_content.generate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e2d9e9d0>
    - <ast.Constant object at 0x7f30e2d9e9a0>
    argNames:
    - self
    - chunk_size
    - decode_unicode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 795
    functionName: pip._vendor.requests.models.Response.iter_content
    functionSourceFile: pip._vendor.requests.models
    functionUses: 3
    functionsReached:
    - decoder.decode
    - codecs.getincrementaldecoder
    - pip._vendor.requests.utils.stream_decode_response_unicode
    - <builtin>.isinstance
    - <builtin>.hasattr
    - <builtin>.len
    - pip._vendor.requests.utils.iter_slices
    - pip._vendor.requests.models.Response.iter_content.generate
    linkageType: pythonLinkage
    raised:
    - StreamConsumedError
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 756
    functionName: pip._vendor.requests.models.Response.ok
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - pip._vendor.requests.models.Response.raise_for_status
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 994
    functionName: pip._vendor.requests.models.Response.raise_for_status
    functionSourceFile: pip._vendor.requests.models
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - HTTPError
    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: 771
    functionName: pip._vendor.requests.models.Response.is_redirect
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 778
    functionName: pip._vendor.requests.models.Response.is_permanent_redirect
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 786
    functionName: pip._vendor.requests.models.Response.next
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 791
    functionName: pip._vendor.requests.models.Response.apparent_encoding
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - group_prober.get_confidence
    - <builtin>.isinstance
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - lower_charset_name.startswith
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - coding_sm.get_coding_state_machine
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - coding_sm.next_state
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.close
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - pip._vendor.chardet.universaldetector.UniversalDetector.feed
    - prober.get_confidence
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - <builtin>.super
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - charset_name.lower
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - <builtin>.len
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - max_prober.get_confidence
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - logging.getLogger
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - prober.feed
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - <builtin>.max
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.chardet.detect
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    - coding_sm.reset
    - <builtin>.bytearray
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 812
    functionName: pip._vendor.requests.models.Response.iter_content.generate
    functionSourceFile: pip._vendor.requests.models
    functionUses: 4
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ContentDecodingError
    - ConnectionError
    - ChunkedEncodingError
    - RequestsSSLError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - string
    - slice_length
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 580
    functionName: pip._vendor.requests.utils.iter_slices
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 4
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - iterator
    - r
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 563
    functionName: pip._vendor.requests.utils.stream_decode_response_unicode
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 4
    functionsReached:
    - decoder.decode
    - codecs.getincrementaldecoder
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f30e2d98f10>
    - <ast.Constant object at 0x7f30e2d98ee0>
    - <ast.Constant object at 0x7f30e2d98eb0>
    argNames:
    - self
    - chunk_size
    - decode_unicode
    - delimiter
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 853
    functionName: pip._vendor.requests.models.Response.iter_lines
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - decoder.decode
    - codecs.getincrementaldecoder
    - chunk.split
    - pip._vendor.requests.utils.stream_decode_response_unicode
    - pip._vendor.requests.models.Response.iter_content
    - <builtin>.isinstance
    - chunk.splitlines
    - <builtin>.hasattr
    - <builtin>.len
    - pip._vendor.requests.utils.iter_slices
    - lines.pop
    - pip._vendor.requests.models.Response.iter_content.generate
    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: chunk.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: chunk.splitlines
    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: lines.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 888
    functionName: pip._vendor.requests.models.Response.content
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - decoder.decode
    - codecs.getincrementaldecoder
    - pip._vendor.requests.utils.stream_decode_response_unicode
    - pip._vendor.requests.models.Response.iter_content
    - <builtin>.isinstance
    - <builtin>.hasattr
    - <builtin>.len
    - pip._vendor.requests.utils.iter_slices
    - pip._vendor.requests.models.Response.iter_content.generate
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: 1
    functionLinenumber: 907
    functionName: pip._vendor.requests.models.Response.text
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 944
    functionName: pip._vendor.requests.models.Response.json
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - sample.count
    - pip._vendor.requests.utils.guess_json_utf
    - json.loads
    linkageType: pythonLinkage
    raised:
    - RequestsJSONDecodeError
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 955
    functionName: pip._vendor.requests.utils.guess_json_utf
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 1
    functionsReached:
    - sample.count
    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: 978
    functionName: pip._vendor.requests.models.Response.links
    functionSourceFile: pip._vendor.requests.models
    functionUses: 0
    functionsReached:
    - url.strip
    - key.strip
    - links.append
    - params.split
    - re.split
    - value.strip
    - pip._vendor.requests.utils.parse_header_links
    - collections.abc.MutableMapping.get
    - val.split
    - param.split
    - link.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 912
    functionName: pip._vendor.requests.utils.parse_header_links
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 1
    functionsReached:
    - url.strip
    - key.strip
    - links.append
    - params.split
    - re.split
    - value.strip
    - val.split
    - param.split
    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: link.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.idna
    functionSourceFile: pip._vendor.idna
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.idna.core
    functionSourceFile: pip._vendor.idna.core
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - cp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: pip._vendor.idna.core._combining_class
    functionSourceFile: pip._vendor.idna.core
    functionUses: 10
    functionsReached:
    - unicodedata.combining
    - unicodedata.name
    - <builtin>.chr
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: unicodedata.combining
    functionSourceFile: unicodedata
    functionUses: 11
    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: unicodedata.name
    functionSourceFile: unicodedata
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cp
    - script
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 39
    functionName: pip._vendor.idna.core._is_script
    functionSourceFile: pip._vendor.idna.core
    functionUses: 10
    functionsReached:
    - bisect.bisect_left
    - pip._vendor.idna.intranges._encode_range
    - <builtin>.len
    - pip._vendor.idna.intranges._decode_range
    - pip._vendor.idna.intranges.intranges_contain
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - int_
    - ranges
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 39
    functionName: pip._vendor.idna.intranges.intranges_contain
    functionSourceFile: pip._vendor.idna.intranges
    functionUses: 11
    functionsReached:
    - bisect.bisect_left
    - <builtin>.len
    - pip._vendor.idna.intranges._encode_range
    - pip._vendor.idna.intranges._decode_range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: pip._vendor.idna.core._punycode
    functionSourceFile: pip._vendor.idna.core
    functionUses: 4
    functionsReached:
    - s.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 45
    functionName: pip._vendor.idna.core._unot
    functionSourceFile: pip._vendor.idna.core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - label
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: pip._vendor.idna.core.valid_label_length
    functionSourceFile: pip._vendor.idna.core
    functionUses: 4
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - label
    - trailing_dot
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 55
    functionName: pip._vendor.idna.core.valid_string_length
    functionSourceFile: pip._vendor.idna.core
    functionUses: 2
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 0
    IfCount: 16
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f7c51c10>
    argNames:
    - label
    - check_ltr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 61
    functionName: pip._vendor.idna.core.check_bidi
    functionSourceFile: pip._vendor.idna.core
    functionUses: 9
    functionsReached:
    - unicodedata.bidirectional
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised:
    - IDNABidiError
    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: unicodedata.bidirectional
    functionSourceFile: unicodedata
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - label
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 120
    functionName: pip._vendor.idna.core.check_initial_combiner
    functionSourceFile: pip._vendor.idna.core
    functionUses: 9
    functionsReached:
    - unicodedata.category
    linkageType: pythonLinkage
    raised:
    - IDNAError
    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: unicodedata.category
    functionSourceFile: unicodedata
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - label
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 126
    functionName: pip._vendor.idna.core.check_hyphen_ok
    functionSourceFile: pip._vendor.idna.core
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - IDNAError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - label
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 134
    functionName: pip._vendor.idna.core.check_nfc
    functionSourceFile: pip._vendor.idna.core
    functionUses: 9
    functionsReached:
    - unicodedata.normalize
    linkageType: pythonLinkage
    raised:
    - IDNAError
    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: unicodedata.normalize
    functionSourceFile: unicodedata
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 0
    IfCount: 11
    argCount: 2
    argDefaultValues: []
    argNames:
    - label
    - pos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 139
    functionName: pip._vendor.idna.core.valid_contextj
    functionSourceFile: pip._vendor.idna.core
    functionUses: 9
    functionsReached:
    - <builtin>.chr
    - unicodedata.combining
    - pip._vendor.idna.core._combining_class
    - <builtin>.len
    - unicodedata.name
    - idnadata.joining_types.get
    - <builtin>.ord
    - <builtin>.range
    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: idnadata.joining_types.get
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 0
    IfCount: 14
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30c8d15eb0>
    argNames:
    - label
    - pos
    - exception
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 182
    functionName: pip._vendor.idna.core.valid_contexto
    functionSourceFile: pip._vendor.idna.core
    functionUses: 9
    functionsReached:
    - pip._vendor.idna.core._is_script
    - bisect.bisect_left
    - pip._vendor.idna.intranges._encode_range
    - <builtin>.len
    - pip._vendor.idna.intranges._decode_range
    - pip._vendor.idna.intranges.intranges_contain
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - label
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 224
    functionName: pip._vendor.idna.core.check_label
    functionSourceFile: pip._vendor.idna.core
    functionUses: 8
    functionsReached:
    - pip._vendor.idna.core._is_script
    - <builtin>.isinstance
    - pip._vendor.idna.core.check_bidi
    - pip._vendor.idna.core._combining_class
    - idnadata.joining_types.get
    - unicodedata.normalize
    - unicodedata.category
    - unicodedata.bidirectional
    - pip._vendor.idna.core.valid_contexto
    - unicodedata.combining
    - <builtin>.enumerate
    - pip._vendor.idna.intranges.intranges_contain
    - pip._vendor.idna.intranges._encode_range
    - <builtin>.len
    - unicodedata.name
    - <builtin>.ord
    - pip._vendor.idna.core.check_hyphen_ok
    - bisect.bisect_left
    - <builtin>.chr
    - pip._vendor.idna.core.check_nfc
    - label.decode
    - pip._vendor.idna.intranges._decode_range
    - pip._vendor.idna.core.valid_contextj
    - pip._vendor.idna.core.check_initial_combiner
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - IDNAError
    - InvalidCodepoint
    - InvalidCodepointContext
    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: label.decode
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - label
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 255
    functionName: pip._vendor.idna.core.alabel
    functionSourceFile: pip._vendor.idna.core
    functionUses: 3
    functionsReached:
    - pip._vendor.idna.core._is_script
    - <builtin>.isinstance
    - pip._vendor.idna.core.check_bidi
    - label_bytes.decode
    - pip._vendor.idna.core._combining_class
    - idnadata.joining_types.get
    - unicodedata.normalize
    - unicodedata.category
    - unicodedata.bidirectional
    - pip._vendor.idna.core.ulabel
    - <builtin>.str
    - pip._vendor.idna.core.valid_contexto
    - unicodedata.combining
    - s.encode
    - <builtin>.enumerate
    - pip._vendor.idna.intranges.intranges_contain
    - label_bytes.lower
    - pip._vendor.idna.intranges._encode_range
    - <builtin>.len
    - unicodedata.name
    - pip._vendor.idna.core.valid_label_length
    - pip._vendor.idna.core.check_hyphen_ok
    - <builtin>.ord
    - bisect.bisect_left
    - label.encode
    - <builtin>.chr
    - pip._vendor.idna.core._punycode
    - pip._vendor.idna.core.check_nfc
    - label.decode
    - pip._vendor.idna.intranges._decode_range
    - label_bytes.startswith
    - pip._vendor.idna.core.valid_contextj
    - pip._vendor.idna.core.check_label
    - pip._vendor.idna.core.check_initial_combiner
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - IDNAError
    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: label.encode
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - label
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 279
    functionName: pip._vendor.idna.core.ulabel
    functionSourceFile: pip._vendor.idna.core
    functionUses: 7
    functionsReached:
    - pip._vendor.idna.core._is_script
    - <builtin>.isinstance
    - pip._vendor.idna.core.check_bidi
    - label_bytes.decode
    - pip._vendor.idna.core._combining_class
    - idnadata.joining_types.get
    - unicodedata.normalize
    - unicodedata.category
    - unicodedata.bidirectional
    - pip._vendor.idna.core.valid_contexto
    - unicodedata.combining
    - <builtin>.enumerate
    - pip._vendor.idna.intranges.intranges_contain
    - label_bytes.lower
    - pip._vendor.idna.intranges._encode_range
    - <builtin>.len
    - unicodedata.name
    - <builtin>.ord
    - pip._vendor.idna.core.check_hyphen_ok
    - bisect.bisect_left
    - label.encode
    - <builtin>.chr
    - label_bytes.startswith
    - pip._vendor.idna.core.check_nfc
    - label.decode
    - pip._vendor.idna.intranges._decode_range
    - pip._vendor.idna.core.valid_contextj
    - pip._vendor.idna.core.check_label
    - pip._vendor.idna.core.check_initial_combiner
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - IDNAError
    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: label_bytes.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: label_bytes.startswith
    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: label_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f7c5bc70>
    - <ast.Constant object at 0x7f30f7c5bc40>
    argNames:
    - domain
    - std3_rules
    - transitional
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 308
    functionName: pip._vendor.idna.core.uts46_remap
    functionSourceFile: pip._vendor.idna.core
    functionUses: 4
    functionsReached:
    - bisect.bisect_left
    - <builtin>.len
    - <builtin>.enumerate
    - unicodedata.normalize
    - <builtin>.ord
    linkageType: pythonLinkage
    raised:
    - IndexError
    - InvalidCodepoint
    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: bisect.bisect_left
    functionSourceFile: bisect
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f7c52e20>
    - <ast.Constant object at 0x7f30f7c52df0>
    - <ast.Constant object at 0x7f30f7c52dc0>
    - <ast.Constant object at 0x7f30f7c52d90>
    argNames:
    - s
    - strict
    - uts46
    - std3_rules
    - transitional
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 340
    functionName: pip._vendor.idna.core.encode
    functionSourceFile: pip._vendor.idna.core
    functionUses: 1
    functionsReached:
    - pip._vendor.idna.core._is_script
    - pip._vendor.idna.core.valid_string_length
    - s.split
    - <builtin>.isinstance
    - pip._vendor.idna.core.check_bidi
    - label_bytes.decode
    - pip._vendor.idna.core._combining_class
    - idnadata.joining_types.get
    - unicodedata.normalize
    - unicodedata.category
    - unicodedata.bidirectional
    - pip._vendor.idna.core.ulabel
    - <builtin>.str
    - pip._vendor.idna.core.valid_contexto
    - unicodedata.combining
    - pip._vendor.idna.core.alabel
    - s.encode
    - <builtin>.enumerate
    - pip._vendor.idna.core.uts46_remap
    - label_bytes.lower
    - pip._vendor.idna.intranges.intranges_contain
    - pip._vendor.idna.intranges._encode_range
    - s.decode
    - <builtin>.len
    - unicodedata.name
    - pip._vendor.idna.core.valid_label_length
    - pip._vendor.idna.core.check_hyphen_ok
    - <builtin>.ord
    - bisect.bisect_left
    - label.encode
    - <builtin>.chr
    - _unicode_dots_re.split
    - pip._vendor.idna.core._punycode
    - pip._vendor.idna.core.check_nfc
    - label.decode
    - label_bytes.startswith
    - pip._vendor.idna.intranges._decode_range
    - pip._vendor.idna.core.valid_contextj
    - pip._vendor.idna.core.check_label
    - pip._vendor.idna.core.check_initial_combiner
    - result.append
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - IDNAError
    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: _unicode_dots_re.split
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f7bc12e0>
    - <ast.Constant object at 0x7f30f7bc12b0>
    - <ast.Constant object at 0x7f30f7bc1280>
    argNames:
    - s
    - strict
    - uts46
    - std3_rules
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 373
    functionName: pip._vendor.idna.core.decode
    functionSourceFile: pip._vendor.idna.core
    functionUses: 1
    functionsReached:
    - pip._vendor.idna.core._is_script
    - s.split
    - <builtin>.isinstance
    - pip._vendor.idna.core.check_bidi
    - label_bytes.decode
    - pip._vendor.idna.core._combining_class
    - idnadata.joining_types.get
    - unicodedata.normalize
    - unicodedata.category
    - unicodedata.bidirectional
    - pip._vendor.idna.core.ulabel
    - pip._vendor.idna.core.valid_contexto
    - unicodedata.combining
    - <builtin>.enumerate
    - pip._vendor.idna.core.uts46_remap
    - label_bytes.lower
    - pip._vendor.idna.intranges.intranges_contain
    - pip._vendor.idna.intranges._encode_range
    - s.decode
    - <builtin>.len
    - unicodedata.name
    - pip._vendor.idna.core.check_hyphen_ok
    - <builtin>.ord
    - bisect.bisect_left
    - label.encode
    - <builtin>.chr
    - _unicode_dots_re.split
    - label_bytes.startswith
    - pip._vendor.idna.core.check_nfc
    - label.decode
    - pip._vendor.idna.intranges._decode_range
    - pip._vendor.idna.core.valid_contextj
    - pip._vendor.idna.core.check_label
    - pip._vendor.idna.core.check_initial_combiner
    - result.append
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - IDNAError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.idna.uts46data
    functionSourceFile: pip._vendor.idna.uts46data
    functionUses: 0
    functionsReached:
    - pip._vendor.idna.uts46data._seg_42
    - pip._vendor.idna.uts46data._seg_64
    - pip._vendor.idna.uts46data._seg_60
    - pip._vendor.idna.uts46data._seg_53
    - pip._vendor.idna.uts46data._seg_40
    - pip._vendor.idna.uts46data._seg_56
    - pip._vendor.idna.uts46data._seg_34
    - pip._vendor.idna.uts46data._seg_43
    - pip._vendor.idna.uts46data._seg_77
    - pip._vendor.idna.uts46data._seg_26
    - pip._vendor.idna.uts46data._seg_19
    - <builtin>.tuple
    - pip._vendor.idna.uts46data._seg_31
    - pip._vendor.idna.uts46data._seg_29
    - pip._vendor.idna.uts46data._seg_2
    - pip._vendor.idna.uts46data._seg_18
    - pip._vendor.idna.uts46data._seg_44
    - pip._vendor.idna.uts46data._seg_58
    - pip._vendor.idna.uts46data._seg_3
    - pip._vendor.idna.uts46data._seg_7
    - pip._vendor.idna.uts46data._seg_73
    - pip._vendor.idna.uts46data._seg_22
    - pip._vendor.idna.uts46data._seg_47
    - pip._vendor.idna.uts46data._seg_6
    - pip._vendor.idna.uts46data._seg_49
    - pip._vendor.idna.uts46data._seg_57
    - pip._vendor.idna.uts46data._seg_36
    - pip._vendor.idna.uts46data._seg_46
    - pip._vendor.idna.uts46data._seg_35
    - pip._vendor.idna.uts46data._seg_52
    - pip._vendor.idna.uts46data._seg_10
    - pip._vendor.idna.uts46data._seg_21
    - pip._vendor.idna.uts46data._seg_39
    - pip._vendor.idna.uts46data._seg_41
    - pip._vendor.idna.uts46data._seg_54
    - pip._vendor.idna.uts46data._seg_30
    - pip._vendor.idna.uts46data._seg_38
    - pip._vendor.idna.uts46data._seg_12
    - pip._vendor.idna.uts46data._seg_71
    - pip._vendor.idna.uts46data._seg_17
    - pip._vendor.idna.uts46data._seg_50
    - pip._vendor.idna.uts46data._seg_9
    - pip._vendor.idna.uts46data._seg_14
    - pip._vendor.idna.uts46data._seg_0
    - pip._vendor.idna.uts46data._seg_75
    - pip._vendor.idna.uts46data._seg_11
    - pip._vendor.idna.uts46data._seg_20
    - pip._vendor.idna.uts46data._seg_72
    - pip._vendor.idna.uts46data._seg_1
    - pip._vendor.idna.uts46data._seg_5
    - pip._vendor.idna.uts46data._seg_24
    - pip._vendor.idna.uts46data._seg_74
    - pip._vendor.idna.uts46data._seg_15
    - pip._vendor.idna.uts46data._seg_37
    - pip._vendor.idna.uts46data._seg_61
    - pip._vendor.idna.uts46data._seg_67
    - pip._vendor.idna.uts46data._seg_69
    - pip._vendor.idna.uts46data._seg_66
    - pip._vendor.idna.uts46data._seg_23
    - pip._vendor.idna.uts46data._seg_28
    - pip._vendor.idna.uts46data._seg_4
    - pip._vendor.idna.uts46data._seg_63
    - pip._vendor.idna.uts46data._seg_8
    - pip._vendor.idna.uts46data._seg_33
    - pip._vendor.idna.uts46data._seg_78
    - pip._vendor.idna.uts46data._seg_32
    - pip._vendor.idna.uts46data._seg_45
    - pip._vendor.idna.uts46data._seg_70
    - pip._vendor.idna.uts46data._seg_16
    - pip._vendor.idna.uts46data._seg_81
    - pip._vendor.idna.uts46data._seg_68
    - pip._vendor.idna.uts46data._seg_51
    - pip._vendor.idna.uts46data._seg_13
    - pip._vendor.idna.uts46data._seg_79
    - pip._vendor.idna.uts46data._seg_59
    - pip._vendor.idna.uts46data._seg_65
    - pip._vendor.idna.uts46data._seg_80
    - pip._vendor.idna.uts46data._seg_62
    - pip._vendor.idna.uts46data._seg_27
    - pip._vendor.idna.uts46data._seg_55
    - pip._vendor.idna.uts46data._seg_76
    - pip._vendor.idna.uts46data._seg_25
    - pip._vendor.idna.uts46data._seg_48
    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: 11
    functionName: pip._vendor.idna.uts46data._seg_0
    functionSourceFile: pip._vendor.idna.uts46data
    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: 115
    functionName: pip._vendor.idna.uts46data._seg_1
    functionSourceFile: pip._vendor.idna.uts46data
    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: 219
    functionName: pip._vendor.idna.uts46data._seg_2
    functionSourceFile: pip._vendor.idna.uts46data
    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: 323
    functionName: pip._vendor.idna.uts46data._seg_3
    functionSourceFile: pip._vendor.idna.uts46data
    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: 427
    functionName: pip._vendor.idna.uts46data._seg_4
    functionSourceFile: pip._vendor.idna.uts46data
    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: 531
    functionName: pip._vendor.idna.uts46data._seg_5
    functionSourceFile: pip._vendor.idna.uts46data
    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: 635
    functionName: pip._vendor.idna.uts46data._seg_6
    functionSourceFile: pip._vendor.idna.uts46data
    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: 739
    functionName: pip._vendor.idna.uts46data._seg_7
    functionSourceFile: pip._vendor.idna.uts46data
    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: 843
    functionName: pip._vendor.idna.uts46data._seg_8
    functionSourceFile: pip._vendor.idna.uts46data
    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: 947
    functionName: pip._vendor.idna.uts46data._seg_9
    functionSourceFile: pip._vendor.idna.uts46data
    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: 1051
    functionName: pip._vendor.idna.uts46data._seg_10
    functionSourceFile: pip._vendor.idna.uts46data
    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: 1155
    functionName: pip._vendor.idna.uts46data._seg_11
    functionSourceFile: pip._vendor.idna.uts46data
    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: 1259
    functionName: pip._vendor.idna.uts46data._seg_12
    functionSourceFile: pip._vendor.idna.uts46data
    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: 1363
    functionName: pip._vendor.idna.uts46data._seg_13
    functionSourceFile: pip._vendor.idna.uts46data
    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: 1467
    functionName: pip._vendor.idna.uts46data._seg_14
    functionSourceFile: pip._vendor.idna.uts46data
    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: 1571
    functionName: pip._vendor.idna.uts46data._seg_15
    functionSourceFile: pip._vendor.idna.uts46data
    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: 1675
    functionName: pip._vendor.idna.uts46data._seg_16
    functionSourceFile: pip._vendor.idna.uts46data
    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: 1779
    functionName: pip._vendor.idna.uts46data._seg_17
    functionSourceFile: pip._vendor.idna.uts46data
    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: 1883
    functionName: pip._vendor.idna.uts46data._seg_18
    functionSourceFile: pip._vendor.idna.uts46data
    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: 1987
    functionName: pip._vendor.idna.uts46data._seg_19
    functionSourceFile: pip._vendor.idna.uts46data
    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: 2091
    functionName: pip._vendor.idna.uts46data._seg_20
    functionSourceFile: pip._vendor.idna.uts46data
    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: 2195
    functionName: pip._vendor.idna.uts46data._seg_21
    functionSourceFile: pip._vendor.idna.uts46data
    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: 2299
    functionName: pip._vendor.idna.uts46data._seg_22
    functionSourceFile: pip._vendor.idna.uts46data
    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: 2403
    functionName: pip._vendor.idna.uts46data._seg_23
    functionSourceFile: pip._vendor.idna.uts46data
    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: 2507
    functionName: pip._vendor.idna.uts46data._seg_24
    functionSourceFile: pip._vendor.idna.uts46data
    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: 2611
    functionName: pip._vendor.idna.uts46data._seg_25
    functionSourceFile: pip._vendor.idna.uts46data
    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: 2715
    functionName: pip._vendor.idna.uts46data._seg_26
    functionSourceFile: pip._vendor.idna.uts46data
    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: 2819
    functionName: pip._vendor.idna.uts46data._seg_27
    functionSourceFile: pip._vendor.idna.uts46data
    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: 2923
    functionName: pip._vendor.idna.uts46data._seg_28
    functionSourceFile: pip._vendor.idna.uts46data
    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: 3027
    functionName: pip._vendor.idna.uts46data._seg_29
    functionSourceFile: pip._vendor.idna.uts46data
    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: 3131
    functionName: pip._vendor.idna.uts46data._seg_30
    functionSourceFile: pip._vendor.idna.uts46data
    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: 3235
    functionName: pip._vendor.idna.uts46data._seg_31
    functionSourceFile: pip._vendor.idna.uts46data
    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: 3339
    functionName: pip._vendor.idna.uts46data._seg_32
    functionSourceFile: pip._vendor.idna.uts46data
    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: 3443
    functionName: pip._vendor.idna.uts46data._seg_33
    functionSourceFile: pip._vendor.idna.uts46data
    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: 3547
    functionName: pip._vendor.idna.uts46data._seg_34
    functionSourceFile: pip._vendor.idna.uts46data
    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: 3651
    functionName: pip._vendor.idna.uts46data._seg_35
    functionSourceFile: pip._vendor.idna.uts46data
    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: 3755
    functionName: pip._vendor.idna.uts46data._seg_36
    functionSourceFile: pip._vendor.idna.uts46data
    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: 3859
    functionName: pip._vendor.idna.uts46data._seg_37
    functionSourceFile: pip._vendor.idna.uts46data
    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: 3963
    functionName: pip._vendor.idna.uts46data._seg_38
    functionSourceFile: pip._vendor.idna.uts46data
    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: 4067
    functionName: pip._vendor.idna.uts46data._seg_39
    functionSourceFile: pip._vendor.idna.uts46data
    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: 4171
    functionName: pip._vendor.idna.uts46data._seg_40
    functionSourceFile: pip._vendor.idna.uts46data
    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: 4275
    functionName: pip._vendor.idna.uts46data._seg_41
    functionSourceFile: pip._vendor.idna.uts46data
    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: 4379
    functionName: pip._vendor.idna.uts46data._seg_42
    functionSourceFile: pip._vendor.idna.uts46data
    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: 4483
    functionName: pip._vendor.idna.uts46data._seg_43
    functionSourceFile: pip._vendor.idna.uts46data
    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: 4587
    functionName: pip._vendor.idna.uts46data._seg_44
    functionSourceFile: pip._vendor.idna.uts46data
    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: 4691
    functionName: pip._vendor.idna.uts46data._seg_45
    functionSourceFile: pip._vendor.idna.uts46data
    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: 4795
    functionName: pip._vendor.idna.uts46data._seg_46
    functionSourceFile: pip._vendor.idna.uts46data
    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: 4899
    functionName: pip._vendor.idna.uts46data._seg_47
    functionSourceFile: pip._vendor.idna.uts46data
    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: 5003
    functionName: pip._vendor.idna.uts46data._seg_48
    functionSourceFile: pip._vendor.idna.uts46data
    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: 5107
    functionName: pip._vendor.idna.uts46data._seg_49
    functionSourceFile: pip._vendor.idna.uts46data
    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: 5211
    functionName: pip._vendor.idna.uts46data._seg_50
    functionSourceFile: pip._vendor.idna.uts46data
    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: 5315
    functionName: pip._vendor.idna.uts46data._seg_51
    functionSourceFile: pip._vendor.idna.uts46data
    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: 5419
    functionName: pip._vendor.idna.uts46data._seg_52
    functionSourceFile: pip._vendor.idna.uts46data
    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: 5523
    functionName: pip._vendor.idna.uts46data._seg_53
    functionSourceFile: pip._vendor.idna.uts46data
    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: 5627
    functionName: pip._vendor.idna.uts46data._seg_54
    functionSourceFile: pip._vendor.idna.uts46data
    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: 5731
    functionName: pip._vendor.idna.uts46data._seg_55
    functionSourceFile: pip._vendor.idna.uts46data
    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: 5835
    functionName: pip._vendor.idna.uts46data._seg_56
    functionSourceFile: pip._vendor.idna.uts46data
    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: 5939
    functionName: pip._vendor.idna.uts46data._seg_57
    functionSourceFile: pip._vendor.idna.uts46data
    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: 6043
    functionName: pip._vendor.idna.uts46data._seg_58
    functionSourceFile: pip._vendor.idna.uts46data
    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: 6147
    functionName: pip._vendor.idna.uts46data._seg_59
    functionSourceFile: pip._vendor.idna.uts46data
    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: 6251
    functionName: pip._vendor.idna.uts46data._seg_60
    functionSourceFile: pip._vendor.idna.uts46data
    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: 6355
    functionName: pip._vendor.idna.uts46data._seg_61
    functionSourceFile: pip._vendor.idna.uts46data
    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: 6459
    functionName: pip._vendor.idna.uts46data._seg_62
    functionSourceFile: pip._vendor.idna.uts46data
    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: 6563
    functionName: pip._vendor.idna.uts46data._seg_63
    functionSourceFile: pip._vendor.idna.uts46data
    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: 6667
    functionName: pip._vendor.idna.uts46data._seg_64
    functionSourceFile: pip._vendor.idna.uts46data
    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: 6771
    functionName: pip._vendor.idna.uts46data._seg_65
    functionSourceFile: pip._vendor.idna.uts46data
    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: 6875
    functionName: pip._vendor.idna.uts46data._seg_66
    functionSourceFile: pip._vendor.idna.uts46data
    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: 6979
    functionName: pip._vendor.idna.uts46data._seg_67
    functionSourceFile: pip._vendor.idna.uts46data
    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: 7083
    functionName: pip._vendor.idna.uts46data._seg_68
    functionSourceFile: pip._vendor.idna.uts46data
    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: 7187
    functionName: pip._vendor.idna.uts46data._seg_69
    functionSourceFile: pip._vendor.idna.uts46data
    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: 7291
    functionName: pip._vendor.idna.uts46data._seg_70
    functionSourceFile: pip._vendor.idna.uts46data
    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: 7395
    functionName: pip._vendor.idna.uts46data._seg_71
    functionSourceFile: pip._vendor.idna.uts46data
    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: 7499
    functionName: pip._vendor.idna.uts46data._seg_72
    functionSourceFile: pip._vendor.idna.uts46data
    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: 7603
    functionName: pip._vendor.idna.uts46data._seg_73
    functionSourceFile: pip._vendor.idna.uts46data
    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: 7707
    functionName: pip._vendor.idna.uts46data._seg_74
    functionSourceFile: pip._vendor.idna.uts46data
    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: 7811
    functionName: pip._vendor.idna.uts46data._seg_75
    functionSourceFile: pip._vendor.idna.uts46data
    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: 7915
    functionName: pip._vendor.idna.uts46data._seg_76
    functionSourceFile: pip._vendor.idna.uts46data
    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: 8019
    functionName: pip._vendor.idna.uts46data._seg_77
    functionSourceFile: pip._vendor.idna.uts46data
    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: 8123
    functionName: pip._vendor.idna.uts46data._seg_78
    functionSourceFile: pip._vendor.idna.uts46data
    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: 8227
    functionName: pip._vendor.idna.uts46data._seg_79
    functionSourceFile: pip._vendor.idna.uts46data
    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: 8331
    functionName: pip._vendor.idna.uts46data._seg_80
    functionSourceFile: pip._vendor.idna.uts46data
    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: 8435
    functionName: pip._vendor.idna.uts46data._seg_81
    functionSourceFile: pip._vendor.idna.uts46data
    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: pip._vendor.idna.idnadata
    functionSourceFile: pip._vendor.idna.idnadata
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.idna.intranges
    functionSourceFile: pip._vendor.idna.intranges
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - list_
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 11
    functionName: pip._vendor.idna.intranges.intranges_from_list
    functionSourceFile: pip._vendor.idna.intranges
    functionUses: 0
    functionsReached:
    - ranges.append
    - pip._vendor.idna.intranges._encode_range
    - <builtin>.len
    - <builtin>.sorted
    - <builtin>.tuple
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - start
    - end
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 32
    functionName: pip._vendor.idna.intranges._encode_range
    functionSourceFile: ''
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ranges.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - r
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 35
    functionName: pip._vendor.idna.intranges._decode_range
    functionSourceFile: pip._vendor.idna.intranges
    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: pip._vendor.idna.package_data
    functionSourceFile: pip._vendor.idna.package_data
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.requests.auth
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - username
    - password
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 25
    functionName: pip._vendor.requests.auth._basic_auth_str
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 31
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.requests._internal_utils.to_native_string
    - username.encode
    - warnings.warn
    - base64.b64encode
    - base64.b64encode.strip
    - urllib.parse.urljoin.decode
    - password.encode
    - urllib.parse.quote.decode
    - collections.abc.MutableMapping.decode
    - <builtin>.type
    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: username.encode
    functionSourceFile: <builtin>
    functionUses: 32
    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: password.encode
    functionSourceFile: <builtin>
    functionUses: 33
    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: base64.b64encode.strip
    functionSourceFile: base64
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - r
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 72
    functionName: pip._vendor.requests.auth.AuthBase.__call__
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 83
    functionName: pip._vendor.requests.auth.HTTPBasicAuth.__eq__
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 0
    functionsReached:
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 91
    functionName: pip._vendor.requests.auth.HTTPBasicAuth.__ne__
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - r
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 94
    functionName: pip._vendor.requests.auth.HTTPBasicAuth.__call__
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.requests._internal_utils.to_native_string
    - username.encode
    - pip._vendor.requests.auth._basic_auth_str
    - warnings.warn
    - base64.b64encode
    - base64.b64encode.strip
    - urllib.parse.urljoin.decode
    - password.encode
    - urllib.parse.quote.decode
    - collections.abc.MutableMapping.decode
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - r
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 102
    functionName: pip._vendor.requests.auth.HTTPProxyAuth.__call__
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.requests._internal_utils.to_native_string
    - username.encode
    - pip._vendor.requests.auth._basic_auth_str
    - warnings.warn
    - base64.b64encode
    - base64.b64encode.strip
    - urllib.parse.urljoin.decode
    - password.encode
    - urllib.parse.quote.decode
    - collections.abc.MutableMapping.decode
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - username
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.__init__
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 0
    functionsReached:
    - threading.local
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 116
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.init_per_thread_state
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 1
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 1
    IfCount: 15
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - method
    - url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 126
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 2
    functionsReached:
    - hashlib.md5
    - hashlib.sha1
    - os.urandom
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha256_utf8
    - <builtin>.isinstance
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.<lambda1>
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.md5_utf8
    - nonce.encode
    - algorithm.upper
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha512_utf8
    - hashlib.sha512
    - time.ctime
    - qop.split
    - x.encode
    - hashlib.sha256
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha_utf8
    - urllib.parse.urlparse
    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: algorithm.upper
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 145
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.md5_utf8
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 4
    functionsReached:
    - hashlib.md5
    - x.encode
    - <builtin>.isinstance
    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: x.encode
    functionSourceFile: <builtin>
    functionUses: 23
    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: hashlib.md5
    functionSourceFile: hashlib
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 153
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha_utf8
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 4
    functionsReached:
    - x.encode
    - hashlib.sha1
    - <builtin>.isinstance
    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: hashlib.sha1
    functionSourceFile: hashlib
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 161
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha256_utf8
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 4
    functionsReached:
    - x.encode
    - hashlib.sha256
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 169
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha512_utf8
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 4
    functionsReached:
    - x.encode
    - <builtin>.isinstance
    - hashlib.sha512
    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: hashlib.sha512
    functionSourceFile: hashlib
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.<lambda1>
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 3
    functionsReached:
    - hashlib.md5
    - hashlib.sha1
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha256_utf8
    - <builtin>.isinstance
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.md5_utf8
    - hashlib.sha512
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha512_utf8
    - x.encode
    - hashlib.sha256
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha_utf8
    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: nonce.encode
    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: time.ctime
    functionSourceFile: time
    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: os.urandom
    functionSourceFile: os
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: qop.split
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - r
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 236
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.handle_redirect
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - r
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 241
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.handle_401
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 0
    functionsReached:
    - os.urandom
    - <builtin>.isinstance
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha512_utf8
    - prep.prepare_cookies
    - qop.split
    - re.compile
    - r.request.copy
    - pip._vendor.requests.utils.parse_dict_header
    - pip._vendor.requests.cookies.MockRequest.__init__
    - urllib.request.parse_http_list
    - nonce.encode
    - urllib.request.parse_http_list.split
    - pip._vendor.requests.cookies.MockResponse.__init__
    - r.connection.send
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.<lambda1>
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.md5_utf8
    - algorithm.upper
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header
    - r.request.body.seek
    - hashlib.sha256
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha_utf8
    - r.headers.get
    - r.close
    - http.cookiejar.CookieJar.extract_cookies
    - value.replace
    - hashlib.md5
    - hashlib.sha1
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha256_utf8
    - pip._vendor.requests.utils.unquote_header_value
    - hashlib.sha512
    - time.ctime
    - s_auth.lower
    - pat.sub
    - x.encode
    - _r.history.append
    - urllib.parse.urlparse
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.request.body.seek
    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: r.headers.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s_auth.lower
    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: pat.sub
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 402
    functionName: pip._vendor.requests.utils.parse_dict_header
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 1
    functionsReached:
    - value.replace
    - urllib.request.parse_http_list.split
    - urllib.request.parse_http_list
    - pip._vendor.requests.utils.unquote_header_value
    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: r.close
    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: r.request.copy
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - jar
    - request
    - response
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 124
    functionName: pip._vendor.requests.cookies.extract_cookies_to_jar
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 27
    functionsReached:
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.cookies.MockResponse.__init__
    - urllib.parse.urlparse
    - http.cookiejar.CookieJar.extract_cookies
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: prep.prepare_cookies
    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: r.connection.send
    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: _r.history.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - r
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 286
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.__call__
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 0
    functionsReached:
    - os.urandom
    - <builtin>.isinstance
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha512_utf8
    - qop.split
    - nonce.encode
    - r.register_hook
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.<lambda1>
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.md5_utf8
    - algorithm.upper
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header
    - hashlib.sha256
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha_utf8
    - hashlib.md5
    - hashlib.sha1
    - pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha256_utf8
    - hashlib.sha512
    - time.ctime
    - x.encode
    - pip._vendor.requests.auth.HTTPDigestAuth.init_per_thread_state
    - r.body.tell
    - urllib.parse.urlparse
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.body.tell
    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: r.register_hook
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 306
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.__eq__
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 0
    functionsReached:
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 314
    functionName: pip._vendor.requests.auth.HTTPDigestAuth.__ne__
    functionSourceFile: pip._vendor.requests.auth
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.requests.cookies
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._vendor.requests.cookies.MockRequest.__init__
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 33
    functionsReached:
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 40
    functionName: pip._vendor.requests.cookies.MockRequest.get_type
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: pip._vendor.requests.cookies.MockRequest.get_host
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 3
    functionsReached:
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 46
    functionName: pip._vendor.requests.cookies.MockRequest.get_origin_req_host
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 1
    functionsReached:
    - pip._vendor.requests.cookies.MockRequest.get_host
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 49
    functionName: pip._vendor.requests.cookies.MockRequest.get_full_url
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.requests._internal_utils.to_native_string
    - urllib.parse.urlunparse
    - collections.abc.MutableMapping.get
    - urllib.parse.urljoin.decode
    - urllib.parse.urlparse
    - urllib.parse.quote.decode
    - collections.abc.MutableMapping.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 69
    functionName: pip._vendor.requests.cookies.MockRequest.is_unverifiable
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 72
    functionName: pip._vendor.requests.cookies.MockRequest.has_header
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd078af0>
    argNames:
    - self
    - name
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: pip._vendor.requests.cookies.MockRequest.get_header
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - collections.abc.MutableMapping.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - val
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 78
    functionName: pip._vendor.requests.cookies.MockRequest.add_header
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 84
    functionName: pip._vendor.requests.cookies.MockRequest.add_unredirected_header
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: pip._vendor.requests.cookies.MockRequest.get_new_headers
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 91
    functionName: pip._vendor.requests.cookies.MockRequest.unverifiable
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - pip._vendor.requests.cookies.MockRequest.is_unverifiable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 95
    functionName: pip._vendor.requests.cookies.MockRequest.origin_req_host
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - pip._vendor.requests.cookies.MockRequest.get_host
    - urllib.parse.urlparse
    - pip._vendor.requests.cookies.MockRequest.get_origin_req_host
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 99
    functionName: pip._vendor.requests.cookies.MockRequest.host
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - pip._vendor.requests.cookies.MockRequest.get_host
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - headers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 110
    functionName: pip._vendor.requests.cookies.MockResponse.__init__
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 117
    functionName: pip._vendor.requests.cookies.MockResponse.info
    functionSourceFile: pip._vendor.requests.cookies
    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
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 120
    functionName: pip._vendor.requests.cookies.MockResponse.getheaders
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.cookiejar.CookieJar.extract_cookies
    functionSourceFile: http
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.cookiejar.CookieJar.add_cookie_header
    functionSourceFile: http
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd06d100>
    - <ast.Constant object at 0x7f30fd06d0d0>
    argNames:
    - cookiejar
    - name
    - domain
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 151
    functionName: pip._vendor.requests.cookies.remove_cookie_by_name
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 3
    functionsReached:
    - http.cookiejar.CookieJar.clear
    - clearables.append
    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: clearables.append
    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: http.cookiejar.CookieJar.clear
    functionSourceFile: http
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc6ff70>
    - <ast.Constant object at 0x7f30fcc6f5b0>
    - <ast.Constant object at 0x7f30fcc6ff40>
    argNames:
    - self
    - name
    - default
    - domain
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 194
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.get
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - pip._vendor.requests.cookies.RequestsCookieJar._find_no_duplicates
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd0a18b0>
    - <ast.Constant object at 0x7f30fd0a1880>
    argNames:
    - self
    - name
    - domain
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 386
    functionName: pip._vendor.requests.cookies.RequestsCookieJar._find_no_duplicates
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 2
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised:
    - CookieConflictError
    - KeyError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 206
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.set
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - time.time
    - calendar.timegm
    - <builtin>.set
    - result.update
    - pip._vendor.requests.cookies.morsel_to_cookie
    - http.cookiejar.CookieJar.clear
    - time.strptime
    - <builtin>.super
    - clearables.append
    - pip._vendor.requests.cookies.remove_cookie_by_name
    - cookie.value.endswith
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - <builtin>.int
    - kwargs.get
    - pip._vendor.requests.cookies.create_cookie
    - cookie.value.startswith
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - morsel
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 492
    functionName: pip._vendor.requests.cookies.morsel_to_cookie
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 2
    functionsReached:
    - <builtin>.int
    - http.cookiejar.Cookie
    - time.time
    - <builtin>.bool
    - calendar.timegm
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.set
    - result.update
    - time.strptime
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - name
    - value
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 455
    functionName: pip._vendor.requests.cookies.create_cookie
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 48
    functionsReached:
    - <builtin>.set
    - <builtin>.bool
    - result.update
    - http.cookiejar.Cookie
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - cookie
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 349
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 51
    functionsReached:
    - <builtin>.super
    - cookie.value.replace
    - cookie.value.endswith
    - cookie.value.startswith
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 225
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.iterkeys
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 1
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 234
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.keys
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - pip._vendor.requests.cookies.RequestsCookieJar.iterkeys
    - <builtin>.iter
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 242
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.itervalues
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 1
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 251
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.values
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - <builtin>.list
    - pip._vendor.requests.cookies.RequestsCookieJar.itervalues
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 259
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.iteritems
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 1
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 268
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.items
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - pip._vendor.requests.cookies.RequestsCookieJar.iteritems
    - <builtin>.iter
    - <builtin>.list
    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: 1
    functionLinenumber: 277
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.list_domains
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - domains.append
    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: domains.append
    functionSourceFile: <builtin>
    functionUses: 2
    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: 1
    functionLinenumber: 285
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.list_paths
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - paths.append
    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: 1
    functionLinenumber: 293
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.multiple_domains
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - domains.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd9d00>
    - <ast.Constant object at 0x7f30f6bd9d60>
    argNames:
    - self
    - domain
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 306
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.get_dict
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 321
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.__contains__
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 327
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.__getitem__
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - pip._vendor.requests.cookies.RequestsCookieJar._find_no_duplicates
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 336
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.__setitem__
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - time.time
    - calendar.timegm
    - <builtin>.set
    - result.update
    - pip._vendor.requests.cookies.morsel_to_cookie
    - http.cookiejar.CookieJar.clear
    - time.strptime
    - <builtin>.super
    - clearables.append
    - pip._vendor.requests.cookies.remove_cookie_by_name
    - cookie.value.endswith
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - <builtin>.int
    - http.cookiejar.Cookie
    - kwargs.get
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.cookies.RequestsCookieJar.set
    - cookie.value.startswith
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 343
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.__delitem__
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - http.cookiejar.CookieJar.clear
    - pip._vendor.requests.cookies.remove_cookie_by_name
    - clearables.append
    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: cookie.value.startswith
    functionSourceFile: <builtin>
    functionUses: 52
    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: cookie.value.endswith
    functionSourceFile: <builtin>
    functionUses: 52
    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: cookie.value.replace
    functionSourceFile: <builtin>
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 358
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.update
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 29
    functionsReached:
    - <builtin>.super
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - <builtin>.isinstance
    - cookie.value.replace
    - cookie.value.endswith
    - cookie.value.startswith
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd0a23d0>
    - <ast.Constant object at 0x7f30fd0a23a0>
    argNames:
    - self
    - name
    - domain
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 366
    functionName: pip._vendor.requests.cookies.RequestsCookieJar._find
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 415
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.__getstate__
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - http.cookiejar.CookieJar.__dict__.copy
    - state.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.cookiejar.CookieJar.__dict__.copy
    functionSourceFile: http
    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: state.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 422
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.__setstate__
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 0
    functionsReached:
    - http.cookiejar.CookieJar.__dict__.update
    - dummy_threading.RLock
    - threading.RLock
    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: http.cookiejar.CookieJar.__dict__.update
    functionSourceFile: http
    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: dummy_threading.RLock
    functionSourceFile: dummy_threading
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 428
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.copy
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 26
    functionsReached:
    - http.cookiejar.CookieJar.set_policy
    - <builtin>.super
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - <builtin>.isinstance
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - cookie.value.replace
    - cookie.value.endswith
    - cookie.value.startswith
    - collections.abc.MutableMapping.__init__
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.requests.compat.MutableMapping.__init__
    functionSourceFile: ''
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.abc.MutableMapping.__init__
    functionSourceFile: ''
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.cookiejar.CookieJar.__init__
    functionSourceFile: ''
    functionUses: 48
    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: 435
    functionName: pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    functionSourceFile: ''
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.cookiejar.CookieJar.set_policy
    functionSourceFile: http
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: copy.copy
    functionSourceFile: copy
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_jar.clear
    functionSourceFile: <builtin>
    functionUses: 26
    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: new_jar.set_cookie
    functionSourceFile: <builtin>
    functionUses: 26
    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.update
    functionSourceFile: <builtin>
    functionUses: 52
    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: http.cookiejar.Cookie
    functionSourceFile: http
    functionUses: 49
    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: time.strptime
    functionSourceFile: time
    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: calendar.timegm
    functionSourceFile: calendar
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - cookiejar
    - cookies
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 542
    functionName: pip._vendor.requests.cookies.merge_cookies
    functionSourceFile: pip._vendor.requests.cookies
    functionUses: 25
    functionsReached:
    - <builtin>.super
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - <builtin>.isinstance
    - http.cookiejar.Cookie
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - cookie.value.replace
    - <builtin>.bool
    - cookie.value.endswith
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.set
    - result.update
    - cookie.value.startswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: pip._vendor.requests.utils
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - contextlib.contextmanager
    - pip._vendor.requests.certs.where
    - s.encode
    - base64.b64encode
    - <builtin>.frozenset
    - pip._vendor.urllib3.packages.six.b
    - base64.b64encode.decode
    - pip._vendor.urllib3.util.request.make_headers
    - re.split
    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: 20
    functionName: pip._vendor.requests.certs.where
    functionSourceFile: ''
    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: re.split
    functionSourceFile: re
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - host
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: pip._vendor.requests.utils.proxy_bypass_registry
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 1
    functionsReached:
    - proxyOverride.split
    - test.replace
    - <builtin>.int
    - winreg.OpenKey
    - winreg.QueryValueEx
    - re.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: proxyOverride.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: test.replace
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - host
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 112
    functionName: pip._vendor.requests.utils.proxy_bypass
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 0
    functionsReached:
    - proxyOverride.split
    - test.replace
    - <builtin>.int
    - winreg.OpenKey
    - winreg.QueryValueEx
    - pip._vendor.requests.utils.proxy_bypass_registry
    - urllib.request.getproxies_environment
    - re.match
    - urllib.request.proxy_bypass_environment
    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.getproxies_environment
    functionSourceFile: urllib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.request.proxy_bypass_environment
    functionSourceFile: urllib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - d
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 124
    functionName: pip._vendor.requests.utils.dict_to_sequence
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 0
    functionsReached:
    - d.items
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.abc.MutableMapping.fileno
    functionSourceFile: collections
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlencode.fileno
    functionSourceFile: urllib
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin.fileno
    functionSourceFile: urllib
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote.fileno
    functionSourceFile: urllib
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlencode.seek
    functionSourceFile: urllib
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin.seek
    functionSourceFile: urllib
    functionUses: 32
    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.abc.MutableMapping.seek
    functionSourceFile: collections
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote.seek
    functionSourceFile: urllib
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e82e6100>
    argNames:
    - url
    - raise_errors
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 199
    functionName: pip._vendor.requests.utils.get_netrc_auth
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 30
    functionsReached:
    - netrc.netrc
    - splitstr.decode
    - <builtin>.isinstance
    - urllib.parse.urlparse.netloc.split
    - os.path.exists
    - os.path.expanduser
    - urllib.parse.urlparse
    - os.environ.get
    - netrc.netrc.authenticators
    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: splitstr.decode
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse.netloc.split
    functionSourceFile: urllib
    functionUses: 31
    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: netrc.netrc
    functionSourceFile: netrc
    functionUses: 31
    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: netrc.netrc.authenticators
    functionSourceFile: netrc
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 263
    functionName: pip._vendor.requests.utils.extract_zipped_paths
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 2
    functionsReached:
    - tempfile.mkstemp
    - os.remove
    - zip_file.read
    - zipfile.ZipFile
    - os.path.exists
    - os.path.dirname
    - os.fdopen
    - os.replace
    - zip_file.namelist
    - os.path.join
    - os.path.split
    - file_handler.write
    - member.split
    - tempfile.gettempdir
    - zipfile.is_zipfile
    - pip._vendor.requests.utils.atomic_open
    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: zip_file.namelist
    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: tempfile.gettempdir
    functionSourceFile: tempfile
    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: member.split
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 301
    functionName: pip._vendor.requests.utils.atomic_open
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 3
    functionsReached:
    - tempfile.mkstemp
    - os.remove
    - os.path.dirname
    - os.fdopen
    - os.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: zip_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: file_handler.write
    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: os.fdopen
    functionSourceFile: os
    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: os.replace
    functionSourceFile: os
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 313
    functionName: pip._vendor.requests.utils.from_key_val_list
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 0
    functionsReached:
    - collections.OrderedDict
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 370
    functionName: pip._vendor.requests.utils.parse_list_header
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 0
    functionsReached:
    - value.replace
    - result.append
    - pip._vendor.requests.utils.unquote_header_value
    - urllib.request.parse_http_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: urllib.request.parse_http_list
    functionSourceFile: urllib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e8318160>
    argNames:
    - value
    - is_filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 437
    functionName: pip._vendor.requests.utils.unquote_header_value
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 3
    functionsReached:
    - value.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.request.parse_http_list.split
    functionSourceFile: urllib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 462
    functionName: pip._vendor.requests.utils.dict_from_cookiejar
    functionSourceFile: pip._vendor.requests.utils
    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:
    - cj
    - cookie_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 477
    functionName: pip._vendor.requests.utils.add_dict_to_cookiejar
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - cookie.value.replace
    - <builtin>.bool
    - cookie.value.endswith
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.set
    - result.update
    - cookie.value.startswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - content
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 488
    functionName: pip._vendor.requests.utils.get_encodings_from_content
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 0
    functionsReached:
    - pragma_re.findall
    - charset_re.findall
    - xml_re.findall
    - warnings.warn
    - re.compile
    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: charset_re.findall
    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: pragma_re.findall
    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: xml_re.findall
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - header
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 513
    functionName: pip._vendor.requests.utils._parse_content_type_header
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 4
    functionsReached:
    - param.strip
    - header.split
    - key.lower
    - param.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: header.split
    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: param.strip
    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: param.find
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - headers
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 538
    functionName: pip._vendor.requests.utils.get_encoding_from_headers
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 3
    functionsReached:
    - param.strip
    - header.split
    - param.find
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.utils._parse_content_type_header
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: codecs.getincrementaldecoder
    functionSourceFile: codecs
    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: decoder.decode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - r
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 590
    functionName: pip._vendor.requests.utils.get_unicode_from_response
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 0
    functionsReached:
    - param.strip
    - header.split
    - warnings.warn
    - param.find
    - pip._vendor.requests.utils.get_encoding_from_headers
    - tried_encodings.append
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.utils._parse_content_type_header
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tried_encodings.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - uri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 635
    functionName: pip._vendor.requests.utils.unquote_unreserved
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 29
    functionsReached:
    - <builtin>.int
    - <builtin>.chr
    - urllib.parse.urljoin.split
    - <builtin>.len
    - urllib.parse.urlunparse.split
    - h.isalnum
    - urllib.parse.quote.split
    - collections.abc.MutableMapping.split
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - InvalidURL
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin.split
    functionSourceFile: urllib
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote.split
    functionSourceFile: urllib
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlunparse.split
    functionSourceFile: urllib
    functionUses: 30
    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.abc.MutableMapping.split
    functionSourceFile: collections
    functionUses: 30
    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: h.isalnum
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - ip
    - net
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 681
    functionName: pip._vendor.requests.utils.address_in_network
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 29
    functionsReached:
    - struct.unpack
    - socket.inet_aton
    - <builtin>.int
    - struct.pack
    - net.split
    - pip._vendor.requests.utils.dotted_netmask
    - socket.inet_ntoa
    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.inet_aton
    functionSourceFile: socket
    functionUses: 32
    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: net.split
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - mask
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 696
    functionName: pip._vendor.requests.utils.dotted_netmask
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 30
    functionsReached:
    - struct.pack
    - socket.inet_ntoa
    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: struct.pack
    functionSourceFile: struct
    functionUses: 49
    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: socket.inet_ntoa
    functionSourceFile: socket
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - string_ip
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 707
    functionName: pip._vendor.requests.utils.is_ipv4_address
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 29
    functionsReached:
    - socket.inet_aton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - string_network
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 718
    functionName: pip._vendor.requests.utils.is_valid_cidr
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 29
    functionsReached:
    - string_network.split
    - string_network.count
    - <builtin>.int
    - socket.inet_aton
    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: string_network.count
    functionSourceFile: <builtin>
    functionUses: 30
    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: string_network.split
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - env_name
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 743
    functionName: pip._vendor.requests.utils.set_environ
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 29
    functionsReached:
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - no_proxy
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 764
    functionName: pip._vendor.requests.utils.should_bypass_proxies
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 28
    functionsReached:
    - socket.inet_aton
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.utils.dotted_netmask
    - socket.inet_ntoa
    - os.environ.get
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - no_proxy.replace
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - pip._vendor.requests.utils.address_in_network
    - pip._vendor.requests.utils.is_ipv4_address
    - struct.unpack
    - struct.pack
    - key.upper
    - string_network.count
    - <builtin>.int
    - urllib.request.proxy_bypass
    - pip._vendor.requests.utils.set_environ
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - key
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 772
    functionName: pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 29
    functionsReached:
    - os.environ.get
    - key.upper
    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: key.upper
    functionSourceFile: <builtin>
    functionUses: 32
    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: no_proxy.replace
    functionSourceFile: <builtin>
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse.hostname.endswith
    functionSourceFile: urllib
    functionUses: 29
    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.proxy_bypass
    functionSourceFile: urllib
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e82f5790>
    argNames:
    - url
    - no_proxy
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 824
    functionName: pip._vendor.requests.utils.get_environ_proxies
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 27
    functionsReached:
    - socket.inet_aton
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.utils.dotted_netmask
    - socket.inet_ntoa
    - os.environ.get
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - no_proxy.replace
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - pip._vendor.requests.utils.address_in_network
    - pip._vendor.requests.utils.is_ipv4_address
    - struct.unpack
    - struct.pack
    - key.upper
    - urllib.request.getproxies
    - pip._vendor.requests.utils.should_bypass_proxies
    - string_network.count
    - <builtin>.int
    - urllib.request.proxy_bypass
    - pip._vendor.requests.utils.set_environ
    - urllib.parse.urlparse
    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.getproxies
    functionSourceFile: urllib
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - proxies
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 836
    functionName: pip._vendor.requests.utils.select_proxy
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 3
    functionsReached:
    - urllib.parse.urlparse
    - proxies.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: proxies.get
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e82f2610>
    argNames:
    - request
    - proxies
    - trust_env
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 862
    functionName: pip._vendor.requests.utils.resolve_proxies
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 25
    functionsReached:
    - socket.inet_aton
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.utils.dotted_netmask
    - socket.inet_ntoa
    - os.environ.get
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - urllib.request.getproxies.get
    - no_proxy.replace
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - pip._vendor.requests.utils.address_in_network
    - pip._vendor.requests.utils.is_ipv4_address
    - struct.unpack
    - struct.pack
    - key.upper
    - proxies.copy
    - urllib.request.getproxies
    - pip._vendor.requests.utils.should_bypass_proxies
    - string_network.count
    - <builtin>.int
    - new_proxies.setdefault
    - pip._vendor.requests.utils.get_environ_proxies
    - proxies.get
    - urllib.request.proxy_bypass
    - pip._vendor.requests.utils.set_environ
    - urllib.parse.urlparse
    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: proxies.copy
    functionSourceFile: <builtin>
    functionUses: 26
    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.getproxies.get
    functionSourceFile: urllib
    functionUses: 26
    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: pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    functionSourceFile: pip
    functionUses: 26
    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: new_proxies.setdefault
    functionSourceFile: <builtin>
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30e82ec7f0>
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 889
    functionName: pip._vendor.requests.utils.default_user_agent
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 11
    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: 2
    functionLinenumber: 898
    functionName: pip._vendor.requests.utils.default_headers
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 10
    functionsReached:
    - pip._vendor.requests.utils.default_user_agent
    - collections.OrderedDict
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: params.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: param.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: links.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sample.count
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - new_scheme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 987
    functionName: pip._vendor.requests.utils.prepend_scheme_if_needed
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - URI_RE.match
    - name.lower
    - IPV4_RE.match
    - <builtin>.bytearray
    - HTTPError.__init__
    - path.split
    - output.append
    - path.endswith
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - byte.decode
    - ZONE_ID_RE.search
    - authority.rpartition
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - encoded_component.decode
    - output.pop
    - path.startswith
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - urllib.parse.urlunparse
    - output.insert
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - zone_id.startswith
    - <builtin>.int
    - scheme.lower
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - header
    - header_part
    - header_validator_index
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1043
    functionName: pip._vendor.requests.utils._validate_header_part
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 27
    functionsReached:
    - <builtin>.isinstance
    - validator.match
    linkageType: pythonLinkage
    raised:
    - InvalidHeader
    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: validator.match
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1062
    functionName: pip._vendor.requests.utils.urldefragauth
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 2
    functionsReached:
    - urllib.parse.urlunparse
    - urllib.parse.urlparse
    - netloc.rsplit
    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: netloc.rsplit
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - prepared_request
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1079
    functionName: pip._vendor.requests.utils.rewind_body
    functionSourceFile: pip._vendor.requests.utils
    functionUses: 24
    functionsReached:
    - <builtin>.getattr
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - UnrewindableBodyError
    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: pip._vendor.requests.__version__
    functionSourceFile: pip._vendor.requests.__version__
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.requests.exceptions
    functionSourceFile: pip._vendor.requests.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 17
    functionName: pip._vendor.requests.exceptions.RequestException.__init__
    functionSourceFile: pip._vendor.requests.exceptions
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - kwargs.pop
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 34
    functionName: pip._vendor.requests.exceptions.JSONDecodeError.__init__
    functionSourceFile: pip._vendor.requests.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.requests.exceptions.RequestException.__init__
    - json.JSONDecodeError.__init__
    - kwargs.pop
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: json.JSONDecodeError.__init__
    functionSourceFile: json
    functionUses: 1
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.requests.certs
    functionSourceFile: pip._vendor.requests.certs
    functionUses: 0
    functionsReached:
    - importlib.resources.as_file
    - <builtin>.str
    - importlib.resources.files.joinpath
    - importlib.resources.path
    - os.path.dirname
    - <builtin>.print
    - os.path.join
    - importlib.resources.path.__enter__
    - importlib.resources.files
    - importlib.resources.as_file.__enter__
    - pip._vendor.certifi.core.where
    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: pip._vendor.requests.structures
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.abc.MutableMapping.update
    functionSourceFile: collections
    functionUses: 58
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: pip._vendor.requests.structures.CaseInsensitiveDict.__setitem__
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 0
    functionsReached:
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 51
    functionName: pip._vendor.requests.structures.CaseInsensitiveDict.__getitem__
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 0
    functionsReached:
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: pip._vendor.requests.structures.CaseInsensitiveDict.__delitem__
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 0
    functionsReached:
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 60
    functionName: pip._vendor.requests.structures.CaseInsensitiveDict.__len__
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 0
    functionsReached:
    - <builtin>.len
    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: 63
    functionName: pip._vendor.requests.structures.CaseInsensitiveDict.lower_items
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 1
    functionsReached:
    - collections.OrderedDict.items
    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.items
    functionSourceFile: collections
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 67
    functionName: pip._vendor.requests.structures.CaseInsensitiveDict.__eq__
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - collections.OrderedDict
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.OrderedDict.items
    - <builtin>.dict
    - pip._vendor.requests.structures.CaseInsensitiveDict.lower_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: pip._vendor.requests.structures.CaseInsensitiveDict.__repr__
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 0
    functionsReached:
    - <builtin>.dict
    - collections.abc.MutableMapping.items
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a8eb0>
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: pip._vendor.requests.structures.LookupDict.__init__
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 90
    functionName: pip._vendor.requests.structures.LookupDict.__repr__
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 93
    functionName: pip._vendor.requests.structures.LookupDict.__getitem__
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa7490>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 98
    functionName: pip._vendor.requests.structures.LookupDict.get
    functionSourceFile: pip._vendor.requests.structures
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.fields
    functionSourceFile: pip._vendor.urllib3.fields
    functionUses: 0
    functionsReached:
    - _HTML5_REPLACEMENTS.update
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e346b280>
    argNames:
    - filename
    - default
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 10
    functionName: pip._vendor.urllib3.fields.guess_content_type
    functionSourceFile: pip._vendor.urllib3.fields
    functionUses: 32
    functionsReached:
    - mimetypes.guess_type
    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: mimetypes.guess_type
    functionSourceFile: mimetypes
    functionUses: 50
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - name
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: pip._vendor.urllib3.fields.format_header_param_rfc2231
    functionSourceFile: pip._vendor.urllib3.fields
    functionUses: 0
    functionsReached:
    - value.decode
    - <builtin>.any
    - <builtin>.isinstance
    - email.utils.encode_rfc2231
    - value.encode
    - result.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: email.utils.encode_rfc2231
    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: _HTML5_REPLACEMENTS.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - value
    - needles_and_replacements
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 82
    functionName: pip._vendor.urllib3.fields._replace_multiple
    functionSourceFile: pip._vendor.urllib3.fields
    functionUses: 3
    functionsReached:
    - pattern.sub
    - re.compile
    - re.escape
    - needles_and_replacements.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - match
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 83
    functionName: pip._vendor.urllib3.fields._replace_multiple.replacer
    functionSourceFile: pip._vendor.urllib3.fields
    functionUses: 0
    functionsReached:
    - match.group
    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: needles_and_replacements.keys
    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: pattern.sub
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - name
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 95
    functionName: pip._vendor.urllib3.fields.format_header_param_html5
    functionSourceFile: pip._vendor.urllib3.fields
    functionUses: 2
    functionsReached:
    - value.decode
    - pattern.sub
    - <builtin>.isinstance
    - pip._vendor.urllib3.fields._replace_multiple
    - re.compile
    - re.escape
    - needles_and_replacements.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f30fcc6f250>
    argNames:
    - cls
    - fieldname
    - value
    - header_formatter
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 160
    functionName: pip._vendor.urllib3.fields.RequestField.from_tuples
    functionSourceFile: pip._vendor.urllib3.fields
    functionUses: 31
    functionsReached:
    - pip._vendor.urllib3.fields.RequestField.__init__
    - pip._vendor.urllib3.fields.guess_content_type
    - <builtin>.isinstance
    - mimetypes.guess_type
    - <builtin>.len
    - request_param.make_multipart
    - <builtin>.dict
    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: request_param.make_multipart
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 195
    functionName: pip._vendor.urllib3.fields.RequestField._render_part
    functionSourceFile: pip._vendor.urllib3.fields
    functionUses: 1
    functionsReached:
    - value.decode
    - pattern.sub
    - <builtin>.isinstance
    - pip._vendor.urllib3.fields._replace_multiple
    - re.compile
    - re.escape
    - pip._vendor.urllib3.fields.format_header_param_html5
    - needles_and_replacements.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - header_parts
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 208
    functionName: pip._vendor.urllib3.fields.RequestField._render_parts
    functionSourceFile: pip._vendor.urllib3.fields
    functionUses: 0
    functionsReached:
    - value.decode
    - pattern.sub
    - <builtin>.isinstance
    - header_parts.items
    - pip._vendor.urllib3.fields.RequestField._render_part
    - pip._vendor.urllib3.fields._replace_multiple
    - parts.append
    - re.compile
    - re.escape
    - pip._vendor.urllib3.fields.format_header_param_html5
    - needles_and_replacements.keys
    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: header_parts.items
    functionSourceFile: <builtin>
    functionUses: 1
    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: 1
    functionLinenumber: 230
    functionName: pip._vendor.urllib3.fields.RequestField.render_headers
    functionSourceFile: pip._vendor.urllib3.fields
    functionUses: 0
    functionsReached:
    - lines.append
    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: pip._vendor.requests.hooks
    functionSourceFile: pip._vendor.requests.hooks
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - key
    - hooks
    - hook_data
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 22
    functionName: pip._vendor.requests.hooks.dispatch_hook
    functionSourceFile: pip._vendor.requests.hooks
    functionUses: 24
    functionsReached:
    - hooks.get
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hooks.get
    functionSourceFile: <builtin>
    functionUses: 25
    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: pip._vendor.urllib3.filepost
    functionSourceFile: pip._vendor.urllib3.filepost
    functionUses: 0
    functionsReached:
    - codecs.lookup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 15
    functionName: pip._vendor.urllib3.filepost.choose_boundary
    functionSourceFile: pip._vendor.urllib3.filepost
    functionUses: 30
    functionsReached:
    - boundary.decode
    - os.urandom
    - binascii.hexlify
    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: binascii.hexlify
    functionSourceFile: binascii
    functionUses: 31
    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: boundary.decode
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - fields
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 25
    functionName: pip._vendor.urllib3.filepost.iter_field_objects
    functionSourceFile: pip._vendor.urllib3.filepost
    functionUses: 30
    functionsReached:
    - pip._vendor.urllib3.fields.RequestField.__init__
    - pip._vendor.urllib3.fields.guess_content_type
    - <builtin>.isinstance
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - mimetypes.guess_type
    - d.items
    - <builtin>.len
    - request_param.make_multipart
    - pip._vendor.urllib3.packages.six.iteritems
    - <builtin>.iter
    - d.iteritems
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - fields
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 45
    functionName: pip._vendor.urllib3.filepost.iter_fields
    functionSourceFile: pip._vendor.urllib3.filepost
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - d.items
    - pip._vendor.urllib3.packages.six.iteritems
    - <builtin>.iter
    - d.iteritems
    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: io.BytesIO.write
    functionSourceFile: io
    functionUses: 43
    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: field.render_headers
    functionSourceFile: <builtin>
    functionUses: 30
    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: io.BytesIO.getvalue
    functionSourceFile: io
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.requests.status_codes
    functionSourceFile: pip._vendor.requests.status_codes
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.requests.status_codes._init
    - pip._vendor.requests.structures.LookupDict.__init__
    - <builtin>.sorted
    - <builtin>.setattr
    - _codes.items
    - pip._vendor.requests.status_codes._init.doc
    - title.startswith
    - title.upper
    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: 1
    functionLinenumber: 109
    functionName: pip._vendor.requests.status_codes._init
    functionSourceFile: pip._vendor.requests.status_codes
    functionUses: 1
    functionsReached:
    - <builtin>.sorted
    - <builtin>.setattr
    - _codes.items
    - pip._vendor.requests.status_codes._init.doc
    - title.startswith
    - title.upper
    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: _codes.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: title.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: title.upper
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - code
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 116
    functionName: pip._vendor.requests.status_codes._init.doc
    functionSourceFile: pip._vendor.requests.status_codes
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 7
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3
    functionSourceFile: pip._vendor.urllib3
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - warnings.simplefilter
    - logging.NullHandler
    - warnings.warn
    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.NullHandler
    functionSourceFile: logging
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Attribute object at 0x7f30e26a8850>
    argNames:
    - level
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 63
    functionName: pip._vendor.urllib3.add_stderr_logger
    functionSourceFile: pip._vendor.urllib3
    functionUses: 0
    functionsReached:
    - logger.addHandler
    - logging.StreamHandler
    - logger.setLevel
    - logger.debug
    - logging.getLogger
    - logging.Formatter
    - handler.setFormatter
    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.StreamHandler
    functionSourceFile: logging
    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: logging.Formatter
    functionSourceFile: logging
    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: handler.setFormatter
    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: logger.addHandler
    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: logger.setLevel
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Attribute object at 0x7f30f99335b0>
    argNames:
    - category
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 98
    functionName: pip._vendor.urllib3.disable_warnings
    functionSourceFile: pip._vendor.urllib3
    functionUses: 0
    functionsReached:
    - warnings.simplefilter
    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: pip._vendor.urllib3.poolmanager
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 0
    functionsReached:
    - functools.partial
    - logging.getLogger
    - collections.namedtuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - key_class
    - request_context
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: pip._vendor.urllib3.poolmanager._default_key_normalizer
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 0
    functionsReached:
    - request_context.copy
    - <builtin>.frozenset
    - context.pop
    - <builtin>.tuple
    - context.keys
    - <builtin>.list
    - context.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request_context.copy
    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: context.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.keys
    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: context.pop
    functionSourceFile: <builtin>
    functionUses: 1
    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 0x7f30f20a15e0>
    - <ast.Constant object at 0x7f30f20a1fd0>
    argNames:
    - self
    - num_pools
    - headers
    - connection_pool_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 171
    functionName: pip._vendor.urllib3.poolmanager.PoolManager.__init__
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 13
    functionsReached:
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - _collections.RecentlyUsedContainer
    - key_fn_by_scheme.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3fe8b0>
    argNames:
    - self
    - headers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 43
    functionName: pip._vendor.urllib3.request.RequestMethods.__init__
    functionSourceFile: ''
    functionUses: 18
    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.RecentlyUsedContainer
    functionSourceFile: _collections
    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: key_fn_by_scheme.copy
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 181
    functionName: pip._vendor.urllib3.poolmanager.PoolManager.__enter__
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 184
    functionName: pip._vendor.urllib3.poolmanager.PoolManager.__exit__
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 0
    functionsReached:
    - _collections.RecentlyUsedContainer.clear
    - pip._vendor.urllib3.poolmanager.PoolManager.clear
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 216
    functionName: pip._vendor.urllib3.poolmanager.PoolManager.clear
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 2
    functionsReached:
    - _collections.RecentlyUsedContainer.clear
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc6f130>
    argNames:
    - self
    - scheme
    - host
    - port
    - request_context
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 189
    functionName: pip._vendor.urllib3.poolmanager.PoolManager._new_pool
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 10
    functionsReached:
    - request_context.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request_context.pop
    functionSourceFile: <builtin>
    functionUses: 11
    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.RecentlyUsedContainer.clear
    functionSourceFile: _collections
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc70b50>
    - <ast.Constant object at 0x7f30fcc70c40>
    - <ast.Constant object at 0x7f30f4aa78b0>
    argNames:
    - self
    - host
    - port
    - scheme
    - pool_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 225
    functionName: pip._vendor.urllib3.poolmanager.PoolManager.connection_from_host
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 7
    functionsReached:
    - pip._vendor.urllib3.poolmanager.PoolManager._merge_pool_kwargs
    - request_context.pop
    - _collections.RecentlyUsedContainer.get
    - override.items
    - pip._vendor.urllib3.poolmanager.PoolManager._new_pool
    - port_by_scheme.get
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_context
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_pool_key
    linkageType: pythonLinkage
    raised:
    - LocationValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - override
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 303
    functionName: pip._vendor.urllib3.poolmanager.PoolManager._merge_pool_kwargs
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 8
    functionsReached:
    - override.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: port_by_scheme.get
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request_context
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 248
    functionName: pip._vendor.urllib3.poolmanager.PoolManager.connection_from_context
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 8
    functionsReached:
    - request_context.pop
    - pip._vendor.urllib3.poolmanager.PoolManager._new_pool
    - _collections.RecentlyUsedContainer.get
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_pool_key
    linkageType: pythonLinkage
    raised:
    - URLSchemeUnknown
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c012b0>
    argNames:
    - self
    - pool_key
    - request_context
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 263
    functionName: pip._vendor.urllib3.poolmanager.PoolManager.connection_from_pool_key
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 9
    functionsReached:
    - request_context.pop
    - pip._vendor.urllib3.poolmanager.PoolManager._new_pool
    - _collections.RecentlyUsedContainer.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _collections.RecentlyUsedContainer.get
    functionSourceFile: _collections
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9933520>
    argNames:
    - self
    - url
    - pool_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 287
    functionName: pip._vendor.urllib3.poolmanager.PoolManager.connection_from_url
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 2
    functionsReached:
    - pip._vendor.urllib3.poolmanager.PoolManager._merge_pool_kwargs
    - <builtin>.isinstance
    - URI_RE.match
    - name.lower
    - IPV4_RE.match
    - <builtin>.bytearray
    - HTTPError.__init__
    - path.split
    - output.append
    - pip._vendor.urllib3.poolmanager.PoolManager._new_pool
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_context
    - path.endswith
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_pool_key
    - pip._vendor.urllib3.util.url.parse_url
    - byte.decode
    - ZONE_ID_RE.search
    - authority.rpartition
    - override.items
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_host
    - <builtin>.super
    - encoded_component.decode
    - output.pop
    - path.startswith
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - request_context.pop
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - port_by_scheme.get
    - _collections.RecentlyUsedContainer.get
    - zone_id.startswith
    - <builtin>.int
    - scheme.lower
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.poolmanager.ProxyManager.connection_from_host
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d7e507c0>
    - <ast.Constant object at 0x7f30d7e50790>
    - <ast.Constant object at 0x7f30d7e50760>
    argNames:
    - self
    - host
    - port
    - scheme
    - pool_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 498
    functionName: pip._vendor.urllib3.poolmanager.ProxyManager.connection_from_host
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 7
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: override.items
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parsed_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 323
    functionName: pip._vendor.urllib3.poolmanager.PoolManager._proxy_requires_url_absolute_form
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 4
    functionsReached:
    - pip._vendor.urllib3.util.proxy.connection_requires_http_tunnel
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f114f640>
    - <ast.Constant object at 0x7f30f114f730>
    - <ast.Constant object at 0x7f30e580a520>
    argNames:
    - proxy_url
    - proxy_config
    - destination_scheme
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 4
    functionName: pip._vendor.urllib3.util.proxy.connection_requires_http_tunnel
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - url_scheme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 336
    functionName: pip._vendor.urllib3.poolmanager.PoolManager._validate_proxy_scheme_url_selection
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ProxySchemeUnsupported
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 6
    IfCount: 8
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30e82ee400>
    argNames:
    - self
    - method
    - url
    - redirect
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 353
    functionName: pip._vendor.urllib3.poolmanager.PoolManager.urlopen
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 3
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - pip._vendor.urllib3.poolmanager.PoolManager._merge_pool_kwargs
    - path.split
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_context
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_pool_key
    - SCHEME_RE.search
    - byte.decode
    - <builtin>.tuple
    - packages.six.moves.urllib.parse.urljoin
    - conn.urlopen
    - output.pop
    - request_context.pop
    - response.get_redirect_location
    - PERCENT_RE.subn
    - retries.increment
    - pip._vendor.urllib3.util.url._idna_encode
    - _collections.RecentlyUsedContainer.get
    - scheme.lower
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - log.info
    - URI_RE.match
    - name.lower
    - pip._vendor.urllib3.poolmanager.PoolManager._new_pool
    - pip._vendor.urllib3.poolmanager.PoolManager._validate_proxy_scheme_url_selection
    - d.iterkeys
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - ZONE_ID_RE.search
    - kw.get
    - response.drain_conn
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_host
    - <builtin>.super
    - path.startswith
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - <builtin>.iter
    - match.span
    - conn.is_same_host
    - pip._vendor.urllib3.poolmanager.ProxyManager.connection_from_host
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - h.lower
    - pip._vendor.urllib3.poolmanager.PoolManager.urlopen
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    - <builtin>.isinstance
    - <builtin>.bool
    - HTTPError.__init__
    - path.endswith
    - component.encode
    - override.items
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - <builtin>.list
    - <builtin>.any
    - <builtin>.len
    - s.decode
    - uri_bytes.count
    - <builtin>.hex
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.urllib3.poolmanager.PoolManager._proxy_requires_url_absolute_form
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - <builtin>.type
    - <builtin>.frozenset
    - IPV4_RE.match
    - log.debug
    - output.append
    - authority.rpartition
    - <builtin>.set
    - pip._vendor.urllib3.util.proxy.connection_requires_http_tunnel
    - pip._vendor.urllib3.packages.six.raise_from
    - headers_.update
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.urllib3.poolmanager.ProxyManager._set_proxy_headers
    - encoded_component.decode
    - pip._vendor.urllib3.poolmanager.ProxyManager.urlopen
    - d.keys
    - port_by_scheme.get
    - pip._vendor.urllib3.packages.six.iterkeys
    - zone_id.startswith
    - header.lower
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: conn.urlopen
    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: packages.six.moves.urllib.parse.urljoin
    functionSourceFile: packages
    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: kw.get
    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: conn.is_same_host
    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: header.lower
    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: retries.increment
    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: response.drain_conn
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d7e4e790>
    argNames:
    - self
    - method
    - url
    - redirect
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 523
    functionName: pip._vendor.urllib3.poolmanager.ProxyManager.urlopen
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - URI_RE.match
    - name.lower
    - IPV4_RE.match
    - <builtin>.bytearray
    - HTTPError.__init__
    - path.split
    - output.append
    - path.endswith
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - byte.decode
    - ZONE_ID_RE.search
    - authority.rpartition
    - kw.get
    - pip._vendor.urllib3.util.proxy.connection_requires_http_tunnel
    - pip._vendor.urllib3.packages.six.raise_from
    - headers_.update
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.urllib3.poolmanager.ProxyManager._set_proxy_headers
    - pip._vendor.idna.encode
    - <builtin>.super
    - encoded_component.decode
    - output.pop
    - path.startswith
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - zone_id.startswith
    - <builtin>.int
    - scheme.lower
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30d7e53dc0>
    - <ast.Constant object at 0x7f30d7e53d90>
    - <ast.Constant object at 0x7f30d7e53d60>
    - <ast.Constant object at 0x7f30d7e53d30>
    - <ast.Constant object at 0x7f30d7e53d00>
    argNames:
    - self
    - proxy_url
    - num_pools
    - headers
    - proxy_headers
    - proxy_ssl_context
    - use_forwarding_for_https
    - connection_pool_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 461
    functionName: pip._vendor.urllib3.poolmanager.ProxyManager.__init__
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - URI_RE.match
    - name.lower
    - IPV4_RE.match
    - <builtin>.bytearray
    - collections.namedtuple._replace
    - HTTPError.__init__
    - path.split
    - output.append
    - path.endswith
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - byte.decode
    - ZONE_ID_RE.search
    - authority.rpartition
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - <builtin>.super
    - encoded_component.decode
    - output.pop
    - path.startswith
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - port_by_scheme.get
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - zone_id.startswith
    - <builtin>.int
    - scheme.lower
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - ProxySchemeUnknown
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple._replace
    functionSourceFile: collections
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d7e4ef40>
    argNames:
    - self
    - url
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 508
    functionName: pip._vendor.urllib3.poolmanager.ProxyManager._set_proxy_headers
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - URI_RE.match
    - name.lower
    - IPV4_RE.match
    - <builtin>.bytearray
    - HTTPError.__init__
    - path.split
    - output.append
    - path.endswith
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - byte.decode
    - ZONE_ID_RE.search
    - authority.rpartition
    - pip._vendor.urllib3.packages.six.raise_from
    - headers_.update
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - encoded_component.decode
    - output.pop
    - path.startswith
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - zone_id.startswith
    - <builtin>.int
    - scheme.lower
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    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: headers_.update
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 536
    functionName: pip._vendor.urllib3.poolmanager.proxy_from_url
    functionSourceFile: pip._vendor.urllib3.poolmanager
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - URI_RE.match
    - name.lower
    - IPV4_RE.match
    - <builtin>.bytearray
    - collections.namedtuple._replace
    - HTTPError.__init__
    - path.split
    - output.append
    - path.endswith
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - byte.decode
    - ZONE_ID_RE.search
    - authority.rpartition
    - pip._vendor.urllib3.packages.six.raise_from
    - pip._vendor.urllib3.poolmanager.ProxyManager.__init__
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - <builtin>.super
    - encoded_component.decode
    - output.pop
    - path.startswith
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - port_by_scheme.get
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - zone_id.startswith
    - <builtin>.int
    - scheme.lower
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    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: pip._vendor.urllib3.connectionpool
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 0
    functionsReached:
    - <builtin>.object
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d55409d0>
    argNames:
    - self
    - host
    - port
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 82
    functionName: pip._vendor.urllib3.connectionpool.ConnectionPool.__init__
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - name.lower
    - IPV4_RE.match
    - HTTPError.__init__
    - pip._vendor.urllib3.connectionpool._normalize_host
    - component.encode
    - encoded_component.extend
    - ZONE_ID_RE.search
    - byte.decode
    - pip._vendor.urllib3.packages.six.raise_from
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - encoded_component.decode
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - host.lower
    - zone_id.startswith
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.packages.six.ensure_str
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - LocationValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - host
    - scheme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1106
    functionName: pip._vendor.urllib3.connectionpool._normalize_host
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 9
    functionsReached:
    - <builtin>.isinstance
    - name.lower
    - IPV4_RE.match
    - HTTPError.__init__
    - component.encode
    - encoded_component.extend
    - ZONE_ID_RE.search
    - byte.decode
    - pip._vendor.urllib3.packages.six.raise_from
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - encoded_component.decode
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - zone_id.startswith
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.packages.six.ensure_str
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.lower
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 90
    functionName: pip._vendor.urllib3.connectionpool.ConnectionPool.__str__
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 93
    functionName: pip._vendor.urllib3.connectionpool.ConnectionPool.__enter__
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 96
    functionName: pip._vendor.urllib3.connectionpool.ConnectionPool.__exit__
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 0
    functionsReached:
    - packages.six.moves.queue.Queue.get
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.close
    - conn.close
    - pip._vendor.urllib3.connectionpool.ConnectionPool.close
    - pip._vendor.urllib3.connectionpool._close_pool_connections
    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: 2
    functionLinenumber: 500
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool.close
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 1
    functionsReached:
    - packages.six.moves.queue.Queue.get
    - pip._vendor.urllib3.connectionpool._close_pool_connections
    - conn.close
    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: 101
    functionName: pip._vendor.urllib3.connectionpool.ConnectionPool.close
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 13
    argDefaultValues:
    - <ast.Constant object at 0x7f30d5537d30>
    - <ast.Constant object at 0x7f30d5537d00>
    - <ast.Attribute object at 0x7f30d5537cd0>
    - <ast.Constant object at 0x7f30d5537c70>
    - <ast.Constant object at 0x7f30d5537c40>
    - <ast.Constant object at 0x7f30d5537c10>
    - <ast.Constant object at 0x7f30d5537be0>
    - <ast.Constant object at 0x7f30d5537bb0>
    - <ast.Constant object at 0x7f30d5537b80>
    - <ast.Constant object at 0x7f30d5537b50>
    argNames:
    - self
    - host
    - port
    - strict
    - timeout
    - maxsize
    - block
    - headers
    - retries
    - _proxy
    - _proxy_headers
    - _proxy_config
    - conn_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 176
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool.__init__
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.urllib3.util.timeout.Timeout.from_float
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - name.lower
    - IPV4_RE.match
    - weakref.finalize
    - HTTPError.__init__
    - pip._vendor.urllib3.connectionpool._normalize_host
    - atexit.register
    - component.encode
    - encoded_component.extend
    - packages.six.moves.queue.Queue.put
    - ZONE_ID_RE.search
    - pip._vendor.urllib3.util.timeout.Timeout.__init__
    - byte.decode
    - <builtin>.float
    - pip._vendor.urllib3.packages.six.raise_from
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - weakref.ref
    - encoded_component.decode
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - <builtin>.len
    - s.decode
    - types.ModuleType.xrange
    - PERCENT_RE.subn
    - <builtin>.type
    - <builtin>.next
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - host.lower
    - zone_id.startswith
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - packages.six.moves.queue.Queue.__init__
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.__init__
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - pip._vendor.urllib3.connectionpool.ConnectionPool.__init__
    - <builtin>.range
    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: packages.six.moves.queue.Queue.__init__
    functionSourceFile: ''
    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: types.ModuleType.xrange
    functionSourceFile: types
    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: packages.six.moves.queue.Queue.put
    functionSourceFile: packages
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - obj
    - func
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.__init__
    functionSourceFile: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionUses: 3
    functionsReached:
    - <builtin>.next
    - weakref.ref
    - atexit.register
    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: weakref.finalize
    functionSourceFile: weakref
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 240
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool._new_conn
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 5
    functionsReached:
    - packages.six.moves.http_client.HTTPConnection.__init__
    - kw.pop
    - pip._vendor.urllib3.connection.HTTPConnection.__init__
    - kw.get
    - log.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 115
    functionName: pip._vendor.urllib3.connection.HTTPConnection.__init__
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 7
    functionsReached:
    - kw.get
    - packages.six.moves.http_client.HTTPConnection.__init__
    - kw.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30c8d150a0>
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 261
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_conn
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 4
    functionsReached:
    - wcheck.append
    - <builtin>.isinstance
    - <builtin>.bool
    - log.debug
    - pip._vendor.urllib3.util.wait.wait_for_read
    - pip._vendor.urllib3.util.wait.select_wait_for_socket
    - pip._vendor.urllib3.util.wait.wait_for_socket
    - pip._vendor.urllib3.util.wait.null_wait_for_socket
    - kw.pop
    - time.time
    - kw.get
    - <builtin>.float
    - pip._vendor.urllib3.util.connection.is_connection_dropped
    - conn.close
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_conn
    - conn.set_cert
    - packages.six.moves.http_client.HTTPConnection.__init__
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._new_conn
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._new_conn
    - select.poll
    - packages.six.moves.queue.Queue.get
    - pip._vendor.urllib3.util.wait.poll_wait_for_socket
    - pip._vendor.urllib3.connection.HTTPConnection.__init__
    - pip._vendor.urllib3.util.wait._have_working_poll
    - functools.partial
    - time.monotonic
    - poll_obj.register
    - <builtin>.getattr
    - rcheck.append
    - pip._vendor.urllib3.util.wait._retry_on_intr
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ClosedPoolError
    - EmptyPoolError
    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: packages.six.moves.queue.Queue.get
    functionSourceFile: packages
    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: conn.close
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1009
    functionName: pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._new_conn
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 5
    functionsReached:
    - log.debug
    - <builtin>.isinstance
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_conn
    - conn.set_cert
    linkageType: pythonLinkage
    raised:
    - SSLError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 300
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool._put_conn
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 4
    functionsReached:
    - packages.six.moves.queue.Queue.qsize
    - conn.close
    - packages.six.moves.queue.Queue.put
    - log.warning
    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: packages.six.moves.queue.Queue.qsize
    functionSourceFile: packages
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 331
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool._validate_conn
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 337
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool._prepare_proxy
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 341
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_timeout
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.urllib3.util.timeout.Timeout.clone
    - pip._vendor.urllib3.util.timeout.Timeout.from_float
    - pip._vendor.urllib3.util.timeout.Timeout.__init__
    - <builtin>.float
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - err
    - url
    - timeout_value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 353
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool._raise_timeout
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 5
    functionsReached:
    - <builtin>.hasattr
    - <builtin>.isinstance
    - <builtin>.str
    linkageType: pythonLinkage
    raised:
    - ReadTimeoutError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 13
    IfCount: 5
    argCount: 7
    argDefaultValues:
    - <ast.Name object at 0x7f30f4aa7700>
    - <ast.Constant object at 0x7f30f4aa77c0>
    argNames:
    - self
    - conn
    - method
    - url
    - timeout
    - chunked
    - httplib_request_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 378
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool._make_request
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._raise_timeout
    - log.warning
    - pip._vendor.urllib3.util.timeout.Timeout.from_float
    - conn.connect
    - log.debug
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._absolute_url
    - <builtin>.str
    - pip._vendor.urllib3.util.timeout.Timeout.__init__
    - conn.sock.settimeout
    - <builtin>.float
    - pip._vendor.urllib3.packages.six.raise_from
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_timeout
    - conn.getresponse
    - <builtin>.super
    - socket.getdefaulttimeout
    - pip._vendor.urllib3.util.timeout.Timeout.clone
    - headers.is_multipart
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._validate_conn
    - pip._vendor.urllib3.util.timeout.Timeout.resolve_default_timeout
    - pip._vendor.urllib3.util.timeout.Timeout.start_connect
    - conn.request
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._validate_conn
    - warnings.warn
    - pip._vendor.urllib3.util.response.assert_header_parsing
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    - <builtin>.getattr
    - conn.request_chunked
    - collections.namedtuple.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ReadTimeoutError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1045
    functionName: pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._validate_conn
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 5
    functionsReached:
    - <builtin>.super
    - <builtin>.getattr
    - warnings.warn
    - conn.connect
    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: conn.request_chunked
    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: conn.request
    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: conn.sock.settimeout
    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: conn.getresponse
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 497
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool._absolute_url
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 5
    functionsReached:
    - collections.namedtuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple.__init__
    functionSourceFile: ''
    functionUses: 55
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - pool
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1124
    functionName: pip._vendor.urllib3.connectionpool._close_pool_connections
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 2
    functionsReached:
    - packages.six.moves.queue.Queue.get
    - conn.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 512
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool.is_same_host
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - URI_RE.match
    - name.lower
    - IPV4_RE.match
    - HTTPError.__init__
    - path.split
    - output.append
    - pip._vendor.urllib3.connectionpool._normalize_host
    - path.endswith
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - ZONE_ID_RE.search
    - byte.decode
    - authority.rpartition
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - encoded_component.decode
    - output.pop
    - <builtin>.any
    - path.startswith
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - collections.namedtuple.__init__
    - output.insert
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - port_by_scheme.get
    - pip._vendor.urllib3.util.url.get_host
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - zone_id.startswith
    - <builtin>.int
    - scheme.lower
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 430
    functionName: pip._vendor.urllib3.util.url.get_host
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - URI_RE.match
    - name.lower
    - IPV4_RE.match
    - <builtin>.bytearray
    - HTTPError.__init__
    - path.split
    - output.append
    - path.endswith
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - byte.decode
    - ZONE_ID_RE.search
    - authority.rpartition
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - encoded_component.decode
    - output.pop
    - path.startswith
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - zone_id.startswith
    - <builtin>.int
    - scheme.lower
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 28
    ICount: 14
    IfCount: 19
    argCount: 14
    argDefaultValues:
    - <ast.Constant object at 0x7f30d5559490>
    - <ast.Constant object at 0x7f30d5559460>
    - <ast.Constant object at 0x7f30d5559430>
    - <ast.Constant object at 0x7f30d5559400>
    - <ast.Constant object at 0x7f30d55593d0>
    - <ast.Name object at 0x7f30d55593a0>
    - <ast.Constant object at 0x7f30d5559370>
    - <ast.Constant object at 0x7f30d5559340>
    - <ast.Constant object at 0x7f30d5559310>
    - <ast.Constant object at 0x7f30d55592e0>
    argNames:
    - self
    - method
    - url
    - body
    - headers
    - retries
    - redirect
    - assert_same_host
    - timeout
    - pool_timeout
    - release_conn
    - chunked
    - body_pos
    - response_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 533
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool.urlopen
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 3
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_conn
    - wcheck.append
    - log.warning
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._raise_timeout
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - <builtin>.bytes
    - pip._vendor.urllib3.util.request.rewind_body
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - path.split
    - pip._vendor.urllib3.connectionpool._normalize_host
    - SCHEME_RE.search
    - <builtin>.str
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._prepare_proxy
    - _collections.HTTPHeaderDict
    - byte.decode
    - pip._vendor.urllib3.util.timeout.Timeout.__init__
    - buffer.write
    - _collections.HTTPHeaderDict.items
    - <builtin>.float
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - conn.close
    - <builtin>.tuple
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_conn
    - re.split
    - zlib.decompressobj
    - output.pop
    - obj.isclosed
    - socket.getdefaulttimeout
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._new_conn
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._new_conn
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.is_same_host
    - packages.six.moves.queue.Queue.get
    - response.get_redirect_location
    - PERCENT_RE.subn
    - retries.increment
    - pip._vendor.urllib3.util.url._idna_encode
    - pip._vendor.urllib3.util.timeout.Timeout.start_connect
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.urlopen._is_ssl_error_message_from_http_proxy
    - scheme.lower
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - length.split
    - <builtin>.hasattr
    - URI_RE.match
    - name.lower
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._absolute_url
    - pip._vendor.urllib3.util.wait.wait_for_socket
    - brotli.Decompressor
    - body.tell
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - time.time
    - io.IOBase.close
    - ZONE_ID_RE.search
    - response_kw.get
    - TARGET_RE.match
    - conn.sock.settimeout
    - kw.get
    - response.drain_conn
    - pip._vendor.urllib3.util.connection.is_connection_dropped
    - <builtin>.min
    - pip._vendor.idna.encode
    - conn.getresponse
    - <builtin>.super
    - path.startswith
    - packages.six.moves.http_client.HTTPConnection.__init__
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - buffer.getvalue
    - match.span
    - pip._vendor.urllib3.util.timeout.Timeout.resolve_default_timeout
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.response.HTTPResponse.__init__
    - warnings.warn
    - pip._vendor.urllib3.util.response.assert_header_parsing
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - h.lower
    - rcheck.append
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - sys.exc_info
    - pip._vendor.urllib3.util.wait._retry_on_intr
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.range
    - <builtin>.isinstance
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - <builtin>.bool
    - pip._vendor.urllib3.util.timeout.Timeout.from_float
    - _collections.HTTPHeaderDict.get
    - conn.connect
    - HTTPError.__init__
    - retries.sleep
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - pip._vendor.urllib3.util.wait.select_wait_for_socket
    - path.endswith
    - component.encode
    - pip._vendor.urllib3.util.wait.null_wait_for_socket
    - kw.pop
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.urlopen
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - _collections.HTTPHeaderDict.from_httplib
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_timeout
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._put_conn
    - <builtin>.any
    - pip._vendor.urllib3.util.timeout.Timeout.clone
    - content_encoding.split
    - headers.is_multipart
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._validate_conn
    - <builtin>.len
    - pip._vendor.urllib3.response.HTTPResponse.from_httplib
    - s.decode
    - conn.set_tunnel
    - pip._vendor.urllib3.util.wait.poll_wait_for_socket
    - m.strip
    - uri_bytes.count
    - <builtin>.hex
    - <builtin>.ord
    - pip._vendor.urllib3.connection.HTTPConnection.__init__
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._validate_conn
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.HTTPResponse.read
    - <builtin>.getattr
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_proxy
    - pip._vendor.urllib3.response._get_decoder
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - d.decompress
    - <builtin>.type
    - <builtin>.frozenset
    - IPV4_RE.match
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.util.request.set_file_position
    - log.debug
    - pip._vendor.urllib3.util.wait.wait_for_read
    - output.append
    - packages.six.moves.queue.Queue.qsize
    - response.headers.get
    - headers.copy
    - pip._vendor.urllib3.util.url._encode_target
    - packages.six.moves.queue.Queue.put
    - headers.update
    - modes.split
    - authority.rpartition
    - <builtin>.set
    - e.strip
    - pip._vendor.urllib3.util.proxy.connection_requires_http_tunnel
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - conn.set_cert
    - encoded_component.decode
    - pip._vendor.urllib3.exceptions.ProxyError.__init__
    - tr_enc.split
    - select.poll
    - retries.is_retry
    - enc.strip
    - pip._vendor.urllib3.response.HTTPResponse._init_length
    - port_by_scheme.get
    - pip._vendor.urllib3.util.url.get_host
    - retries.sleep_for_retry
    - zone_id.startswith
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._make_request
    - <builtin>.reversed
    - pip._vendor.urllib3.util.wait._have_working_poll
    - functools.partial
    - conn.request
    - lengths.pop
    - pip._vendor.urllib3.util.response.is_fp_closed
    - time.monotonic
    - poll_obj.register
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - conn.request_chunked
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - io.BytesIO
    linkageType: pythonLinkage
    raised:
    - HostChangedError
    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: response_kw.get
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - target
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 323
    functionName: pip._vendor.urllib3.util.url._encode_target
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 4
    functionsReached:
    - component.encode
    - encoded_component.decode
    - encoded_component.extend
    - <builtin>.isinstance
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - byte.decode
    - <builtin>.len
    - pip._vendor.urllib3.packages.six.ensure_text
    - TARGET_RE.match
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.bytearray
    - uri_bytes.count
    - <builtin>.hex
    - <builtin>.ord
    - <builtin>.range
    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: headers.copy
    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: headers.update
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 994
    functionName: pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_proxy
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 4
    functionsReached:
    - conn.set_tunnel
    - conn.connect
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - ResponseCls
    - r
    - response_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 628
    functionName: pip._vendor.urllib3.response.HTTPResponse.from_httplib
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - log.warning
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - brotli.Decompressor
    - <builtin>.str
    - _collections.HTTPHeaderDict
    - io.IOBase.close
    - buffer.write
    - modes.split
    - _collections.HTTPHeaderDict.items
    - <builtin>.set
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - <builtin>.min
    - io.BytesIO
    - _collections.HTTPHeaderDict.from_httplib
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - obj.isclosed
    - tr_enc.split
    - content_encoding.split
    - <builtin>.len
    - buffer.getvalue
    - m.strip
    - enc.strip
    - pip._vendor.urllib3.response.HTTPResponse._init_length
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - lengths.pop
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.util.response.is_fp_closed
    - pip._vendor.urllib3.response.HTTPResponse.__init__
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.HTTPResponse.read
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - <builtin>.getattr
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - pip._vendor.urllib3.response._get_decoder
    - <builtin>.bytearray
    - d.decompress
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - length.split
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - ssl_error
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 764
    functionName: pip._vendor.urllib3.connectionpool.HTTPConnectionPool.urlopen._is_ssl_error_message_from_http_proxy
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 4
    functionsReached:
    - re.split
    - <builtin>.str
    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: retries.sleep
    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: retries.sleep_for_retry
    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: retries.is_retry
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 21
    argDefaultValues:
    - <ast.Constant object at 0x7f30d553bb20>
    - <ast.Constant object at 0x7f30d553baf0>
    - <ast.Attribute object at 0x7f30d553bac0>
    - <ast.Constant object at 0x7f30d553ba60>
    - <ast.Constant object at 0x7f30d553ba30>
    - <ast.Constant object at 0x7f30d553ba00>
    - <ast.Constant object at 0x7f30d553b9d0>
    - <ast.Constant object at 0x7f30d553b9a0>
    - <ast.Constant object at 0x7f30d553b970>
    - <ast.Constant object at 0x7f30d553b940>
    - <ast.Constant object at 0x7f30d553b910>
    - <ast.Constant object at 0x7f30d553b8e0>
    - <ast.Constant object at 0x7f30d553b8b0>
    - <ast.Constant object at 0x7f30d553b880>
    - <ast.Constant object at 0x7f30d553b850>
    - <ast.Constant object at 0x7f30d553b820>
    - <ast.Constant object at 0x7f30d553b7f0>
    - <ast.Constant object at 0x7f30d553b7c0>
    argNames:
    - self
    - host
    - port
    - strict
    - timeout
    - maxsize
    - block
    - headers
    - retries
    - _proxy
    - _proxy_headers
    - key_file
    - cert_file
    - cert_reqs
    - key_password
    - ca_certs
    - ssl_version
    - assert_hostname
    - assert_fingerprint
    - ca_cert_dir
    - conn_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 925
    functionName: pip._vendor.urllib3.connectionpool.HTTPSConnectionPool.__init__
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.urllib3.util.timeout.Timeout.from_float
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - name.lower
    - IPV4_RE.match
    - weakref.finalize
    - HTTPError.__init__
    - pip._vendor.urllib3.connectionpool._normalize_host
    - atexit.register
    - component.encode
    - encoded_component.extend
    - packages.six.moves.queue.Queue.put
    - ZONE_ID_RE.search
    - pip._vendor.urllib3.util.timeout.Timeout.__init__
    - byte.decode
    - <builtin>.float
    - pip._vendor.urllib3.packages.six.raise_from
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - weakref.ref
    - encoded_component.decode
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - <builtin>.len
    - s.decode
    - types.ModuleType.xrange
    - PERCENT_RE.subn
    - <builtin>.type
    - <builtin>.next
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.__init__
    - host.lower
    - zone_id.startswith
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - packages.six.moves.queue.Queue.__init__
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.__init__
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - pip._vendor.urllib3.connectionpool.ConnectionPool.__init__
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 974
    functionName: pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_conn
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - conn.set_cert
    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: conn.set_cert
    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: conn.set_tunnel
    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: conn.connect
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1078
    functionName: pip._vendor.urllib3.connectionpool.connection_from_url
    functionSourceFile: pip._vendor.urllib3.connectionpool
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - URI_RE.match
    - pip._vendor.urllib3.util.timeout.Timeout.from_float
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - name.lower
    - IPV4_RE.match
    - weakref.finalize
    - HTTPError.__init__
    - path.split
    - output.append
    - pip._vendor.urllib3.connectionpool._normalize_host
    - atexit.register
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - path.endswith
    - pip._vendor.urllib3.util.url.parse_url
    - packages.six.moves.queue.Queue.put
    - ZONE_ID_RE.search
    - pip._vendor.urllib3.util.timeout.Timeout.__init__
    - byte.decode
    - authority.rpartition
    - <builtin>.float
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - weakref.ref
    - pip._vendor.idna.encode
    - encoded_component.decode
    - output.pop
    - <builtin>.any
    - path.startswith
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool.__init__
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - collections.namedtuple.__init__
    - output.insert
    - <builtin>.len
    - s.decode
    - types.ModuleType.xrange
    - PERCENT_RE.subn
    - <builtin>.type
    - <builtin>.next
    - uri_bytes.count
    - <builtin>.hex
    - port_by_scheme.get
    - pip._vendor.urllib3.util.url.get_host
    - match.span
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.__init__
    - host.lower
    - zone_id.startswith
    - <builtin>.int
    - scheme.lower
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - packages.six.moves.queue.Queue.__init__
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.__init__
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - pip._vendor.urllib3.connectionpool.ConnectionPool.__init__
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - host
    - scheme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 274
    functionName: pip._vendor.urllib3.util.url._normalize_host
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 49
    functionsReached:
    - <builtin>.isinstance
    - name.lower
    - IPV4_RE.match
    - HTTPError.__init__
    - component.encode
    - encoded_component.extend
    - ZONE_ID_RE.search
    - byte.decode
    - pip._vendor.urllib3.packages.six.raise_from
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - encoded_component.decode
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - zone_id.startswith
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.packages.six.ensure_str
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.connection
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - datetime.date
    - re.compile
    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.date
    functionSourceFile: datetime
    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: kw.pop
    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: packages.six.moves.http_client.HTTPConnection.__init__
    functionSourceFile: packages
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 152
    functionName: pip._vendor.urllib3.connection.HTTPConnection.host
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 0
    functionsReached: []
    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: 161
    functionName: pip._vendor.urllib3.connection.HTTPConnection._new_conn
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 1
    functionsReached:
    - sock.close
    - host.encode
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - socket.socket
    - pip._vendor.urllib3.util.connection.create_connection
    - sock.settimeout
    - sock.bind
    - socket.getaddrinfo
    - pip._vendor.urllib3.util.connection.allowed_gai_family
    - host.startswith
    - sock.connect
    - host.strip
    - pip._vendor.urllib3.util.connection._set_socket_options
    - HTTPError.__init__
    - pip._vendor.urllib3.packages.six.raise_from
    - sock.setsockopt
    linkageType: pythonLinkage
    raised:
    - NewConnectionError
    - ConnectTimeoutError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 192
    functionName: pip._vendor.urllib3.connection.HTTPConnection._is_using_tunnel
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 2
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 196
    functionName: pip._vendor.urllib3.connection.HTTPConnection._prepare_conn
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 1
    functionsReached:
    - packages.six.moves.http_client.HTTPConnection._tunnel
    - pip._vendor.urllib3.connection.HTTPConnection._is_using_tunnel
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: packages.six.moves.http_client.HTTPConnection._tunnel
    functionSourceFile: packages
    functionUses: 2
    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: 204
    functionName: pip._vendor.urllib3.connection.HTTPConnection.connect
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 0
    functionsReached:
    - host.encode
    - sock.settimeout
    - pip._vendor.urllib3.util.connection.allowed_gai_family
    - HTTPError.__init__
    - sock.close
    - packages.six.moves.http_client.HTTPConnection._tunnel
    - pip._vendor.urllib3.connection.HTTPConnection._prepare_conn
    - pip._vendor.urllib3.connection.HTTPConnection._is_using_tunnel
    - sock.connect
    - host.strip
    - pip._vendor.urllib3.packages.six.raise_from
    - pip._vendor.urllib3.connection.HTTPConnection._new_conn
    - pip._vendor.urllib3.util.connection.create_connection
    - socket.socket
    - socket.getaddrinfo
    - pip._vendor.urllib3.util.connection._set_socket_options
    - sock.setsockopt
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - sock.bind
    - <builtin>.getattr
    - host.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - method
    - url
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 208
    functionName: pip._vendor.urllib3.connection.HTTPConnection.putrequest
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 1
    functionsReached:
    - packages.six.moves.http_client.HTTPConnection.putrequest
    - _CONTAINS_CONTROL_CHAR_RE.search
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: _CONTAINS_CONTROL_CHAR_RE.search
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: packages.six.moves.http_client.HTTPConnection.putrequest
    functionSourceFile: packages
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - header
    - values
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 221
    functionName: pip._vendor.urllib3.connection.HTTPConnection.putheader
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 1
    functionsReached:
    - <builtin>.any
    - packages.six.moves.http_client.HTTPConnection.putheader
    - <builtin>.isinstance
    - header.lower
    - pip._vendor.urllib3.packages.six.ensure_str
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: packages.six.moves.http_client.HTTPConnection.putheader
    functionSourceFile: packages
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa1730>
    - <ast.Constant object at 0x7f30f4aa1880>
    argNames:
    - self
    - method
    - url
    - body
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 231
    functionName: pip._vendor.urllib3.connection.HTTPConnection.request
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - headers.copy
    - <builtin>.isinstance
    - k.lower
    - pip._vendor.urllib3.connection._get_default_user_agent
    - pip._vendor.urllib3.packages.six.ensure_str
    - <builtin>.getattr
    - <builtin>.type
    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: k.lower
    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: 558
    functionName: pip._vendor.urllib3.connection._get_default_user_agent
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa7640>
    - <ast.Constant object at 0x7f30f4aa7cd0>
    argNames:
    - self
    - method
    - url
    - body
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 246
    functionName: pip._vendor.urllib3.connection.HTTPConnection.request_chunked
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.urllib3.connection._get_default_user_agent
    - chunk.encode
    - packages.six.moves.http_client.HTTPConnection.putrequest
    - <builtin>.set
    - packages.six.moves.http_client.HTTPConnection.endheaders
    - packages.six.moves.http_client.HTTPConnection.send
    - <builtin>.any
    - packages.six.moves.http_client.HTTPConnection.putheader
    - _CONTAINS_CONTROL_CHAR_RE.search
    - <builtin>.len
    - k.lower
    - <builtin>.hex
    - pip._vendor.urllib3.connection.HTTPConnection.putrequest
    - pip._vendor.urllib3.connection.HTTPConnection.putheader
    - header.lower
    - pip._vendor.urllib3.packages.six.ensure_str
    - headers.items
    - <builtin>.bytearray
    - len_str.encode
    - <builtin>.type
    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: headers.items
    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: packages.six.moves.http_client.HTTPConnection.endheaders
    functionSourceFile: packages
    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: chunk.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: len_str.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: packages.six.moves.http_client.HTTPConnection.send
    functionSourceFile: packages
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7f30d07a3880>
    - <ast.Constant object at 0x7f30d07a38b0>
    - <ast.Constant object at 0x7f30d07a38e0>
    - <ast.Constant object at 0x7f30d07a3910>
    - <ast.Constant object at 0x7f30d07a3940>
    - <ast.Attribute object at 0x7f30d07a3970>
    - <ast.Constant object at 0x7f30d07a39d0>
    - <ast.Constant object at 0x7f30d07a3a00>
    argNames:
    - self
    - host
    - port
    - key_file
    - cert_file
    - key_password
    - strict
    - timeout
    - ssl_context
    - server_hostname
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 302
    functionName: pip._vendor.urllib3.connection.HTTPSConnection.__init__
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 0
    functionsReached:
    - kw.get
    - kw.pop
    - packages.six.moves.http_client.HTTPConnection.__init__
    - pip._vendor.urllib3.connection.HTTPConnection.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f30d081cc40>
    - <ast.Constant object at 0x7f30d081cc10>
    - <ast.Constant object at 0x7f30d081cbe0>
    - <ast.Constant object at 0x7f30d081cbb0>
    - <ast.Constant object at 0x7f30d081cb80>
    - <ast.Constant object at 0x7f30d081cb50>
    - <ast.Constant object at 0x7f30d081cb20>
    - <ast.Constant object at 0x7f30d081caf0>
    - <ast.Constant object at 0x7f30d081cac0>
    argNames:
    - self
    - key_file
    - cert_file
    - cert_reqs
    - key_password
    - ca_certs
    - assert_hostname
    - assert_fingerprint
    - ca_cert_dir
    - ca_cert_data
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 328
    functionName: pip._vendor.urllib3.connection.HTTPSConnection.set_cert
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - os.path.expanduser
    - pip._vendor.urllib3.util.ssl_.resolve_cert_reqs
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - candidate
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 211
    functionName: pip._vendor.urllib3.util.ssl_.resolve_cert_reqs
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 4
    functionsReached:
    - <builtin>.getattr
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 7
    IfCount: 10
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 361
    functionName: pip._vendor.urllib3.connection.HTTPSConnection.connect
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.ssl_.create_urllib3_context
    - pip._vendor.urllib3.util.ssl_.create_urllib3_context.disable_check_hostname
    - ssl.SSLContext.set_alpn_protocols
    - ssl.SSLContext.wrap_bio
    - <builtin>.isinstance
    - leftmost.count
    - log.warning
    - ssl.SSLContext.load_cert_chain
    - <builtin>.bool
    - hostname.startswith
    - IPV4_RE.match
    - re.compile
    - asserted_hostname.strip
    - ssl.SSLContext.wrap_socket
    - re.escape
    - leftmost.startswith
    - os.environ.get
    - pip._vendor.urllib3.util.ssl_.resolve_ssl_version
    - dn.lower
    - ipaddress.ip_address
    - pip._vendor.urllib3.util.ssl_.resolve_cert_reqs
    - pat.match
    - ssl.SSLContext.load_verify_locations
    - pip._vendor.urllib3.util.ssl_.ssl_wrap_socket
    - dnsnames.append
    - hostname.lower
    - ssl.SSLContext
    - pip._vendor.urllib3.connection._match_hostname
    - pip._vendor.urllib3.util.ssl_.is_ipaddress
    - pip._vendor.urllib3.util.ssl_match_hostname._dnsname_match
    - pats.append
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._validate_ssl_context_for_tls_in_tls
    - pip._vendor.urllib3.util.ssl_match_hostname.match_hostname
    - pip._vendor.urllib3.util.ssl_._ssl_wrap_socket_impl
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    - <builtin>.len
    - ssl.MemoryBIO
    - pip._vendor.urllib3.util.ssl_match_hostname._to_unicode
    - pip._vendor.urllib3.util.ssl_match_hostname._ipaddress_match
    - pip._vendor.urllib3.util.ssltransport.SSLTransport.__init__
    - datetime.date.today
    - cert.get
    - ssl.SSLContext.load_default_certs
    - warnings.warn
    - BRACELESS_IPV6_ADDRZ_RE.match
    - pip._vendor.urllib3.util.ssl_._is_key_file_encrypted
    - <builtin>.open
    - <builtin>.getattr
    - ssl.SSLContext.set_ciphers
    - dn.split
    - <builtin>.hasattr
    - hostname.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datetime.date.today
    functionSourceFile: datetime
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - candidate
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 234
    functionName: pip._vendor.urllib3.util.ssl_.resolve_ssl_version
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 3
    functionsReached:
    - <builtin>.getattr
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 4
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e079b610>
    - <ast.Constant object at 0x7f30e079b910>
    - <ast.Constant object at 0x7f30e079b490>
    - <ast.Constant object at 0x7f30e079b6a0>
    argNames:
    - ssl_version
    - cert_reqs
    - options
    - ciphers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 250
    functionName: pip._vendor.urllib3.util.ssl_.create_urllib3_context
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 4
    functionsReached:
    - pip._vendor.urllib3.util.ssl_.create_urllib3_context.disable_check_hostname
    - <builtin>.getattr
    - ssl.SSLContext.set_ciphers
    - ssl.SSLContext
    - os.environ.get
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ssl.SSLContext.load_default_certs
    functionSourceFile: ssl
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 7
    IfCount: 9
    argCount: 13
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6b6e370>
    - <ast.Constant object at 0x7f30f6b6e850>
    - <ast.Constant object at 0x7f30f6b6edf0>
    - <ast.Constant object at 0x7f30d8be8f70>
    - <ast.Constant object at 0x7f30e57fc4c0>
    - <ast.Constant object at 0x7f30e57fcb20>
    - <ast.Constant object at 0x7f30d8bf5400>
    - <ast.Constant object at 0x7f30d8bf52b0>
    - <ast.Constant object at 0x7f30dbbbf340>
    - <ast.Constant object at 0x7f30fe562700>
    - <ast.Constant object at 0x7f30fe562730>
    - <ast.Constant object at 0x7f30fe562760>
    argNames:
    - sock
    - keyfile
    - certfile
    - cert_reqs
    - ca_certs
    - server_hostname
    - ssl_version
    - ciphers
    - ssl_context
    - ca_cert_dir
    - key_password
    - ca_cert_data
    - tls_in_tls
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 355
    functionName: pip._vendor.urllib3.util.ssl_.ssl_wrap_socket
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 2
    functionsReached:
    - pip._vendor.urllib3.util.ssl_.create_urllib3_context
    - ssl.SSLContext.set_alpn_protocols
    - pip._vendor.urllib3.util.ssl_.create_urllib3_context.disable_check_hostname
    - ssl.SSLContext.wrap_bio
    - <builtin>.isinstance
    - ssl.SSLContext.load_cert_chain
    - <builtin>.bool
    - IPV4_RE.match
    - ssl.SSLContext.wrap_socket
    - os.environ.get
    - ssl.SSLContext.load_verify_locations
    - ssl.SSLContext
    - pip._vendor.urllib3.util.ssl_.is_ipaddress
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._validate_ssl_context_for_tls_in_tls
    - pip._vendor.urllib3.util.ssl_._ssl_wrap_socket_impl
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    - ssl.MemoryBIO
    - pip._vendor.urllib3.util.ssltransport.SSLTransport.__init__
    - ssl.SSLContext.load_default_certs
    - BRACELESS_IPV6_ADDRZ_RE.match
    - warnings.warn
    - pip._vendor.urllib3.util.ssl_._is_key_file_encrypted
    - <builtin>.open
    - <builtin>.getattr
    - ssl.SSLContext.set_ciphers
    - <builtin>.hasattr
    - hostname.decode
    linkageType: pythonLinkage
    raised:
    - SSLError
    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: cert.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cert
    - asserted_hostname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 536
    functionName: pip._vendor.urllib3.connection._match_hostname
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 2
    functionsReached:
    - leftmost.count
    - <builtin>.isinstance
    - log.warning
    - <builtin>.bool
    - hostname.startswith
    - IPV4_RE.match
    - re.compile
    - asserted_hostname.strip
    - re.escape
    - leftmost.startswith
    - dn.lower
    - ipaddress.ip_address
    - pat.match
    - dnsnames.append
    - hostname.lower
    - pip._vendor.urllib3.util.ssl_.is_ipaddress
    - pip._vendor.urllib3.util.ssl_match_hostname._dnsname_match
    - pats.append
    - <builtin>.len
    - pip._vendor.urllib3.util.ssl_match_hostname._ipaddress_match
    - pip._vendor.urllib3.util.ssl_match_hostname._to_unicode
    - cert.get
    - BRACELESS_IPV6_ADDRZ_RE.match
    - pip._vendor.urllib3.util.ssl_match_hostname.match_hostname
    - dn.split
    - hostname.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - hostname
    - conn
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 479
    functionName: pip._vendor.urllib3.connection.HTTPSConnection._connect_tls_proxy
    functionSourceFile: pip._vendor.urllib3.connection
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.ssl_.create_urllib3_context
    - pip._vendor.urllib3.util.ssl_.create_urllib3_context.disable_check_hostname
    - ssl.SSLContext.set_alpn_protocols
    - ssl.SSLContext.wrap_bio
    - <builtin>.isinstance
    - leftmost.count
    - log.warning
    - socket.getpeercert
    - ssl.SSLContext.load_cert_chain
    - <builtin>.bool
    - hostname.startswith
    - IPV4_RE.match
    - pip._vendor.urllib3.util.proxy.create_proxy_ssl_context
    - re.compile
    - asserted_hostname.strip
    - ssl.SSLContext.wrap_socket
    - re.escape
    - leftmost.startswith
    - os.environ.get
    - pip._vendor.urllib3.util.ssl_.resolve_ssl_version
    - dn.lower
    - ipaddress.ip_address
    - pip._vendor.urllib3.util.ssl_.resolve_cert_reqs
    - pat.match
    - ssl.SSLContext.load_verify_locations
    - pip._vendor.urllib3.util.ssl_.ssl_wrap_socket
    - dnsnames.append
    - hostname.lower
    - ssl.SSLContext
    - pip._vendor.urllib3.connection._match_hostname
    - pip._vendor.urllib3.util.ssl_.is_ipaddress
    - pip._vendor.urllib3.util.ssl_match_hostname._dnsname_match
    - pats.append
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._validate_ssl_context_for_tls_in_tls
    - pip._vendor.urllib3.util.ssl_match_hostname.match_hostname
    - pip._vendor.urllib3.util.ssl_._ssl_wrap_socket_impl
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    - <builtin>.len
    - ssl.MemoryBIO
    - pip._vendor.urllib3.util.ssl_match_hostname._to_unicode
    - pip._vendor.urllib3.util.ssl_match_hostname._ipaddress_match
    - pip._vendor.urllib3.util.ssltransport.SSLTransport.__init__
    - cert.get
    - ssl.SSLContext.load_default_certs
    - BRACELESS_IPV6_ADDRZ_RE.match
    - warnings.warn
    - pip._vendor.urllib3.util.ssl_._is_key_file_encrypted
    - <builtin>.open
    - <builtin>.getattr
    - ssl.SSLContext.set_ciphers
    - dn.split
    - <builtin>.hasattr
    - hostname.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8bf32e0>
    - <ast.Constant object at 0x7f30d8bf3670>
    - <ast.Constant object at 0x7f30d8bf3730>
    argNames:
    - ssl_version
    - cert_reqs
    - ca_certs
    - ca_cert_dir
    - ca_cert_data
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 37
    functionName: pip._vendor.urllib3.util.proxy.create_proxy_ssl_context
    functionSourceFile: pip._vendor.urllib3.util.proxy
    functionUses: 1
    functionsReached:
    - pip._vendor.urllib3.util.ssl_.create_urllib3_context
    - pip._vendor.urllib3.util.ssl_.create_urllib3_context.disable_check_hostname
    - pip._vendor.urllib3.util.ssl_.resolve_cert_reqs
    - <builtin>.isinstance
    - ssl.SSLContext.load_default_certs
    - <builtin>.getattr
    - ssl.SSLContext.set_ciphers
    - pip._vendor.urllib3.util.ssl_.resolve_ssl_version
    - ssl.SSLContext
    - os.environ.get
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.getpeercert
    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: asserted_hostname.strip
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - hostname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 457
    functionName: pip._vendor.urllib3.util.ssl_.is_ipaddress
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bool
    - BRACELESS_IPV6_ADDRZ_RE.match
    - IPV4_RE.match
    - hostname.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 4
    IfCount: 11
    argCount: 2
    argDefaultValues: []
    argNames:
    - cert
    - hostname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 98
    functionName: pip._vendor.urllib3.util.ssl_match_hostname.match_hostname
    functionSourceFile: pip._vendor.urllib3.util.ssl_match_hostname
    functionUses: 3
    functionsReached:
    - pip._vendor.urllib3.util.ssl_match_hostname._to_unicode
    - ipaddress.ip_address
    - leftmost.count
    - pip._vendor.urllib3.util.ssl_match_hostname._ipaddress_match
    - pip._vendor.urllib3.util.ssl_match_hostname._dnsname_match
    - pats.append
    - <builtin>.isinstance
    - pat.match
    - cert.get
    - <builtin>.len
    - hostname.startswith
    - re.compile
    - re.escape
    - leftmost.startswith
    - dnsnames.append
    - hostname.lower
    - dn.split
    - dn.lower
    linkageType: pythonLinkage
    raised:
    - ValueError
    - CertificateError
    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: pip._vendor.urllib3.util.proxy
    functionSourceFile: pip._vendor.urllib3.util.proxy
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.util.ssl_
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - a
    - b
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 30
    functionName: pip._vendor.urllib3.util.ssl_._const_compare_digest_backport
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 0
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.len
    - <builtin>.zip
    - <builtin>.abs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - protocol_version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 134
    functionName: pip._vendor.urllib3.util.ssl_.SSLContext.__init__
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - certfile
    - keyfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 145
    functionName: pip._vendor.urllib3.util.ssl_.SSLContext.load_cert_chain
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa1b80>
    - <ast.Constant object at 0x7f30f4aa19d0>
    - <ast.Constant object at 0x7f30f4aa19a0>
    argNames:
    - self
    - cafile
    - capath
    - cadata
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 149
    functionName: pip._vendor.urllib3.util.ssl_.SSLContext.load_verify_locations
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - SSLError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cipher_suite
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 158
    functionName: pip._vendor.urllib3.util.ssl_.SSLContext.set_ciphers
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 0
    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 0x7f30f4aa75b0>
    - <ast.Constant object at 0x7f30f4aa7ca0>
    argNames:
    - self
    - socket
    - server_hostname
    - server_side
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 161
    functionName: pip._vendor.urllib3.util.ssl_.SSLContext.wrap_socket
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.ssl_.SSLContext.wrap_socket
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cert
    - fingerprint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 182
    functionName: pip._vendor.urllib3.util.ssl_.assert_fingerprint
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 0
    functionsReached:
    - fingerprint.replace
    - <builtin>.len
    - HASHFUNC_MAP.get
    - binascii.unhexlify
    - fingerprint.encode
    linkageType: pythonLinkage
    raised:
    - SSLError
    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: fingerprint.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: HASHFUNC_MAP.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fingerprint.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: binascii.unhexlify
    functionSourceFile: binascii
    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: ssl.SSLContext
    functionSourceFile: ssl
    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: ssl.SSLContext.set_ciphers
    functionSourceFile: ssl
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 325
    functionName: pip._vendor.urllib3.util.ssl_.create_urllib3_context.disable_check_hostname
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 5
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ssl.SSLContext.load_verify_locations
    functionSourceFile: ssl
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - key_file
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 470
    functionName: pip._vendor.urllib3.util.ssl_._is_key_file_encrypted
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 3
    functionsReached:
    - <builtin>.open
    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: ssl.SSLContext.load_cert_chain
    functionSourceFile: ssl
    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: ssl.SSLContext.set_alpn_protocols
    functionSourceFile: ssl
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fe55ce50>
    argNames:
    - sock
    - ssl_context
    - tls_in_tls
    - server_hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 481
    functionName: pip._vendor.urllib3.util.ssl_._ssl_wrap_socket_impl
    functionSourceFile: pip._vendor.urllib3.util.ssl_
    functionUses: 3
    functionsReached:
    - ssl.SSLContext.wrap_bio
    - pip._vendor.urllib3.util.ssltransport.SSLTransport.__init__
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._validate_ssl_context_for_tls_in_tls
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    - ssl.MemoryBIO
    - ssl.SSLContext.wrap_socket
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ProxySchemeUnsupported
    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: hostname.decode
    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: IPV4_RE.match
    functionSourceFile: <builtin>
    functionUses: 55
    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: BRACELESS_IPV6_ADDRZ_RE.match
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - ssl_context
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport._validate_ssl_context_for_tls_in_tls
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 4
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ProxySchemeUnsupported
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d9e5cf40>
    - <ast.Constant object at 0x7f30d9e5cf10>
    argNames:
    - self
    - socket
    - ssl_context
    - server_hostname
    - suppress_ragged_eofs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.__init__
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 4
    functionsReached:
    - ssl.SSLContext.wrap_bio
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    - ssl.MemoryBIO
    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: ssl.SSLContext.wrap_socket
    functionSourceFile: ssl
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.util.url
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a82b0>
    - <ast.Constant object at 0x7f30e26a8a90>
    - <ast.Constant object at 0x7f30e26a8e20>
    - <ast.Constant object at 0x7f30e26a84c0>
    - <ast.Constant object at 0x7f30e26a8610>
    - <ast.Constant object at 0x7f30e26a8d00>
    - <ast.Constant object at 0x7f30e26a82e0>
    argNames:
    - cls
    - scheme
    - auth
    - host
    - port
    - path
    - query
    - fragment
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 91
    functionName: pip._vendor.urllib3.util.url.Url.__new__
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - path.startswith
    - scheme.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: scheme.lower
    functionSourceFile: <builtin>
    functionUses: 52
    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: 110
    functionName: pip._vendor.urllib3.util.url.Url.hostname
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 0
    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: 0
    functionLinenumber: 115
    functionName: pip._vendor.urllib3.util.url.Url.request_uri
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 0
    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: 0
    functionLinenumber: 125
    functionName: pip._vendor.urllib3.util.url.Url.netloc
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 132
    functionName: pip._vendor.urllib3.util.url.Url.url
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 171
    functionName: pip._vendor.urllib3.util.url.Url.__str__
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - s
    - delims
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 175
    functionName: pip._vendor.urllib3.util.url.split_first
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 0
    functionsReached:
    - s.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: s.find
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e82eebe0>
    argNames:
    - component
    - allowed_chars
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 210
    functionName: pip._vendor.urllib3.util.url._encode_invalid_chars
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 51
    functionsReached:
    - component.encode
    - encoded_component.decode
    - encoded_component.extend
    - <builtin>.isinstance
    - byte.decode
    - <builtin>.len
    - pip._vendor.urllib3.packages.six.ensure_text
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.bytearray
    - uri_bytes.count
    - <builtin>.hex
    - <builtin>.ord
    - <builtin>.range
    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: pip._vendor.urllib3.util.url._encode_invalid_chars.<lambda1>
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 0
    functionsReached:
    - match.group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: PERCENT_RE.subn
    functionSourceFile: <builtin>
    functionUses: 52
    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: component.encode
    functionSourceFile: <builtin>
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uri_bytes.count
    functionSourceFile: <builtin>
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: byte.decode
    functionSourceFile: <builtin>
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encoded_component.extend
    functionSourceFile: <builtin>
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encoded_component.decode
    functionSourceFile: <builtin>
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 244
    functionName: pip._vendor.urllib3.util.url._remove_path_dot_segments
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 45
    functionsReached:
    - output.pop
    - path.startswith
    - output.insert
    - path.split
    - output.append
    - path.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.append
    functionSourceFile: <builtin>
    functionUses: 48
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.pop
    functionSourceFile: <builtin>
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.insert
    functionSourceFile: <builtin>
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.endswith
    functionSourceFile: <builtin>
    functionUses: 74
    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: IPV6_ADDRZ_RE.match
    functionSourceFile: <builtin>
    functionUses: 50
    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: ZONE_ID_RE.search
    functionSourceFile: <builtin>
    functionUses: 50
    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: zone_id.startswith
    functionSourceFile: <builtin>
    functionUses: 50
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 305
    functionName: pip._vendor.urllib3.util.url._idna_encode
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 50
    functionsReached:
    - <builtin>.any
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - name.lower
    - HTTPError.__init__
    - pip._vendor.urllib3.packages.six.raise_from
    - pip._vendor.idna.encode
    - <builtin>.ord
    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: TARGET_RE.match
    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: SCHEME_RE.search
    functionSourceFile: <builtin>
    functionUses: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: URI_RE.match
    functionSourceFile: <builtin>
    functionUses: 45
    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: authority.rpartition
    functionSourceFile: <builtin>
    functionUses: 45
    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_PORT_RE.match
    functionSourceFile: <builtin>
    functionUses: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 416
    functionName: pip._vendor.urllib3.util.url.parse_url.ensure_type
    functionSourceFile: pip._vendor.urllib3.util.url
    functionUses: 45
    functionsReached:
    - <builtin>.isinstance
    - s.decode
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.type
    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: pip._vendor.urllib3.util.ssltransport
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ssl.MemoryBIO
    functionSourceFile: ssl
    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: ssl.SSLContext.wrap_bio
    functionSourceFile: ssl
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - func
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 195
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    functionSourceFile: ''
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 63
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.__enter__
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    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
    - _
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.__exit__
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.ssltransport.SSLTransport.close
    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: 153
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.close
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 69
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.fileno
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d9e598e0>
    - <ast.Constant object at 0x7f30d9e598b0>
    argNames:
    - self
    - len
    - buffer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 72
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.read
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 1
    functionsReached:
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._wrap_ssl_read
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c05af0>
    argNames:
    - self
    - len
    - buffer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 186
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport._wrap_ssl_read
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 3
    functionsReached:
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d9e59640>
    - <ast.Constant object at 0x7f30d9e59610>
    argNames:
    - self
    - len
    - flags
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 75
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.recv
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._wrap_ssl_read
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d9e59220>
    - <ast.Constant object at 0x7f30d9e591f0>
    argNames:
    - self
    - buffer
    - nbytes
    - flags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 80
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.recv_into
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._wrap_ssl_read
    - <builtin>.len
    - pip._vendor.urllib3.util.ssltransport.SSLTransport.read
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f7de6ac0>
    argNames:
    - self
    - data
    - flags
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 89
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.sendall
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    - view.cast
    - <builtin>.memoryview
    - pip._vendor.urllib3.util.ssltransport.SSLTransport.send
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: view.cast
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f99334f0>
    argNames:
    - self
    - data
    - flags
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 99
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.send
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 1
    functionsReached:
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9933d00>
    - <ast.Constant object at 0x7f30f9933070>
    - <ast.Constant object at 0x7f30f9933040>
    - <ast.Constant object at 0x7f30f99332b0>
    - <ast.Constant object at 0x7f30f9933fd0>
    argNames:
    - self
    - mode
    - buffering
    - encoding
    - errors
    - newline
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 105
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.makefile
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - io.BufferedReader
    - io.BufferedWriter
    - socket.SocketIO
    - io.TextIOWrapper
    - io.BufferedRWPair
    linkageType: pythonLinkage
    raised:
    - ValueError
    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.SocketIO
    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: io.BufferedRWPair
    functionSourceFile: io
    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: io.BufferedReader
    functionSourceFile: io
    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: io.BufferedWriter
    functionSourceFile: io
    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: io.TextIOWrapper
    functionSourceFile: io
    functionUses: 5
    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: 150
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.unwrap
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4ab7a30>
    argNames:
    - self
    - binary_form
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 156
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.getpeercert
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 159
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.version
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 162
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.cipher
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 165
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.selected_alpn_protocol
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 168
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.selected_npn_protocol
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 171
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.shared_ciphers
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 174
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.compression
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 177
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.settimeout
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 180
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport.gettimeout
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 183
    functionName: pip._vendor.urllib3.util.ssltransport.SSLTransport._decref_socketios
    functionSourceFile: pip._vendor.urllib3.util.ssltransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.util.ssl_match_hostname
    functionSourceFile: pip._vendor.urllib3.util.ssl_match_hostname
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f7de64c0>
    argNames:
    - dn
    - hostname
    - max_wildcards
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 25
    functionName: pip._vendor.urllib3.util.ssl_match_hostname._dnsname_match
    functionSourceFile: pip._vendor.urllib3.util.ssl_match_hostname
    functionUses: 4
    functionsReached:
    - leftmost.count
    - pats.append
    - pat.match
    - hostname.startswith
    - re.compile
    - re.escape
    - leftmost.startswith
    - hostname.lower
    - dn.split
    - dn.lower
    linkageType: pythonLinkage
    raised:
    - CertificateError
    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: dn.split
    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: leftmost.count
    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: dn.lower
    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: hostname.lower
    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: pats.append
    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: leftmost.startswith
    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: hostname.startswith
    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: pat.match
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: pip._vendor.urllib3.util.ssl_match_hostname._to_unicode
    functionSourceFile: pip._vendor.urllib3.util.ssl_match_hostname
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - ipname
    - host_ip
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 86
    functionName: pip._vendor.urllib3.util.ssl_match_hostname._ipaddress_match
    functionSourceFile: pip._vendor.urllib3.util.ssl_match_hostname
    functionUses: 4
    functionsReached:
    - pip._vendor.urllib3.util.ssl_match_hostname._to_unicode
    - ipaddress.ip_address
    - <builtin>.isinstance
    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: ipaddress.ip_address
    functionSourceFile: ipaddress
    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: dnsnames.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.response
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: pip._vendor.urllib3.response.DeflateDecoder.__init__
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 20
    functionsReached:
    - zlib.decompressobj
    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: zlib.decompressobj
    functionSourceFile: zlib
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: pip._vendor.urllib3.response.DeflateDecoder.__getattr__
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: pip._vendor.urllib3.response.DeflateDecoder.decompress
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 19
    functionsReached:
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - zlib.decompressobj
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: pip._vendor.urllib3.response.GzipDecoder.__init__
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 20
    functionsReached:
    - zlib.decompressobj
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: pip._vendor.urllib3.response.GzipDecoder.__getattr__
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 82
    functionName: pip._vendor.urllib3.response.GzipDecoder.decompress
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 19
    functionsReached:
    - <builtin>.bytearray
    - zlib.decompressobj
    - <builtin>.bytes
    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>.bytes
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: pip._vendor.urllib3.response.BrotliDecoder.__init__
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 20
    functionsReached:
    - brotli.Decompressor
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: brotli.Decompressor
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 117
    functionName: pip._vendor.urllib3.response.BrotliDecoder.flush
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 19
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - modes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 132
    functionName: pip._vendor.urllib3.response.MultiDecoder.__init__
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 19
    functionsReached:
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - modes.split
    - <builtin>.hasattr
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - m.strip
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - pip._vendor.urllib3.response._get_decoder
    - brotli.Decompressor
    - zlib.decompressobj
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: m.strip
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - mode
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 144
    functionName: pip._vendor.urllib3.response._get_decoder
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 19
    functionsReached:
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - modes.split
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - m.strip
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - pip._vendor.urllib3.response._get_decoder
    - zlib.decompressobj
    - brotli.Decompressor
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: modes.split
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 135
    functionName: pip._vendor.urllib3.response.MultiDecoder.flush
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 138
    functionName: pip._vendor.urllib3.response.MultiDecoder.decompress
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 19
    functionsReached:
    - d.decompress
    - <builtin>.reversed
    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: d.decompress
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 18
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd6160>
    - <ast.Constant object at 0x7f30f6bd6340>
    - <ast.Constant object at 0x7f30f114f640>
    - <ast.Constant object at 0x7f30f114f730>
    - <ast.Constant object at 0x7f30d322b070>
    - <ast.Constant object at 0x7f30d322bdf0>
    - <ast.Constant object at 0x7f30d8a3e040>
    - <ast.Constant object at 0x7f30d8a3e9d0>
    - <ast.Constant object at 0x7f30d8a3e790>
    - <ast.Constant object at 0x7f30d8a3e8b0>
    - <ast.Constant object at 0x7f30e57fcee0>
    - <ast.Constant object at 0x7f30e57fc4c0>
    - <ast.Constant object at 0x7f30e57fc2e0>
    - <ast.Constant object at 0x7f30e57fcb20>
    - <ast.Constant object at 0x7f30e26a8b50>
    - <ast.Constant object at 0x7f30e26a8820>
    - <ast.Constant object at 0x7f30e26a8be0>
    argNames:
    - self
    - body
    - headers
    - status
    - version
    - reason
    - strict
    - preload_content
    - decode_content
    - original_response
    - pool
    - connection
    - msg
    - retries
    - enforce_content_length
    - request_method
    - request_url
    - auto_close
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 195
    functionName: pip._vendor.urllib3.response.HTTPResponse.__init__
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 9
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - log.warning
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - brotli.Decompressor
    - <builtin>.str
    - _collections.HTTPHeaderDict
    - io.IOBase.close
    - buffer.write
    - modes.split
    - <builtin>.set
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - <builtin>.min
    - io.BytesIO
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - obj.isclosed
    - tr_enc.split
    - content_encoding.split
    - <builtin>.len
    - buffer.getvalue
    - m.strip
    - enc.strip
    - pip._vendor.urllib3.response.HTTPResponse._init_length
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - lengths.pop
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.util.response.is_fp_closed
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.HTTPResponse.read
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - <builtin>.getattr
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - pip._vendor.urllib3.response._get_decoder
    - <builtin>.bytearray
    - d.decompress
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - length.split
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _collections.HTTPHeaderDict
    functionSourceFile: _collections
    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: _collections.HTTPHeaderDict.get
    functionSourceFile: _collections
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: enc.strip
    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: tr_enc.split
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request_method
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 317
    functionName: pip._vendor.urllib3.response.HTTPResponse._init_length
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 10
    functionsReached:
    - <builtin>.int
    - log.warning
    - lengths.pop
    - <builtin>.len
    - _collections.HTTPHeaderDict.get
    - <builtin>.set
    - length.split
    linkageType: pythonLinkage
    raised:
    - InvalidHeader
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 3
    IfCount: 8
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d1e46880>
    - <ast.Constant object at 0x7f30d1e46850>
    - <ast.Constant object at 0x7f30d1e46820>
    argNames:
    - self
    - amt
    - decode_content
    - cache_content
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 529
    functionName: pip._vendor.urllib3.response.HTTPResponse.read
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 15
    functionsReached:
    - <builtin>.bytes
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - brotli.Decompressor
    - <builtin>.str
    - io.IOBase.close
    - buffer.write
    - modes.split
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - <builtin>.min
    - io.BytesIO
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - obj.isclosed
    - content_encoding.split
    - <builtin>.len
    - buffer.getvalue
    - m.strip
    - <builtin>.reversed
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.util.response.is_fp_closed
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - <builtin>.getattr
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - pip._vendor.urllib3.response._get_decoder
    - <builtin>.bytearray
    - d.decompress
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - IncompleteRead
    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: 1
    functionLinenumber: 262
    functionName: pip._vendor.urllib3.response.HTTPResponse.get_redirect_location
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 1
    functionsReached:
    - _collections.HTTPHeaderDict.get
    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: 0
    functionLinenumber: 275
    functionName: pip._vendor.urllib3.response.HTTPResponse.release_conn
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 282
    functionName: pip._vendor.urllib3.response.HTTPResponse.drain_conn
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - <builtin>.bytes
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - brotli.Decompressor
    - <builtin>.str
    - io.IOBase.close
    - buffer.write
    - modes.split
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - <builtin>.min
    - io.BytesIO
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - obj.isclosed
    - content_encoding.split
    - <builtin>.len
    - buffer.getvalue
    - m.strip
    - <builtin>.reversed
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.util.response.is_fp_closed
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.HTTPResponse.read
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - <builtin>.getattr
    - pip._vendor.urllib3.response._get_decoder
    - <builtin>.bytearray
    - d.decompress
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 294
    functionName: pip._vendor.urllib3.response.HTTPResponse.data
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - <builtin>.bytes
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - brotli.Decompressor
    - <builtin>.str
    - io.IOBase.close
    - buffer.write
    - modes.split
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - <builtin>.min
    - io.BytesIO
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - obj.isclosed
    - content_encoding.split
    - <builtin>.len
    - buffer.getvalue
    - m.strip
    - <builtin>.reversed
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.util.response.is_fp_closed
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.HTTPResponse.read
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - <builtin>.getattr
    - pip._vendor.urllib3.response._get_decoder
    - <builtin>.bytearray
    - d.decompress
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 303
    functionName: pip._vendor.urllib3.response.HTTPResponse.connection
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 306
    functionName: pip._vendor.urllib3.response.HTTPResponse.isclosed
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 18
    functionsReached:
    - obj.isclosed
    - pip._vendor.urllib3.util.response.is_fp_closed
    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: length.split
    functionSourceFile: <builtin>
    functionUses: 11
    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: lengths.pop
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 369
    functionName: pip._vendor.urllib3.response.HTTPResponse._init_decoder
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 17
    functionsReached:
    - content_encoding.split
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - <builtin>.len
    - modes.split
    - <builtin>.hasattr
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - m.strip
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - pip._vendor.urllib3.response._get_decoder
    - brotli.Decompressor
    - zlib.decompressobj
    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: e.strip
    functionSourceFile: <builtin>
    functionUses: 18
    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: content_encoding.split
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - data
    - decode_content
    - flush_decoder
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 392
    functionName: pip._vendor.urllib3.response.HTTPResponse._decode
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 17
    functionsReached:
    - <builtin>.reversed
    - <builtin>.bytes
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - zlib.decompressobj
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - <builtin>.bytearray
    - d.decompress
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - DecodeError
    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: 414
    functionName: pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 18
    functionsReached:
    - <builtin>.reversed
    - <builtin>.bytes
    - zlib.decompressobj
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - <builtin>.bytearray
    - d.decompress
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.response.HTTPResponse
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 426
    functionName: pip._vendor.urllib3.response.HTTPResponse._error_catcher
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 17
    functionsReached:
    - obj.isclosed
    - <builtin>.str
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.util.response.is_fp_closed
    - io.IOBase.close
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    - ReadTimeoutError
    - SSLError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 683
    functionName: pip._vendor.urllib3.response.HTTPResponse.close
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 19
    functionsReached:
    - io.IOBase.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - amt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 481
    functionName: pip._vendor.urllib3.response.HTTPResponse._fp_read
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 16
    functionsReached:
    - buffer.write
    - buffer.getvalue
    - <builtin>.min
    - io.BytesIO
    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: buffer.write
    functionSourceFile: <builtin>
    functionUses: 17
    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: buffer.getvalue
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.BinOp object at 0x7f30d1e3de50>
    - <ast.Constant object at 0x7f30d1e3ddc0>
    argNames:
    - self
    - amt
    - decode_content
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 601
    functionName: pip._vendor.urllib3.response.HTTPResponse.stream
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - line.split
    - brotli.Decompressor
    - pip._vendor.urllib3.response.HTTPResponse._update_chunk_length
    - <builtin>.str
    - io.IOBase.close
    - buffer.write
    - modes.split
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - <builtin>.min
    - io.BytesIO
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - obj.isclosed
    - pip._vendor.urllib3.response.HTTPResponse.supports_chunked_reads
    - content_encoding.split
    - <builtin>.len
    - buffer.getvalue
    - m.strip
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - io.IOBase._method.upper
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.util.response.is_fp_closed
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.response.HTTPResponse.read_chunked
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.util.response.is_response_to_head
    - pip._vendor.urllib3.response.HTTPResponse.read
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - <builtin>.getattr
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - pip._vendor.urllib3.response.HTTPResponse._handle_chunk
    - pip._vendor.urllib3.response._get_decoder
    - <builtin>.bytearray
    - d.decompress
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 738
    functionName: pip._vendor.urllib3.response.HTTPResponse.supports_chunked_reads
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 3
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 7
    IfCount: 11
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d1dddd00>
    - <ast.Constant object at 0x7f30d1dddcd0>
    argNames:
    - self
    - amt
    - decode_content
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 783
    functionName: pip._vendor.urllib3.response.HTTPResponse.read_chunked
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - brotli.Decompressor
    - line.split
    - pip._vendor.urllib3.response.HTTPResponse._update_chunk_length
    - <builtin>.str
    - io.IOBase.close
    - modes.split
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - obj.isclosed
    - pip._vendor.urllib3.response.HTTPResponse.supports_chunked_reads
    - content_encoding.split
    - <builtin>.len
    - m.strip
    - <builtin>.reversed
    - io.IOBase._method.upper
    - <builtin>.int
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.util.response.is_fp_closed
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.util.response.is_response_to_head
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - pip._vendor.urllib3.response.HTTPResponse._handle_chunk
    - pip._vendor.urllib3.response._get_decoder
    - <builtin>.bytearray
    - d.decompress
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - BodyNotHttplibCompatible
    - ResponseNotChunked
    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.HTTPHeaderDict.from_httplib
    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: _collections.HTTPHeaderDict.items
    functionSourceFile: _collections
    functionUses: 5
    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: 660
    functionName: pip._vendor.urllib3.response.HTTPResponse.getheaders
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d1dec3d0>
    argNames:
    - self
    - name
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 669
    functionName: pip._vendor.urllib3.response.HTTPResponse.getheader
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - warnings.warn
    - _collections.HTTPHeaderDict.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 679
    functionName: pip._vendor.urllib3.response.HTTPResponse.info
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.IOBase.close
    functionSourceFile: io
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 694
    functionName: pip._vendor.urllib3.response.HTTPResponse.closed
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - io.IOBase.closed.__get__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.IOBase.closed.__get__
    functionSourceFile: io
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 706
    functionName: pip._vendor.urllib3.response.HTTPResponse.fileno
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - IOError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 717
    functionName: pip._vendor.urllib3.response.HTTPResponse.flush
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 725
    functionName: pip._vendor.urllib3.response.HTTPResponse.readable
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - b
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 729
    functionName: pip._vendor.urllib3.response.HTTPResponse.readinto
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - <builtin>.bytes
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - brotli.Decompressor
    - <builtin>.str
    - io.IOBase.close
    - buffer.write
    - modes.split
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - <builtin>.min
    - io.BytesIO
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - obj.isclosed
    - content_encoding.split
    - <builtin>.len
    - buffer.getvalue
    - m.strip
    - <builtin>.reversed
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.util.response.is_fp_closed
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.HTTPResponse.read
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - <builtin>.getattr
    - pip._vendor.urllib3.response._get_decoder
    - <builtin>.bytearray
    - d.decompress
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.hasattr
    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: 747
    functionName: pip._vendor.urllib3.response.HTTPResponse._update_chunk_length
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 3
    functionsReached:
    - pip._vendor.urllib3.response.HTTPResponse.close
    - io.IOBase.close
    - line.split
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - InvalidChunkLength
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - amt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 761
    functionName: pip._vendor.urllib3.response.HTTPResponse._handle_chunk
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 3
    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: 1
    functionLinenumber: 853
    functionName: pip._vendor.urllib3.response.HTTPResponse.geturl
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - <builtin>.len
    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: 6
    functionLinenumber: 864
    functionName: pip._vendor.urllib3.response.HTTPResponse.__iter__
    functionSourceFile: pip._vendor.urllib3.response
    functionUses: 0
    functionsReached:
    - chunk.split
    - <builtin>.isinstance
    - <builtin>.bytes
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - line.split
    - brotli.Decompressor
    - pip._vendor.urllib3.response.HTTPResponse._update_chunk_length
    - <builtin>.str
    - io.IOBase.close
    - buffer.write
    - modes.split
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - <builtin>.min
    - io.BytesIO
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - obj.isclosed
    - pip._vendor.urllib3.response.HTTPResponse.supports_chunked_reads
    - content_encoding.split
    - <builtin>.len
    - buffer.getvalue
    - m.strip
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.response.HTTPResponse.stream
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.util.response.is_fp_closed
    - io.IOBase._method.upper
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.response.HTTPResponse.read_chunked
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.util.response.is_response_to_head
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response._get_decoder
    - pip._vendor.urllib3.response.HTTPResponse.read
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - buffer.append
    - <builtin>.getattr
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - pip._vendor.urllib3.response.HTTPResponse._handle_chunk
    - <builtin>.bytearray
    - d.decompress
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: buffer.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.request
    functionSourceFile: pip._vendor.urllib3.request
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3fe580>
    - <ast.Constant object at 0x7f30ce3fe550>
    - <ast.Constant object at 0x7f30ce3fe520>
    - <ast.Constant object at 0x7f30ce3fe4f0>
    argNames:
    - self
    - method
    - url
    - body
    - headers
    - encode_multipart
    - multipart_boundary
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: pip._vendor.urllib3.request.RequestMethods.urlopen
    functionSourceFile: pip._vendor.urllib3.request
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a76d0>
    - <ast.Constant object at 0x7f30e26a7040>
    argNames:
    - self
    - method
    - url
    - fields
    - headers
    - urlopen_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 61
    functionName: pip._vendor.urllib3.request.RequestMethods.request
    functionSourceFile: pip._vendor.urllib3.request
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - os.urandom
    - pip._vendor.urllib3.poolmanager.PoolManager._merge_pool_kwargs
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_conn
    - wcheck.append
    - log.warning
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._raise_timeout
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - <builtin>.bytes
    - extra_kw.update
    - pip._vendor.urllib3.util.request.rewind_body
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - path.split
    - <builtin>.dict
    - pip._vendor.urllib3.connectionpool._normalize_host
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_context
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_pool_key
    - SCHEME_RE.search
    - <builtin>.str
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._prepare_proxy
    - _collections.HTTPHeaderDict
    - byte.decode
    - pip._vendor.urllib3.util.timeout.Timeout.__init__
    - buffer.write
    - _collections.HTTPHeaderDict.items
    - <builtin>.float
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - conn.close
    - <builtin>.tuple
    - packages.six.moves.urllib.parse.urljoin
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_conn
    - conn.urlopen
    - re.split
    - zlib.decompressobj
    - output.pop
    - obj.isclosed
    - socket.getdefaulttimeout
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._new_conn
    - request_context.pop
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._new_conn
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.is_same_host
    - packages.six.moves.queue.Queue.get
    - response.get_redirect_location
    - PERCENT_RE.subn
    - binascii.hexlify
    - retries.increment
    - _collections.RecentlyUsedContainer.get
    - pip._vendor.urllib3.util.url._idna_encode
    - pip._vendor.urllib3.util.timeout.Timeout.start_connect
    - pip._vendor.urllib3.fields.guess_content_type
    - scheme.lower
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.urlopen._is_ssl_error_message_from_http_proxy
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - field.render_headers
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - log.info
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - length.split
    - <builtin>.hasattr
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - URI_RE.match
    - name.lower
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.urllib3.poolmanager.PoolManager._new_pool
    - pip._vendor.urllib3.util.wait.wait_for_socket
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._absolute_url
    - pip._vendor.urllib3.poolmanager.PoolManager._validate_proxy_scheme_url_selection
    - d.iterkeys
    - brotli.Decompressor
    - body.tell
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - time.time
    - io.IOBase.close
    - ZONE_ID_RE.search
    - response_kw.get
    - TARGET_RE.match
    - conn.sock.settimeout
    - kw.get
    - response.drain_conn
    - pip._vendor.urllib3.util.connection.is_connection_dropped
    - <builtin>.min
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_host
    - <builtin>.super
    - conn.getresponse
    - path.startswith
    - packages.six.moves.http_client.HTTPConnection.__init__
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - buffer.getvalue
    - <builtin>.iter
    - d.iteritems
    - match.span
    - pip._vendor.urllib3.util.timeout.Timeout.resolve_default_timeout
    - conn.is_same_host
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.poolmanager.ProxyManager.connection_from_host
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.response.HTTPResponse.__init__
    - warnings.warn
    - pip._vendor.urllib3.util.response.assert_header_parsing
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - h.lower
    - rcheck.append
    - pip._vendor.urllib3.poolmanager.PoolManager.urlopen
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - sys.exc_info
    - pip._vendor.urllib3.util.wait._retry_on_intr
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.range
    - <builtin>.isinstance
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - <builtin>.bool
    - pip._vendor.urllib3.util.timeout.Timeout.from_float
    - io.BytesIO.getvalue
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.request.RequestMethods.request_encode_url
    - conn.connect
    - HTTPError.__init__
    - retries.sleep
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - pip._vendor.urllib3.util.wait.select_wait_for_socket
    - path.endswith
    - component.encode
    - pip._vendor.urllib3.util.wait.null_wait_for_socket
    - kw.pop
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.urlopen
    - s.encode
    - override.items
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - _collections.HTTPHeaderDict.from_httplib
    - <builtin>.list
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_timeout
    - pip._vendor.urllib3.request.RequestMethods.request_encode_body
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._put_conn
    - <builtin>.any
    - pip._vendor.urllib3.util.timeout.Timeout.clone
    - content_encoding.split
    - headers.is_multipart
    - mimetypes.guess_type
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._validate_conn
    - <builtin>.len
    - s.decode
    - pip._vendor.urllib3.response.HTTPResponse.from_httplib
    - pip._vendor.urllib3.packages.six.iteritems
    - conn.set_tunnel
    - pip._vendor.urllib3.util.wait.poll_wait_for_socket
    - m.strip
    - uri_bytes.count
    - <builtin>.hex
    - <builtin>.ord
    - pip._vendor.urllib3.connection.HTTPConnection.__init__
    - <builtin>.int
    - pip._vendor.urllib3.poolmanager.PoolManager._proxy_requires_url_absolute_form
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._validate_conn
    - request_param.make_multipart
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.HTTPResponse.read
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_proxy
    - <builtin>.getattr
    - pip._vendor.urllib3.response._get_decoder
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - d.decompress
    - pip._vendor.urllib3.filepost.iter_field_objects
    - <builtin>.type
    - d.items
    - <builtin>.frozenset
    - IPV4_RE.match
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.util.request.set_file_position
    - method.upper
    - log.debug
    - pip._vendor.urllib3.util.wait.wait_for_read
    - output.append
    - packages.six.moves.queue.Queue.qsize
    - pip._vendor.urllib3.fields.RequestField.__init__
    - response.headers.get
    - io.BytesIO.write
    - headers.copy
    - pip._vendor.urllib3.util.url._encode_target
    - packages.six.moves.queue.Queue.put
    - headers.update
    - modes.split
    - authority.rpartition
    - <builtin>.set
    - pip._vendor.urllib3.request.RequestMethods.urlopen
    - e.strip
    - pip._vendor.urllib3.util.proxy.connection_requires_http_tunnel
    - pip._vendor.urllib3.packages.six.raise_from
    - headers_.update
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.urllib3.poolmanager.ProxyManager._set_proxy_headers
    - conn.set_cert
    - packages.six.moves.urllib.parse.urlencode
    - encoded_component.decode
    - pip._vendor.urllib3.exceptions.ProxyError.__init__
    - tr_enc.split
    - pip._vendor.urllib3.poolmanager.ProxyManager.urlopen
    - select.poll
    - boundary.decode
    - retries.is_retry
    - enc.strip
    - pip._vendor.urllib3.response.HTTPResponse._init_length
    - d.keys
    - port_by_scheme.get
    - pip._vendor.urllib3.util.url.get_host
    - pip._vendor.urllib3.packages.six.iterkeys
    - retries.sleep_for_retry
    - zone_id.startswith
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._make_request
    - <builtin>.reversed
    - pip._vendor.urllib3.util.wait._have_working_poll
    - functools.partial
    - lengths.pop
    - conn.request
    - pip._vendor.urllib3.util.response.is_fp_closed
    - header.lower
    - time.monotonic
    - poll_obj.register
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - conn.request_chunked
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30e079b6a0>
    - <ast.Constant object at 0x7f30e079b610>
    argNames:
    - self
    - method
    - url
    - fields
    - headers
    - urlopen_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 85
    functionName: pip._vendor.urllib3.request.RequestMethods.request_encode_url
    functionSourceFile: pip._vendor.urllib3.request
    functionUses: 1
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - pip._vendor.urllib3.poolmanager.PoolManager._merge_pool_kwargs
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_conn
    - wcheck.append
    - log.warning
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._raise_timeout
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - <builtin>.bytes
    - extra_kw.update
    - pip._vendor.urllib3.util.request.rewind_body
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - path.split
    - pip._vendor.urllib3.connectionpool._normalize_host
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_context
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_pool_key
    - SCHEME_RE.search
    - <builtin>.str
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._prepare_proxy
    - _collections.HTTPHeaderDict
    - byte.decode
    - pip._vendor.urllib3.util.timeout.Timeout.__init__
    - buffer.write
    - _collections.HTTPHeaderDict.items
    - <builtin>.float
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - conn.close
    - <builtin>.tuple
    - packages.six.moves.urllib.parse.urljoin
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_conn
    - conn.urlopen
    - re.split
    - zlib.decompressobj
    - output.pop
    - obj.isclosed
    - socket.getdefaulttimeout
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._new_conn
    - request_context.pop
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._new_conn
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.is_same_host
    - packages.six.moves.queue.Queue.get
    - response.get_redirect_location
    - PERCENT_RE.subn
    - retries.increment
    - _collections.RecentlyUsedContainer.get
    - pip._vendor.urllib3.util.url._idna_encode
    - pip._vendor.urllib3.util.timeout.Timeout.start_connect
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.urlopen._is_ssl_error_message_from_http_proxy
    - scheme.lower
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - log.info
    - length.split
    - <builtin>.hasattr
    - URI_RE.match
    - name.lower
    - pip._vendor.urllib3.poolmanager.PoolManager._new_pool
    - pip._vendor.urllib3.util.wait.wait_for_socket
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._absolute_url
    - pip._vendor.urllib3.poolmanager.PoolManager._validate_proxy_scheme_url_selection
    - d.iterkeys
    - brotli.Decompressor
    - body.tell
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - time.time
    - io.IOBase.close
    - ZONE_ID_RE.search
    - response_kw.get
    - TARGET_RE.match
    - conn.sock.settimeout
    - kw.get
    - response.drain_conn
    - pip._vendor.urllib3.util.connection.is_connection_dropped
    - <builtin>.min
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_host
    - <builtin>.super
    - conn.getresponse
    - path.startswith
    - packages.six.moves.http_client.HTTPConnection.__init__
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - buffer.getvalue
    - <builtin>.iter
    - match.span
    - pip._vendor.urllib3.util.timeout.Timeout.resolve_default_timeout
    - conn.is_same_host
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.poolmanager.ProxyManager.connection_from_host
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.response.HTTPResponse.__init__
    - warnings.warn
    - pip._vendor.urllib3.util.response.assert_header_parsing
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - h.lower
    - rcheck.append
    - pip._vendor.urllib3.poolmanager.PoolManager.urlopen
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - sys.exc_info
    - pip._vendor.urllib3.util.wait._retry_on_intr
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.range
    - <builtin>.isinstance
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - <builtin>.bool
    - pip._vendor.urllib3.util.timeout.Timeout.from_float
    - _collections.HTTPHeaderDict.get
    - conn.connect
    - HTTPError.__init__
    - retries.sleep
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - pip._vendor.urllib3.util.wait.select_wait_for_socket
    - path.endswith
    - component.encode
    - pip._vendor.urllib3.util.wait.null_wait_for_socket
    - kw.pop
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.urlopen
    - override.items
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - _collections.HTTPHeaderDict.from_httplib
    - <builtin>.list
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_timeout
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._put_conn
    - <builtin>.any
    - pip._vendor.urllib3.util.timeout.Timeout.clone
    - content_encoding.split
    - headers.is_multipart
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._validate_conn
    - <builtin>.len
    - s.decode
    - pip._vendor.urllib3.response.HTTPResponse.from_httplib
    - conn.set_tunnel
    - pip._vendor.urllib3.util.wait.poll_wait_for_socket
    - m.strip
    - uri_bytes.count
    - <builtin>.hex
    - <builtin>.ord
    - pip._vendor.urllib3.connection.HTTPConnection.__init__
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.poolmanager.PoolManager._proxy_requires_url_absolute_form
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._validate_conn
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.HTTPResponse.read
    - <builtin>.getattr
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_proxy
    - pip._vendor.urllib3.response._get_decoder
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - d.decompress
    - <builtin>.type
    - <builtin>.frozenset
    - IPV4_RE.match
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.util.request.set_file_position
    - log.debug
    - pip._vendor.urllib3.util.wait.wait_for_read
    - output.append
    - packages.six.moves.queue.Queue.qsize
    - response.headers.get
    - headers.copy
    - packages.six.moves.queue.Queue.put
    - pip._vendor.urllib3.util.url._encode_target
    - headers.update
    - modes.split
    - authority.rpartition
    - <builtin>.set
    - pip._vendor.urllib3.request.RequestMethods.urlopen
    - e.strip
    - pip._vendor.urllib3.util.proxy.connection_requires_http_tunnel
    - pip._vendor.urllib3.packages.six.raise_from
    - headers_.update
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.urllib3.poolmanager.ProxyManager._set_proxy_headers
    - conn.set_cert
    - packages.six.moves.urllib.parse.urlencode
    - encoded_component.decode
    - pip._vendor.urllib3.exceptions.ProxyError.__init__
    - tr_enc.split
    - pip._vendor.urllib3.poolmanager.ProxyManager.urlopen
    - select.poll
    - retries.is_retry
    - enc.strip
    - pip._vendor.urllib3.response.HTTPResponse._init_length
    - d.keys
    - port_by_scheme.get
    - pip._vendor.urllib3.util.url.get_host
    - pip._vendor.urllib3.packages.six.iterkeys
    - retries.sleep_for_retry
    - zone_id.startswith
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._make_request
    - <builtin>.reversed
    - pip._vendor.urllib3.util.wait._have_working_poll
    - functools.partial
    - conn.request
    - lengths.pop
    - pip._vendor.urllib3.util.response.is_fp_closed
    - header.lower
    - time.monotonic
    - poll_obj.register
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - conn.request_chunked
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c01a00>
    - <ast.Constant object at 0x7f30d8c01fd0>
    - <ast.Constant object at 0x7f30d8c015e0>
    - <ast.Constant object at 0x7f30d8c01e20>
    argNames:
    - self
    - method
    - url
    - fields
    - headers
    - encode_multipart
    - multipart_boundary
    - urlopen_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 101
    functionName: pip._vendor.urllib3.request.RequestMethods.request_encode_body
    functionSourceFile: pip._vendor.urllib3.request
    functionUses: 1
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - os.urandom
    - pip._vendor.urllib3.poolmanager.PoolManager._merge_pool_kwargs
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_conn
    - wcheck.append
    - log.warning
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._raise_timeout
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - <builtin>.bytes
    - extra_kw.update
    - pip._vendor.urllib3.util.request.rewind_body
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - path.split
    - <builtin>.dict
    - pip._vendor.urllib3.connectionpool._normalize_host
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_context
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_pool_key
    - SCHEME_RE.search
    - <builtin>.str
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._prepare_proxy
    - _collections.HTTPHeaderDict
    - byte.decode
    - pip._vendor.urllib3.util.timeout.Timeout.__init__
    - buffer.write
    - _collections.HTTPHeaderDict.items
    - <builtin>.float
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - conn.close
    - <builtin>.tuple
    - packages.six.moves.urllib.parse.urljoin
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_conn
    - conn.urlopen
    - re.split
    - zlib.decompressobj
    - output.pop
    - obj.isclosed
    - socket.getdefaulttimeout
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._new_conn
    - request_context.pop
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._new_conn
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.is_same_host
    - packages.six.moves.queue.Queue.get
    - response.get_redirect_location
    - binascii.hexlify
    - PERCENT_RE.subn
    - retries.increment
    - _collections.RecentlyUsedContainer.get
    - pip._vendor.urllib3.util.url._idna_encode
    - pip._vendor.urllib3.util.timeout.Timeout.start_connect
    - pip._vendor.urllib3.fields.guess_content_type
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.urlopen._is_ssl_error_message_from_http_proxy
    - scheme.lower
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - field.render_headers
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - log.info
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - length.split
    - <builtin>.hasattr
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - URI_RE.match
    - name.lower
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.urllib3.poolmanager.PoolManager._new_pool
    - pip._vendor.urllib3.util.wait.wait_for_socket
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._absolute_url
    - pip._vendor.urllib3.poolmanager.PoolManager._validate_proxy_scheme_url_selection
    - d.iterkeys
    - brotli.Decompressor
    - body.tell
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - time.time
    - io.IOBase.close
    - ZONE_ID_RE.search
    - response_kw.get
    - TARGET_RE.match
    - conn.sock.settimeout
    - kw.get
    - response.drain_conn
    - pip._vendor.urllib3.util.connection.is_connection_dropped
    - <builtin>.min
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_host
    - <builtin>.super
    - conn.getresponse
    - path.startswith
    - packages.six.moves.http_client.HTTPConnection.__init__
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - buffer.getvalue
    - <builtin>.iter
    - d.iteritems
    - match.span
    - pip._vendor.urllib3.util.timeout.Timeout.resolve_default_timeout
    - conn.is_same_host
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.poolmanager.ProxyManager.connection_from_host
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.response.HTTPResponse.__init__
    - warnings.warn
    - pip._vendor.urllib3.util.response.assert_header_parsing
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - h.lower
    - rcheck.append
    - pip._vendor.urllib3.poolmanager.PoolManager.urlopen
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - sys.exc_info
    - pip._vendor.urllib3.util.wait._retry_on_intr
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - <builtin>.range
    - <builtin>.isinstance
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - io.BytesIO.getvalue
    - <builtin>.bool
    - pip._vendor.urllib3.util.timeout.Timeout.from_float
    - _collections.HTTPHeaderDict.get
    - conn.connect
    - HTTPError.__init__
    - retries.sleep
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - pip._vendor.urllib3.util.wait.select_wait_for_socket
    - path.endswith
    - component.encode
    - pip._vendor.urllib3.util.wait.null_wait_for_socket
    - kw.pop
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool.urlopen
    - s.encode
    - override.items
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - _collections.HTTPHeaderDict.from_httplib
    - <builtin>.list
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_timeout
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._put_conn
    - <builtin>.any
    - pip._vendor.urllib3.util.timeout.Timeout.clone
    - content_encoding.split
    - mimetypes.guess_type
    - headers.is_multipart
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._validate_conn
    - <builtin>.len
    - s.decode
    - pip._vendor.urllib3.response.HTTPResponse.from_httplib
    - pip._vendor.urllib3.packages.six.iteritems
    - conn.set_tunnel
    - pip._vendor.urllib3.util.wait.poll_wait_for_socket
    - m.strip
    - uri_bytes.count
    - <builtin>.hex
    - <builtin>.ord
    - pip._vendor.urllib3.connection.HTTPConnection.__init__
    - <builtin>.int
    - pip._vendor.urllib3.poolmanager.PoolManager._proxy_requires_url_absolute_form
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._validate_conn
    - request_param.make_multipart
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.HTTPResponse.read
    - <builtin>.getattr
    - pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_proxy
    - pip._vendor.urllib3.response._get_decoder
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - pip._vendor.urllib3.filepost.iter_field_objects
    - d.decompress
    - <builtin>.type
    - d.items
    - <builtin>.frozenset
    - IPV4_RE.match
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.util.request.set_file_position
    - log.debug
    - pip._vendor.urllib3.util.wait.wait_for_read
    - output.append
    - packages.six.moves.queue.Queue.qsize
    - pip._vendor.urllib3.fields.RequestField.__init__
    - response.headers.get
    - io.BytesIO.write
    - headers.copy
    - packages.six.moves.queue.Queue.put
    - pip._vendor.urllib3.util.url._encode_target
    - headers.update
    - modes.split
    - authority.rpartition
    - <builtin>.set
    - pip._vendor.urllib3.request.RequestMethods.urlopen
    - e.strip
    - pip._vendor.urllib3.util.proxy.connection_requires_http_tunnel
    - pip._vendor.urllib3.packages.six.raise_from
    - headers_.update
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.urllib3.poolmanager.ProxyManager._set_proxy_headers
    - conn.set_cert
    - packages.six.moves.urllib.parse.urlencode
    - encoded_component.decode
    - pip._vendor.urllib3.exceptions.ProxyError.__init__
    - tr_enc.split
    - pip._vendor.urllib3.poolmanager.ProxyManager.urlopen
    - select.poll
    - boundary.decode
    - retries.is_retry
    - enc.strip
    - pip._vendor.urllib3.response.HTTPResponse._init_length
    - d.keys
    - port_by_scheme.get
    - pip._vendor.urllib3.util.url.get_host
    - pip._vendor.urllib3.packages.six.iterkeys
    - retries.sleep_for_retry
    - zone_id.startswith
    - pip._vendor.urllib3.connectionpool.HTTPConnectionPool._make_request
    - <builtin>.reversed
    - pip._vendor.urllib3.util.wait._have_working_poll
    - functools.partial
    - lengths.pop
    - conn.request
    - pip._vendor.urllib3.util.response.is_fp_closed
    - header.lower
    - time.monotonic
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    - poll_obj.register
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - conn.request_chunked
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - io.BytesIO
    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: extra_kw.update
    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: packages.six.moves.urllib.parse.urlencode
    functionSourceFile: packages
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 179
    functionName: pip._vendor.urllib3.request.RequestModule.__call__
    functionSourceFile: pip._vendor.urllib3.request
    functionUses: 0
    functionsReached: []
    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: pip._vendor.urllib3.packages.backports
    functionSourceFile: pip._vendor.urllib3.packages.backports
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionSourceFile: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize
    functionSourceFile: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionUses: 0
    functionsReached:
    - itertools.count
    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: atexit.register
    functionSourceFile: atexit
    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: weakref.ref
    functionSourceFile: weakref
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e82eebe0>
    argNames:
    - self
    - _
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 61
    functionName: pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.__call__
    functionSourceFile: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionUses: 0
    functionsReached:
    - info.func
    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: info.func
    functionSourceFile: <builtin>
    functionUses: 1
    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: 1
    functionLinenumber: 68
    functionName: pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.detach
    functionSourceFile: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionUses: 0
    functionsReached:
    - info.weakref
    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: info.weakref
    functionSourceFile: <builtin>
    functionUses: 3
    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: 1
    functionLinenumber: 76
    functionName: pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.peek
    functionSourceFile: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionUses: 0
    functionsReached:
    - info.weakref
    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: 85
    functionName: pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.alive
    functionSourceFile: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 96
    functionName: pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.atexit
    functionSourceFile: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 101
    functionName: pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.__repr__
    functionSourceFile: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionUses: 0
    functionsReached:
    - info.weakref
    - <builtin>.id
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 115
    functionName: pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize._select_for_exit
    functionSourceFile: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionUses: 1
    functionsReached:
    - cls._registry.items
    - L.sort
    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: cls._registry.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize._select_for_exit.<lambda1>
    functionSourceFile: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: L.sort
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 122
    functionName: pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize._exitfunc
    functionSourceFile: pip._vendor.urllib3.packages.backports.weakref_finalize
    functionUses: 0
    functionsReached:
    - gc.enable
    - pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize._select_for_exit
    - sys.excepthook
    - gc.isenabled
    - L.sort
    - gc.disable
    - cls._registry.items
    - sys.exc_info
    - pending.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gc.isenabled
    functionSourceFile: gc
    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: gc.disable
    functionSourceFile: gc
    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: pending.pop
    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: sys.excepthook
    functionSourceFile: sys
    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: gc.enable
    functionSourceFile: gc
    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: pip._vendor.urllib3.util.queue
    functionSourceFile: pip._vendor.urllib3.util.queue
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - _
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 12
    functionName: pip._vendor.urllib3.util.queue.LifoQueue._init
    functionSourceFile: pip._vendor.urllib3.util.queue
    functionUses: 0
    functionsReached:
    - collections.deque
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30fcc6f220>
    argNames:
    - self
    - len
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 15
    functionName: pip._vendor.urllib3.util.queue.LifoQueue._qsize
    functionSourceFile: pip._vendor.urllib3.util.queue
    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
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 18
    functionName: pip._vendor.urllib3.util.queue.LifoQueue._put
    functionSourceFile: pip._vendor.urllib3.util.queue
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 21
    functionName: pip._vendor.urllib3.util.queue.LifoQueue._get
    functionSourceFile: pip._vendor.urllib3.util.queue
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.urllib3._version
    functionSourceFile: pip._vendor.urllib3._version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.requests._internal_utils
    functionSourceFile: pip._vendor.requests._internal_utils
    functionUses: 0
    functionsReached:
    - re.compile
    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.abc.MutableMapping.decode
    functionSourceFile: collections
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin.decode
    functionSourceFile: urllib
    functionUses: 41
    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: u_string.encode
    functionSourceFile: <builtin>
    functionUses: 27
    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: pip._vendor.requests.compat
    functionSourceFile: pip._vendor.requests.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.network
    functionSourceFile: pip._internal.network
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.network.session
    functionSourceFile: pip._internal.network.session
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - warnings.filterwarnings
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 99
    functionName: pip._internal.network.session.looks_like_ci
    functionSourceFile: pip._internal.network.session
    functionUses: 18
    functionsReached:
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 25
    ICount: 1
    IfCount: 17
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 109
    functionName: pip._internal.network.session.user_agent
    functionSourceFile: pip._internal.network.session
    functionUses: 17
    functionsReached:
    - val.lower
    - pip._internal.utils.glibc.libc_ver
    - <builtin>.isinstance
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._vendor.distro.name
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.compat.has_tls
    - data.setdefault
    - <builtin>.dict
    - os.environ.get
    - pip._internal.utils.glibc.glibc_version_string
    - <builtin>.str
    - pip._internal.metadata.get_default_environment
    - platform.python_implementation
    - rustc_output.startswith
    - platform.release
    - rustc_output.split
    - <builtin>.any
    - os.confstr
    - pip._vendor.distro.version
    - subprocess.check_output
    - pip._internal.metadata.select_backend
    - ctypes.CDLL
    - platform.machine
    - platform.mac_ver
    - pip._internal.network.session.looks_like_ci
    - <builtin>.zip
    - json.dumps
    - platform.system
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - platform.python_version
    - shutil.which
    - version_str.decode
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - <builtin>.filter
    - <builtin>.getattr
    - sys.platform.startswith
    - gnu_libc_version.split
    - contextlib.suppress
    - pip._vendor.distro.codename
    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: pip._vendor.distro.name
    functionSourceFile: ''
    functionUses: 18
    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: pip._vendor.distro.version
    functionSourceFile: ''
    functionUses: 18
    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: pip._vendor.distro.codename
    functionSourceFile: ''
    functionUses: 18
    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: pip._internal.network.session.user_agent.<lambda1>
    functionSourceFile: pip._internal.network.session
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.network.session.user_agent.<lambda2>
    functionSourceFile: pip._internal.network.session
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 78
    functionName: pip._internal.utils.glibc.libc_ver
    functionSourceFile: pip._internal.utils.glibc
    functionUses: 18
    functionsReached:
    - pip._internal.utils.glibc.glibc_version_string
    - <builtin>.isinstance
    - os.confstr
    - version_str.decode
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - ctypes.CDLL
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - gnu_libc_version.split
    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: data.setdefault
    functionSourceFile: <builtin>
    functionUses: 18
    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: rustc_output.startswith
    functionSourceFile: <builtin>
    functionUses: 18
    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: rustc_output.split
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9933d00>
    - <ast.Constant object at 0x7f30f9933fd0>
    - <ast.Constant object at 0x7f30f9933820>
    - <ast.Constant object at 0x7f30f9933bb0>
    - <ast.Constant object at 0x7f30f9933f10>
    argNames:
    - self
    - request
    - stream
    - timeout
    - verify
    - cert
    - proxies
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 211
    functionName: pip._internal.network.session.LocalFSAdapter.send
    functionSourceFile: pip._internal.network.session
    functionUses: 0
    functionsReached:
    - cookie.value.replace
    - <builtin>.bool
    - pip._internal.utils.urls.url_to_path
    - datetime.timedelta
    - <builtin>.set
    - result.update
    - io.BytesIO
    - <builtin>.super
    - mimetypes.guess_type
    - <builtin>.len
    - cookie.value.endswith
    - pip._vendor.requests.models.Response.__init__
    - email.utils.formatdate
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - os.stat
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - urllib.parse.urlsplit
    - collections.OrderedDict
    - urllib.request.url2pathname
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.open
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    - <builtin>.type
    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: email.utils.formatdate
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 250
    functionName: pip._internal.network.session.LocalFSAdapter.close
    functionSourceFile: pip._internal.network.session
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - ssl_context
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 262
    functionName: pip._internal.network.session._SSLContextAdapterMixin.__init__
    functionSourceFile: pip._internal.network.session
    functionUses: 17
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Name object at 0x7f30ce3fd160>
    argNames:
    - self
    - connections
    - maxsize
    - block
    - pool_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 271
    functionName: pip._internal.network.session._SSLContextAdapterMixin.init_poolmanager
    functionSourceFile: pip._internal.network.session
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pool_kwargs.setdefault
    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: pool_kwargs.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - conn
    - url
    - verify
    - cert
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 297
    functionName: pip._internal.network.session.InsecureHTTPAdapter.cert_verify
    functionSourceFile: pip._internal.network.session
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - conn
    - url
    - verify
    - cert
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 308
    functionName: pip._internal.network.session.InsecureCacheControlAdapter.cert_verify
    functionSourceFile: pip._internal.network.session
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - directory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: pip._internal.network.cache.SafeFileCache.__init__
    functionSourceFile: pip._internal.network.cache
    functionUses: 17
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prefix
    - adapter
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 801
    functionName: pip._vendor.requests.sessions.Session.mount
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 35
    functionsReached:
    - <builtin>.len
    - collections.OrderedDict.pop
    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: 73
    functionName: pip._vendor.requests.adapters.BaseAdapter.__init__
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 17
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 7
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30db647220>
    - <ast.Constant object at 0x7f30db6471f0>
    argNames:
    - self
    - host
    - source
    - suppress_logging
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 408
    functionName: pip._internal.network.session.PipSession.add_trusted_host
    functionSourceFile: pip._internal.network.session
    functionUses: 21
    functionsReached:
    - pip._vendor.requests.sessions.Session.mount
    - <builtin>.len
    - pip._internal.utils.misc.parse_netloc
    - logger.info
    - netloc.count
    - pip._internal.utils.misc.build_url_from_netloc
    - urllib.parse.urlparse
    - collections.OrderedDict.pop
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - new_index_urls
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 401
    functionName: pip._internal.network.session.PipSession.update_index_urls
    functionSourceFile: pip._internal.network.session
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 441
    functionName: pip._internal.network.session.PipSession.iter_secure_origins
    functionSourceFile: pip._internal.network.session
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 446
    functionName: pip._internal.network.session.PipSession.is_secure_origin
    functionSourceFile: pip._internal.network.session
    functionUses: 0
    functionsReached:
    - ipaddress.ip_address
    - <builtin>.str
    - secure_host.lower
    - origin_protocol.rsplit
    - ipaddress.ip_network
    - urllib.parse.urlparse
    - pip._internal.network.session.PipSession.iter_secure_origins
    - logger.warning
    - origin_host.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: origin_protocol.rsplit
    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: ipaddress.ip_network
    functionSourceFile: ipaddress
    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: origin_host.lower
    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: secure_host.lower
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - method
    - url
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 513
    functionName: pip._internal.network.session.PipSession.request
    functionSourceFile: pip._internal.network.session
    functionUses: 21
    functionsReached:
    - <builtin>.super
    - kwargs.setdefault
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.setdefault
    functionSourceFile: <builtin>
    functionUses: 26
    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: pip._vendor.requests.adapters
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 60
    functionName: pip._vendor.requests.adapters.SOCKSProxyManager
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - InvalidSchema
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8ce9160>
    - <ast.Constant object at 0x7f30d8ce9130>
    - <ast.Constant object at 0x7f30d8ce9100>
    - <ast.Constant object at 0x7f30d8ce90d0>
    - <ast.Constant object at 0x7f30d8ce90a0>
    argNames:
    - self
    - request
    - stream
    - timeout
    - verify
    - cert
    - proxies
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 76
    functionName: pip._vendor.requests.adapters.BaseAdapter.send
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 95
    functionName: pip._vendor.requests.adapters.BaseAdapter.close
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Name object at 0x7f30d8cdd9a0>
    - <ast.Name object at 0x7f30d8cdd970>
    - <ast.Name object at 0x7f30d8cdd940>
    - <ast.Name object at 0x7f30d8cdd910>
    argNames:
    - self
    - pool_connections
    - pool_maxsize
    - max_retries
    - pool_block
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 135
    functionName: pip._vendor.requests.adapters.HTTPAdapter.__init__
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 10
    functionsReached:
    - <builtin>.super
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - _collections.RecentlyUsedContainer
    - <builtin>.isinstance
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    - <builtin>.bool
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - key_fn_by_scheme.copy
    - warnings.warn
    - <builtin>.frozenset
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - <builtin>.set
    - <builtin>.tuple
    - h.lower
    - log.debug
    - pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Name object at 0x7f30e82ee9d0>
    argNames:
    - self
    - connections
    - maxsize
    - block
    - pool_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 173
    functionName: pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 12
    functionsReached:
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - _collections.RecentlyUsedContainer
    - key_fn_by_scheme.copy
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 157
    functionName: pip._vendor.requests.adapters.HTTPAdapter.__getstate__
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 160
    functionName: pip._vendor.requests.adapters.HTTPAdapter.__setstate__
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 0
    functionsReached:
    - _collections.RecentlyUsedContainer
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - key_fn_by_scheme.copy
    - <builtin>.setattr
    - state.items
    - pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - proxy
    - proxy_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 199
    functionName: pip._vendor.requests.adapters.HTTPAdapter.proxy_manager_for
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 2
    functionsReached:
    - urllib.parse.unquote
    - <builtin>.isinstance
    - pip._vendor.requests.utils.get_auth_from_url
    - collections.namedtuple.auth.split
    - URI_RE.match
    - name.lower
    - base64.b64encode
    - IPV4_RE.match
    - <builtin>.bytearray
    - collections.namedtuple._replace
    - urllib.parse.urljoin.decode
    - HTTPError.__init__
    - path.split
    - output.append
    - path.endswith
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - urllib.parse.urlunparse.lower
    - byte.decode
    - ZONE_ID_RE.search
    - pip._vendor.urllib3.poolmanager.proxy_from_url
    - authority.rpartition
    - pip._vendor.requests.auth._basic_auth_str
    - password.encode
    - pip._vendor.urllib3.packages.six.raise_from
    - pip._vendor.urllib3.poolmanager.ProxyManager.__init__
    - _HOST_PORT_RE.match
    - pip._vendor.idna.encode
    - pip._vendor.requests.adapters.HTTPAdapter.proxy_headers
    - urllib.parse.quote.decode
    - <builtin>.super
    - encoded_component.decode
    - <builtin>.any
    - output.pop
    - path.startswith
    - IPV6_ADDRZ_RE.match
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - output.insert
    - <builtin>.len
    - username.encode
    - s.decode
    - PERCENT_RE.subn
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - port_by_scheme.get
    - <builtin>.range
    - zone_id.startswith
    - <builtin>.int
    - scheme.lower
    - pip._vendor.urllib3.contrib.socks.SOCKSProxyManager.__init__
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.requests._internal_utils.to_native_string
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - base64.b64encode.strip
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - pip._vendor.urllib3.packages.six.ensure_text
    - urllib.parse.urlparse
    - collections.abc.MutableMapping.decode
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlunparse.lower
    functionSourceFile: urllib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30e079bb50>
    - <ast.Constant object at 0x7f30e079b490>
    - <ast.Constant object at 0x7f30d8c056a0>
    - <ast.Constant object at 0x7f30d8c05af0>
    argNames:
    - self
    - proxy_url
    - username
    - password
    - num_pools
    - headers
    - connection_pool_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 170
    functionName: pip._vendor.urllib3.contrib.socks.SOCKSProxyManager.__init__
    functionSourceFile: pip._vendor.urllib3.contrib.socks
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - collections.namedtuple.auth.split
    - URI_RE.match
    - name.lower
    - IPV4_RE.match
    - HTTPError.__init__
    - path.split
    - output.append
    - path.endswith
    - component.encode
    - SCHEME_RE.search
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - byte.decode
    - ZONE_ID_RE.search
    - authority.rpartition
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - pip._vendor.idna.encode
    - <builtin>.super
    - encoded_component.decode
    - output.pop
    - path.startswith
    - <builtin>.any
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - collections.namedtuple.__init__
    - output.insert
    - <builtin>.len
    - s.decode
    - PERCENT_RE.subn
    - <builtin>.type
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.urllib3.util.url._idna_encode
    - <builtin>.ord
    - match.span
    - zone_id.startswith
    - <builtin>.int
    - scheme.lower
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - proxy
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 413
    functionName: pip._vendor.requests.adapters.HTTPAdapter.proxy_headers
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 3
    functionsReached:
    - urllib.parse.unquote
    - <builtin>.isinstance
    - pip._vendor.requests.utils.get_auth_from_url
    - pip._vendor.requests._internal_utils.to_native_string
    - username.encode
    - pip._vendor.requests.auth._basic_auth_str
    - warnings.warn
    - base64.b64encode
    - base64.b64encode.strip
    - urllib.parse.urljoin.decode
    - password.encode
    - urllib.parse.urlparse
    - urllib.parse.quote.decode
    - collections.abc.MutableMapping.decode
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - conn
    - url
    - verify
    - cert
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 237
    functionName: pip._vendor.requests.adapters.HTTPAdapter.cert_verify
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - zip_file.read
    - os.replace
    - url.lower
    - os.fdopen
    - os.path.join
    - file_handler.write
    - zipfile.is_zipfile
    - member.split
    - zipfile.ZipFile
    - zip_file.namelist
    - os.path.isdir
    - tempfile.gettempdir
    - pip._vendor.requests.utils.extract_zipped_paths
    - tempfile.mkstemp
    - os.remove
    - os.path.exists
    - os.path.dirname
    - os.path.split
    - pip._vendor.requests.utils.atomic_open
    linkageType: pythonLinkage
    raised:
    - OSError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - req
    - resp
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 294
    functionName: pip._vendor.requests.adapters.HTTPAdapter.build_response
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - param.find
    - pip._vendor.requests.cookies.MockRequest.__init__
    - param.strip
    - pip._vendor.requests.cookies.MockResponse.__init__
    - datetime.timedelta
    - <builtin>.set
    - collections.abc.MutableMapping.get
    - result.update
    - pip._vendor.requests.utils._parse_content_type_header
    - key.lower
    - <builtin>.super
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - header.split
    - cookie.value.endswith
    - req.url.decode
    - pip._vendor.requests.models.Response.__init__
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - http.cookiejar.CookieJar.extract_cookies
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - collections.OrderedDict
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_encoding_from_headers
    - <builtin>.getattr
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.update
    - cookie.value.startswith
    - urllib.parse.urlparse
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req.url.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa7ca0>
    argNames:
    - self
    - url
    - proxies
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 331
    functionName: pip._vendor.requests.adapters.HTTPAdapter.get_connection
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 1
    functionsReached:
    - pip._vendor.urllib3.poolmanager.PoolManager._merge_pool_kwargs
    - path.split
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_context
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_pool_key
    - SCHEME_RE.search
    - byte.decode
    - password.encode
    - output.pop
    - request_context.pop
    - username.encode
    - PERCENT_RE.subn
    - pip._vendor.urllib3.util.url._idna_encode
    - _collections.RecentlyUsedContainer.get
    - scheme.lower
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - urllib.parse.urlparse
    - collections.abc.MutableMapping.decode
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - name.lower
    - base64.b64encode
    - pip._vendor.urllib3.poolmanager.PoolManager._new_pool
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - urllib.parse.urlunparse.lower
    - ZONE_ID_RE.search
    - pip._vendor.requests.adapters.HTTPAdapter.proxy_headers
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_host
    - <builtin>.super
    - path.startswith
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - urllib.parse.urlunparse
    - output.insert
    - pip._vendor.requests.utils.prepend_scheme_if_needed
    - match.span
    - pip._vendor.urllib3.poolmanager.ProxyManager.connection_from_host
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - proxies.get
    - base64.b64encode.strip
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - <builtin>.range
    - <builtin>.isinstance
    - urllib.parse.urljoin.decode
    - HTTPError.__init__
    - path.endswith
    - component.encode
    - override.items
    - pip._vendor.urllib3.poolmanager.ProxyManager.__init__
    - <builtin>.any
    - <builtin>.len
    - s.decode
    - uri_bytes.count
    - <builtin>.hex
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.contrib.socks.SOCKSProxyManager.__init__
    - pip._vendor.requests._internal_utils.to_native_string
    - pip._vendor.urllib3.util.url._normalize_host
    - <builtin>.type
    - urllib.parse.unquote
    - collections.namedtuple.auth.split
    - IPV4_RE.match
    - collections.namedtuple._replace
    - urllib.parse.urlparse.geturl
    - output.append
    - authority.rpartition
    - pip._vendor.urllib3.poolmanager.proxy_from_url
    - pip._vendor.requests.utils.select_proxy
    - pip._vendor.requests.auth._basic_auth_str
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - encoded_component.decode
    - pip._vendor.requests.adapters.HTTPAdapter.proxy_manager_for
    - port_by_scheme.get
    - zone_id.startswith
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_url
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    linkageType: pythonLinkage
    raised:
    - InvalidProxyURL
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse.geturl
    functionSourceFile: urllib
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 360
    functionName: pip._vendor.requests.adapters.HTTPAdapter.close
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 0
    functionsReached:
    - _collections.RecentlyUsedContainer.clear
    - proxy.clear
    - pip._vendor.urllib3.poolmanager.PoolManager.clear
    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: proxy.clear
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - request
    - proxies
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 370
    functionName: pip._vendor.requests.adapters.HTTPAdapter.request_url
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 1
    functionsReached:
    - proxy_scheme.startswith
    - pip._vendor.requests.utils.urldefragauth
    - urllib.parse.urlunparse
    - urllib.parse.urlparse.scheme.lower
    - pip._vendor.requests.utils.select_proxy
    - proxies.get
    - urllib.parse.urlparse
    - netloc.rsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse.scheme.lower
    functionSourceFile: urllib
    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: proxy_scheme.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - request
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 399
    functionName: pip._vendor.requests.adapters.HTTPAdapter.add_headers
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 3
    IfCount: 10
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8d08eb0>
    - <ast.Constant object at 0x7f30d8d08ee0>
    - <ast.Constant object at 0x7f30d8d08f10>
    - <ast.Constant object at 0x7f30d8d08f40>
    - <ast.Constant object at 0x7f30d8d08f70>
    argNames:
    - self
    - request
    - stream
    - timeout
    - verify
    - cert
    - proxies
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 434
    functionName: pip._vendor.requests.adapters.HTTPAdapter.send
    functionSourceFile: pip._vendor.requests.adapters
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.poolmanager.PoolManager._merge_pool_kwargs
    - zip_file.read
    - cookie.value.replace
    - path.split
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_context
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_pool_key
    - SCHEME_RE.search
    - byte.decode
    - pip._vendor.urllib3.util.timeout.Timeout.__init__
    - <builtin>.float
    - collections.abc.MutableMapping.get
    - result.update
    - password.encode
    - file_handler.write
    - conn.urlopen
    - netloc.rsplit
    - output.pop
    - request_context.pop
    - username.encode
    - header.split
    - pip._vendor.cachecontrol.adapter.CacheControlAdapter.build_response
    - PERCENT_RE.subn
    - tempfile.gettempdir
    - pip._vendor.urllib3.util.url._idna_encode
    - _collections.RecentlyUsedContainer.get
    - tempfile.NamedTemporaryFile
    - scheme.lower
    - collections.OrderedDict
    - pip._vendor.requests.utils.get_encoding_from_headers
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - os.path.split
    - urllib.parse.urlparse
    - pip._vendor.requests.adapters.HTTPAdapter.cert_verify
    - collections.abc.MutableMapping.decode
    - <builtin>.hasattr
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - name.lower
    - base64.b64encode
    - pip._vendor.urllib3.poolmanager.PoolManager._new_pool
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - urllib.parse.urlunparse.lower
    - ZONE_ID_RE.search
    - datetime.timedelta
    - pip._vendor.requests.utils._parse_content_type_header
    - os.path.join
    - zipfile.is_zipfile
    - member.split
    - pip._vendor.requests.adapters.HTTPAdapter.proxy_headers
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_host
    - <builtin>.super
    - path.startswith
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - urllib.parse.urlunparse
    - zipfile.ZipFile
    - output.insert
    - response.read
    - pip._vendor.requests.models.Response.__init__
    - os.path.isdir
    - pip._vendor.requests.utils.prepend_scheme_if_needed
    - match.span
    - pip._vendor.requests.utils.extract_zipped_paths
    - pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper.__init__
    - os.path.exists
    - pip._vendor.urllib3.poolmanager.ProxyManager.connection_from_host
    - os.path.dirname
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - proxies.get
    - base64.b64encode.strip
    - cookie.value.startswith
    - <builtin>.bytearray
    - pip._vendor.urllib3.packages.six.ensure_text
    - pip._vendor.requests.utils.atomic_open
    - <builtin>.range
    - pip._vendor.requests.adapters.HTTPAdapter.add_headers
    - <builtin>.isinstance
    - <builtin>.bool
    - param.find
    - urllib.parse.urljoin.decode
    - HTTPError.__init__
    - path.endswith
    - pip._vendor.requests.adapters.HTTPAdapter.request_url
    - component.encode
    - proxy_scheme.startswith
    - response.release_conn
    - pip._vendor.requests.cookies.MockRequest.__init__
    - url.lower
    - override.items
    - pip._vendor.urllib3.poolmanager.ProxyManager.__init__
    - key.lower
    - <builtin>.any
    - <builtin>.len
    - s.decode
    - req.url.decode
    - uri_bytes.count
    - <builtin>.hex
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - http.cookiejar.CookieJar.extract_cookies
    - <builtin>.ord
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - <builtin>.int
    - pip._vendor.requests._internal_utils.to_native_string
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._vendor.urllib3.contrib.socks.SOCKSProxyManager.__init__
    - pip._vendor.urllib3.util.url._normalize_host
    - os.remove
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.getattr
    - http.cookiejar.CookieJar.__init__
    - <builtin>.type
    - urllib.parse.unquote
    - collections.namedtuple.auth.split
    - IPV4_RE.match
    - collections.namedtuple._replace
    - urllib.parse.urlparse.geturl
    - output.append
    - os.replace
    - pip._internal.network.session.InsecureHTTPAdapter.cert_verify
    - pip._vendor.requests.utils.urldefragauth
    - param.strip
    - urllib.parse.urlparse.scheme.lower
    - pip._vendor.requests.utils.select_proxy
    - authority.rpartition
    - pip._vendor.urllib3.poolmanager.proxy_from_url
    - pip._vendor.requests.cookies.MockResponse.__init__
    - pip._vendor.requests.auth._basic_auth_str
    - <builtin>.set
    - os.fdopen
    - pip._vendor.requests.adapters.HTTPAdapter.build_response
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - pip._internal.network.session.InsecureCacheControlAdapter.cert_verify
    - IPV6_ADDRZ_RE.match
    - encoded_component.decode
    - cookie.value.endswith
    - pip._vendor.requests.adapters.HTTPAdapter.proxy_manager_for
    - pip._vendor.requests.adapters.HTTPAdapter.get_connection
    - zip_file.namelist
    - types.MethodType
    - port_by_scheme.get
    - tempfile.mkstemp
    - zone_id.startswith
    - http.cookiejar.Cookie
    - functools.partial
    - pip._vendor.urllib3.poolmanager.PoolManager.connection_from_url
    - pip._vendor.urllib3.util.timeout.Timeout._validate_timeout
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    linkageType: pythonLinkage
    raised:
    - RetryError
    - ConnectionError
    - ReadTimeout
    - ProxyError
    - ConnectTimeout
    - InvalidHeader
    - InvalidURL
    - SSLError
    - ValueError
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 5
    IfCount: 7
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b87220>
    - <ast.Constant object at 0x7f30d6b87250>
    argNames:
    - self
    - request
    - response
    - from_cache
    - cacheable_methods
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 80
    functionName: pip._vendor.cachecontrol.adapter.CacheControlAdapter.build_response
    functionSourceFile: pip._vendor.cachecontrol.adapter
    functionUses: 2
    functionsReached:
    - <builtin>.super
    - response.release_conn
    - <builtin>.int
    - pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper.__init__
    - functools.partial
    - response.read
    - types.MethodType
    - tempfile.NamedTemporaryFile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.contrib.socks
    functionSourceFile: pip._vendor.urllib3.contrib.socks
    functionUses: 0
    functionsReached:
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 80
    functionName: pip._vendor.urllib3.contrib.socks.SOCKSConnection.__init__
    functionSourceFile: pip._vendor.urllib3.contrib.socks
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - kwargs.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: pip._vendor.urllib3.contrib.socks.SOCKSConnection._new_conn
    functionSourceFile: pip._vendor.urllib3.contrib.socks
    functionUses: 0
    functionsReached:
    - socks.create_connection
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - NewConnectionError
    - ConnectTimeoutError
    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: socks.create_connection
    functionSourceFile: socks
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple.auth.split
    functionSourceFile: collections
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.network.cache
    functionSourceFile: pip._internal.network.cache
    functionUses: 0
    functionsReached:
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - response
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 17
    functionName: pip._internal.network.cache.is_from_cache
    functionSourceFile: pip._internal.network.cache
    functionUses: 3
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 22
    functionName: pip._internal.network.cache.suppressed_cache_errors
    functionSourceFile: pip._internal.network.cache
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 55
    functionName: pip._internal.network.cache.SafeFileCache._get_cache_path
    functionSourceFile: pip._internal.network.cache
    functionUses: 5
    functionsReached:
    - x.encode
    - hashlib.sha224
    - os.path.join
    - <builtin>.list
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 94
    functionName: pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 14
    functionsReached:
    - x.encode
    - hashlib.sha224
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 63
    functionName: pip._internal.network.cache.SafeFileCache.get
    functionSourceFile: pip._internal.network.cache
    functionUses: 0
    functionsReached:
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    - os.path.exists
    - pip._internal.network.cache.SafeFileCache._get_cache_path
    - <builtin>.open
    - x.encode
    - pip._internal.network.cache.suppressed_cache_errors
    - hashlib.sha224
    - os.path.join
    - f.read
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 73
    functionName: pip._internal.network.cache.SafeFileCache._write
    functionSourceFile: pip._internal.network.cache
    functionUses: 2
    functionsReached:
    - os.fsync
    - os.makedirs
    - os.path.basename
    - typing.cast.flush
    - pip._internal.utils.filesystem.adjacent_tmp_file
    - f.write
    - os.path.dirname
    - typing.cast.fileno
    - pip._internal.network.cache.suppressed_cache_errors
    - typing.cast
    - pip._internal.utils.misc.ensure_dir
    - tempfile.NamedTemporaryFile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: pip._internal.utils.filesystem.adjacent_tmp_file
    functionSourceFile: pip._internal.utils.filesystem
    functionUses: 11
    functionsReached:
    - os.fsync
    - os.path.basename
    - typing.cast.flush
    - os.path.dirname
    - typing.cast.fileno
    - typing.cast
    - tempfile.NamedTemporaryFile
    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.write
    functionSourceFile: <builtin>
    functionUses: 15
    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 0x7f30e57fc4c0>
    argNames:
    - self
    - key
    - value
    - expires
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 82
    functionName: pip._internal.network.cache.SafeFileCache.set
    functionSourceFile: pip._internal.network.cache
    functionUses: 0
    functionsReached:
    - f.write
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    - pip._internal.utils.filesystem.adjacent_tmp_file
    - typing.cast.fileno
    - os.path.join
    - <builtin>.list
    - os.makedirs
    - typing.cast.flush
    - hashlib.sha224
    - pip._internal.network.cache.suppressed_cache_errors
    - typing.cast
    - tempfile.NamedTemporaryFile
    - os.fsync
    - os.path.basename
    - pip._internal.network.cache.SafeFileCache._write
    - os.path.dirname
    - pip._internal.network.cache.SafeFileCache._get_cache_path
    - x.encode
    - pip._internal.utils.misc.ensure_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 88
    functionName: pip._internal.network.cache.SafeFileCache.delete
    functionSourceFile: pip._internal.network.cache
    functionUses: 0
    functionsReached:
    - os.remove
    - pip._internal.network.cache.SafeFileCache._get_cache_path
    - x.encode
    - hashlib.sha224
    - pip._internal.network.cache.suppressed_cache_errors
    - os.path.join
    - <builtin>.list
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 95
    functionName: pip._internal.network.cache.SafeFileCache.get_body
    functionSourceFile: pip._internal.network.cache
    functionUses: 0
    functionsReached:
    - os.path.exists
    - pip._internal.network.cache.SafeFileCache._get_cache_path
    - <builtin>.open
    - x.encode
    - pip._internal.network.cache.suppressed_cache_errors
    - hashlib.sha224
    - os.path.join
    - <builtin>.list
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - body
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 104
    functionName: pip._internal.network.cache.SafeFileCache.set_body
    functionSourceFile: pip._internal.network.cache
    functionUses: 0
    functionsReached:
    - f.write
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    - pip._internal.utils.filesystem.adjacent_tmp_file
    - typing.cast.fileno
    - os.path.join
    - <builtin>.list
    - os.makedirs
    - typing.cast.flush
    - hashlib.sha224
    - pip._internal.network.cache.suppressed_cache_errors
    - typing.cast
    - tempfile.NamedTemporaryFile
    - os.fsync
    - os.path.basename
    - pip._internal.network.cache.SafeFileCache._write
    - os.path.dirname
    - pip._internal.network.cache.SafeFileCache._get_cache_path
    - x.encode
    - pip._internal.utils.misc.ensure_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: 3
    functionLinenumber: -1
    functionName: pip._internal.utils.filesystem
    functionSourceFile: pip._internal.utils.filesystem
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.tenacity._utils.to_seconds
    - <builtin>.isinstance
    - time_unit.total_seconds
    - contextlib.contextmanager
    - pip._vendor.tenacity.retry.retry_if_exception_type.__init__
    - <builtin>.float
    - pip._vendor.tenacity.stop.stop_after_delay.__init__
    - pip._vendor.tenacity.wait.wait_fixed.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 16
    functionName: pip._internal.utils.filesystem.check_path_owner
    functionSourceFile: pip._internal.utils.filesystem
    functionUses: 6
    functionsReached:
    - os.close
    - os.stat
    - os.path.islink
    - os.access
    - os.open
    - os.path.dirname
    - os.path.isabs
    - os.geteuid
    - os.path.lexists
    - os.fstat
    - <builtin>.hasattr
    - pip._internal.utils.compat.get_path_uid
    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.lexists
    functionSourceFile: os
    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: os.geteuid
    functionSourceFile: os
    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: tempfile.NamedTemporaryFile
    functionSourceFile: tempfile
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.flush
    functionSourceFile: typing
    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: typing.cast.fileno
    functionSourceFile: typing
    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: os.fsync
    functionSourceFile: os
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 76
    functionName: pip._internal.utils.filesystem.test_writable_dir
    functionSourceFile: pip._internal.utils.filesystem
    functionUses: 4
    functionsReached:
    - os.close
    - random.choice
    - pip._internal.utils.filesystem._test_writable_dir_win
    - os.open
    - os.access
    - os.path.dirname
    - os.path.isdir
    - os.path.join
    - os.unlink
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 94
    functionName: pip._internal.utils.filesystem._test_writable_dir_win
    functionSourceFile: pip._internal.utils.filesystem
    functionUses: 5
    functionsReached:
    - os.close
    - random.choice
    - os.open
    - os.path.join
    - os.unlink
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - OSError
    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: random.choice
    functionSourceFile: random
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 122
    functionName: pip._internal.utils.filesystem.find_files
    functionSourceFile: pip._internal.utils.filesystem
    functionUses: 6
    functionsReached:
    - result.extend
    - os.walk
    - fnmatch.filter
    - 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: fnmatch.filter
    functionSourceFile: fnmatch
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 132
    functionName: pip._internal.utils.filesystem.file_size
    functionSourceFile: pip._internal.utils.filesystem
    functionUses: 6
    functionsReached:
    - os.path.islink
    - os.path.getsize
    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.getsize
    functionSourceFile: os
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 139
    functionName: pip._internal.utils.filesystem.format_file_size
    functionSourceFile: pip._internal.utils.filesystem
    functionUses: 2
    functionsReached:
    - <builtin>.int
    - pip._internal.utils.filesystem.file_size
    - os.path.islink
    - os.path.getsize
    - pip._internal.utils.misc.format_size
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 143
    functionName: pip._internal.utils.filesystem.directory_size
    functionSourceFile: pip._internal.utils.filesystem
    functionUses: 2
    functionsReached:
    - os.walk
    - pip._internal.utils.filesystem.file_size
    - os.path.islink
    - os.path.getsize
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 152
    functionName: pip._internal.utils.filesystem.format_directory_size
    functionSourceFile: pip._internal.utils.filesystem
    functionUses: 1
    functionsReached:
    - os.walk
    - <builtin>.int
    - pip._internal.utils.filesystem.file_size
    - os.path.islink
    - pip._internal.utils.misc.format_size
    - os.path.getsize
    - pip._internal.utils.filesystem.directory_size
    - 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: pip._vendor.cachecontrol.caches
    functionSourceFile: pip._vendor.cachecontrol.caches
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.cachecontrol.caches.redis_cache
    functionSourceFile: pip._vendor.cachecontrol.caches.redis_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 17
    functionName: pip._vendor.cachecontrol.caches.redis_cache.RedisCache.__init__
    functionSourceFile: pip._vendor.cachecontrol.caches.redis_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 20
    functionName: pip._vendor.cachecontrol.caches.redis_cache.RedisCache.get
    functionSourceFile: pip._vendor.cachecontrol.caches.redis_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3fd100>
    argNames:
    - self
    - key
    - value
    - expires
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: pip._vendor.cachecontrol.caches.redis_cache.RedisCache.set
    functionSourceFile: pip._vendor.cachecontrol.caches.redis_cache
    functionUses: 0
    functionsReached:
    - delta.total_seconds
    - now_utc.replace
    - <builtin>.isinstance
    - <builtin>.int
    - datetime.datetime.now
    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: 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: now_utc.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: delta.total_seconds
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 37
    functionName: pip._vendor.cachecontrol.caches.redis_cache.RedisCache.delete
    functionSourceFile: pip._vendor.cachecontrol.caches.redis_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 40
    functionName: pip._vendor.cachecontrol.caches.redis_cache.RedisCache.clear
    functionSourceFile: pip._vendor.cachecontrol.caches.redis_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: pip._vendor.cachecontrol.caches.redis_cache.RedisCache.close
    functionSourceFile: pip._vendor.cachecontrol.caches.redis_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.cachecontrol.cache
    functionSourceFile: pip._vendor.cachecontrol.cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 19
    functionName: pip._vendor.cachecontrol.cache.BaseCache.get
    functionSourceFile: pip._vendor.cachecontrol.cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4ab76d0>
    argNames:
    - self
    - key
    - value
    - expires
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 22
    functionName: pip._vendor.cachecontrol.cache.BaseCache.set
    functionSourceFile: pip._vendor.cachecontrol.cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: pip._vendor.cachecontrol.cache.BaseCache.delete
    functionSourceFile: pip._vendor.cachecontrol.cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 30
    functionName: pip._vendor.cachecontrol.cache.BaseCache.close
    functionSourceFile: pip._vendor.cachecontrol.cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a72e0>
    argNames:
    - self
    - init_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._vendor.cachecontrol.cache.DictCache.__init__
    functionSourceFile: pip._vendor.cachecontrol.cache
    functionUses: 6
    functionsReached:
    - threading.Lock
    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: threading.Lock
    functionSourceFile: threading
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 39
    functionName: pip._vendor.cachecontrol.cache.DictCache.get
    functionSourceFile: pip._vendor.cachecontrol.cache
    functionUses: 0
    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 0x7f30e26a7670>
    argNames:
    - self
    - key
    - value
    - expires
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: pip._vendor.cachecontrol.cache.DictCache.set
    functionSourceFile: pip._vendor.cachecontrol.cache
    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
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 48
    functionName: pip._vendor.cachecontrol.cache.DictCache.delete
    functionSourceFile: pip._vendor.cachecontrol.cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - body
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 67
    functionName: pip._vendor.cachecontrol.cache.SeparateBodyBaseCache.set_body
    functionSourceFile: pip._vendor.cachecontrol.cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 70
    functionName: pip._vendor.cachecontrol.cache.SeparateBodyBaseCache.get_body
    functionSourceFile: pip._vendor.cachecontrol.cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: pip._vendor.cachecontrol.caches.file_cache
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - filename
    - fmode
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 20
    functionName: pip._vendor.cachecontrol.caches.file_cache._secure_open_write
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 3
    functionsReached:
    - os.close
    - os.remove
    - os.open
    - os.fdopen
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3fddc0>
    - <ast.Constant object at 0x7f30ce3fdeb0>
    - <ast.Constant object at 0x7f30ce3fdfd0>
    - <ast.Constant object at 0x7f30ce3fdc40>
    argNames:
    - self
    - directory
    - forever
    - filemode
    - dirmode
    - lock_class
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    functionName: pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.__init__
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 0
    functionsReached:
    - textwrap.dedent
    linkageType: pythonLinkage
    raised:
    - ImportError
    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: hashlib.sha224
    functionSourceFile: hashlib
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 97
    functionName: pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._fn
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 7
    functionsReached:
    - x.encode
    - hashlib.sha224
    - os.path.join
    - <builtin>.list
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 104
    functionName: pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.get
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 0
    functionsReached:
    - fh.read
    - x.encode
    - <builtin>.open
    - hashlib.sha224
    - os.path.join
    - <builtin>.list
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._fn
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fh.read
    functionSourceFile: <builtin>
    functionUses: 1
    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 0x7f30f99330a0>
    argNames:
    - self
    - key
    - value
    - expires
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 113
    functionName: pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.set
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 0
    functionsReached:
    - fh.write
    - os.close
    - os.remove
    - os.open
    - os.path.dirname
    - os.fdopen
    - x.encode
    - pip._vendor.cachecontrol.caches.file_cache._secure_open_write
    - hashlib.sha224
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._write
    - filelock.FileLock
    - <builtin>.list
    - os.path.join
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._fn
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    - <builtin>.hasattr
    - os.makedirs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 119
    functionName: pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._write
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 2
    functionsReached:
    - fh.write
    - os.close
    - os.remove
    - os.open
    - os.path.dirname
    - os.fdopen
    - pip._vendor.cachecontrol.caches.file_cache._secure_open_write
    - filelock.FileLock
    - <builtin>.hasattr
    - os.makedirs
    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: 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: fh.write
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - suffix
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 134
    functionName: pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._delete
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 2
    functionsReached:
    - os.remove
    - x.encode
    - hashlib.sha224
    - os.path.join
    - <builtin>.list
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._fn
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 149
    functionName: pip._vendor.cachecontrol.caches.file_cache.FileCache.delete
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 0
    functionsReached:
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._delete
    - os.remove
    - x.encode
    - hashlib.sha224
    - os.path.join
    - <builtin>.list
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._fn
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 159
    functionName: pip._vendor.cachecontrol.caches.file_cache.SeparateBodyFileCache.get_body
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 0
    functionsReached:
    - x.encode
    - <builtin>.open
    - hashlib.sha224
    - os.path.join
    - <builtin>.list
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._fn
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - body
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 166
    functionName: pip._vendor.cachecontrol.caches.file_cache.SeparateBodyFileCache.set_body
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 0
    functionsReached:
    - fh.write
    - os.close
    - os.remove
    - os.open
    - os.path.dirname
    - os.fdopen
    - x.encode
    - pip._vendor.cachecontrol.caches.file_cache._secure_open_write
    - hashlib.sha224
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._write
    - filelock.FileLock
    - <builtin>.list
    - os.path.join
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._fn
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    - <builtin>.hasattr
    - os.makedirs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 170
    functionName: pip._vendor.cachecontrol.caches.file_cache.SeparateBodyFileCache.delete
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 0
    functionsReached:
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._delete
    - os.remove
    - x.encode
    - hashlib.sha224
    - os.path.join
    - <builtin>.list
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._fn
    - pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - filecache
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 175
    functionName: pip._vendor.cachecontrol.caches.file_cache.url_to_file_path
    functionSourceFile: pip._vendor.cachecontrol.caches.file_cache
    functionUses: 0
    functionsReached:
    - pip._vendor.cachecontrol.controller.CacheController._urlnorm
    - scheme.lower
    - filecache._fn
    - authority.lower
    - pip._vendor.cachecontrol.controller.CacheController.cache_url
    - pip._vendor.cachecontrol.controller.parse_uri
    - URI.match
    - match.groups
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 84
    functionName: pip._vendor.cachecontrol.controller.CacheController.cache_url
    functionSourceFile: pip._vendor.cachecontrol.controller
    functionUses: 4
    functionsReached:
    - scheme.lower
    - pip._vendor.cachecontrol.controller.CacheController._urlnorm
    - authority.lower
    - pip._vendor.cachecontrol.controller.parse_uri
    - URI.match
    - match.groups
    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: filecache._fn
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.cachecontrol.controller
    functionSourceFile: pip._vendor.cachecontrol.controller
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - uri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: pip._vendor.cachecontrol.controller.parse_uri
    functionSourceFile: pip._vendor.cachecontrol.controller
    functionUses: 6
    functionsReached:
    - match.groups
    - URI.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: URI.match
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b87160>
    - <ast.Constant object at 0x7f30d6b87130>
    - <ast.Constant object at 0x7f30d6b87100>
    - <ast.Constant object at 0x7f30d6b870d0>
    argNames:
    - self
    - cache
    - cache_etags
    - serializer
    - status_codes
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 51
    functionName: pip._vendor.cachecontrol.controller.CacheController.__init__
    functionSourceFile: pip._vendor.cachecontrol.controller
    functionUses: 0
    functionsReached:
    - threading.Lock
    - pip._vendor.cachecontrol.cache.DictCache.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 64
    functionName: pip._vendor.cachecontrol.controller.CacheController._urlnorm
    functionSourceFile: pip._vendor.cachecontrol.controller
    functionUses: 5
    functionsReached:
    - scheme.lower
    - authority.lower
    - pip._vendor.cachecontrol.controller.parse_uri
    - URI.match
    - match.groups
    linkageType: pythonLinkage
    raised:
    - Exception
    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: authority.lower
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - headers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 87
    functionName: pip._vendor.cachecontrol.controller.CacheController.parse_cache_control
    functionSourceFile: pip._vendor.cachecontrol.controller
    functionUses: 2
    functionsReached:
    - headers.get
    - logger.debug
    - cc_directive.strip
    - cc_headers.split
    - cc_directive.split
    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: headers.get
    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: cc_headers.split
    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: cc_directive.strip
    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: cc_directive.split
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 141
    functionName: pip._vendor.cachecontrol.controller.CacheController._load_from_cache
    functionSourceFile: pip._vendor.cachecontrol.controller
    functionUses: 3
    functionsReached:
    - logger.debug
    - logger.warning
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 17
    IfCount: 13
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 162
    functionName: pip._vendor.cachecontrol.controller.CacheController.cached_request
    functionSourceFile: pip._vendor.cachecontrol.controller
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - email.utils.parsedate_tz
    - logger.debug
    - pip._vendor.cachecontrol.controller.CacheController._load_from_cache
    - pip._vendor.cachecontrol.controller.parse_uri
    - match.groups
    - pip._vendor.cachecontrol.controller.CacheController._urlnorm
    - time.time
    - calendar.timegm
    - cc_headers.split
    - resp_cc.get
    - cc.get
    - headers.get
    - authority.lower
    - URI.match
    - <builtin>.int
    - pip._vendor.cachecontrol.controller.CacheController.parse_cache_control
    - scheme.lower
    - collections.OrderedDict
    - pip._vendor.cachecontrol.controller.CacheController.cache_url
    - cc_directive.strip
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - <builtin>.max
    - cc_directive.split
    - logger.warning
    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: resp_cc.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cc.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 272
    functionName: pip._vendor.cachecontrol.controller.CacheController.conditional_headers
    functionSourceFile: pip._vendor.cachecontrol.controller
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - collections.OrderedDict
    - logger.debug
    - collections.abc.MutableMapping.update
    - pip._vendor.cachecontrol.controller.CacheController._load_from_cache
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b82ca0>
    - <ast.Constant object at 0x7f30d6b82c70>
    argNames:
    - self
    - cache_url
    - request
    - response
    - body
    - expires_time
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 287
    functionName: pip._vendor.cachecontrol.controller.CacheController._cache_set
    functionSourceFile: pip._vendor.cachecontrol.controller
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 25
    ICount: 17
    IfCount: 17
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6af2e80>
    - <ast.Constant object at 0x7f30d6af2e50>
    argNames:
    - self
    - request
    - response
    - body
    - status_codes
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 317
    functionName: pip._vendor.cachecontrol.controller.CacheController.cache_response
    functionSourceFile: pip._vendor.cachecontrol.controller
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - response_headers.get
    - email.utils.parsedate_tz
    - logger.debug
    - pip._vendor.cachecontrol.controller.parse_uri
    - match.groups
    - pip._vendor.cachecontrol.controller.CacheController._cache_set
    - pip._vendor.cachecontrol.controller.CacheController._urlnorm
    - calendar.timegm
    - cc_headers.split
    - <builtin>.len
    - cc.get
    - headers.get
    - authority.lower
    - URI.match
    - <builtin>.int
    - pip._vendor.cachecontrol.controller.CacheController.parse_cache_control
    - scheme.lower
    - collections.OrderedDict
    - pip._vendor.cachecontrol.controller.CacheController.cache_url
    - cc_directive.strip
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - <builtin>.max
    - cc_directive.split
    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: response_headers.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - request
    - response
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 454
    functionName: pip._vendor.cachecontrol.controller.CacheController.update_cached_response
    functionSourceFile: pip._vendor.cachecontrol.controller
    functionUses: 0
    functionsReached:
    - pip._vendor.cachecontrol.controller.CacheController._cache_set
    - <builtin>.isinstance
    - pip._vendor.cachecontrol.controller.CacheController._urlnorm
    - scheme.lower
    - authority.lower
    - k.lower
    - logger.debug
    - pip._vendor.cachecontrol.controller.CacheController.cache_url
    - pip._vendor.cachecontrol.controller.CacheController._load_from_cache
    - pip._vendor.cachecontrol.controller.parse_uri
    - URI.match
    - response.headers.items
    - cached_response.headers.update
    - match.groups
    - logger.warning
    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: response.headers.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cached_response.headers.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: pip._vendor.requests
    functionSourceFile: pip._vendor.requests
    functionUses: 0
    functionsReached:
    - pip._vendor.requests._check_cryptography
    - urllib3_version.split
    - pip._vendor.urllib3.contrib.pyopenssl._validate_dependencies_met
    - OpenSSL.crypto.X509
    - warnings.simplefilter
    - pip._vendor.urllib3.contrib.pyopenssl.inject_into_urllib3
    - <builtin>.list
    - chardet_version.split
    - <builtin>.len
    - <builtin>.map
    - logging.NullHandler
    - logging.getLogger
    - cryptography.__version__.split
    - <builtin>.int
    - warnings.warn
    - urllib3_version.append
    - <builtin>.getattr
    - charset_normalizer_version.split
    - pip._vendor.requests.check_compatibility
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - urllib3_version
    - chardet_version
    - charset_normalizer_version
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 55
    functionName: pip._vendor.requests.check_compatibility
    functionSourceFile: pip._vendor.requests
    functionUses: 1
    functionsReached:
    - chardet_version.split
    - <builtin>.int
    - <builtin>.len
    - urllib3_version.append
    - urllib3_version.split
    - charset_normalizer_version.split
    linkageType: pythonLinkage
    raised:
    - Exception
    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: urllib3_version.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib3_version.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: chardet_version.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: charset_normalizer_version.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - cryptography_version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: pip._vendor.requests._check_cryptography
    functionSourceFile: pip._vendor.requests
    functionUses: 1
    functionsReached:
    - cryptography.__version__.split
    - <builtin>.map
    - <builtin>.list
    - warnings.warn
    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: cryptography.__version__.split
    functionSourceFile: cryptography
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 130
    functionName: pip._vendor.urllib3.contrib.pyopenssl.inject_into_urllib3
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 1
    functionsReached:
    - OpenSSL.crypto.X509
    - <builtin>.getattr
    - pip._vendor.urllib3.contrib.pyopenssl._validate_dependencies_met
    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: pip._internal.utils
    functionSourceFile: pip._internal.utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.requests.api
    functionSourceFile: pip._vendor.requests.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - method
    - url
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 14
    functionName: pip._vendor.requests.api.request
    functionSourceFile: pip._vendor.requests.api
    functionUses: 7
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - session.request
    - <builtin>.frozenset
    - pip._vendor.requests.adapters.HTTPAdapter.__init__
    - log.debug
    - pip._vendor.requests.sessions.Session.mount
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.utils.default_headers
    - pip._vendor.requests.sessions.Session.__init__
    - <builtin>.set
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - result.update
    - <builtin>.tuple
    - collections.OrderedDict.pop
    - <builtin>.super
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    - <builtin>.len
    - cookie.value.endswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    - pip._vendor.requests.utils.default_user_agent
    - _collections.RecentlyUsedContainer
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - collections.OrderedDict
    - key_fn_by_scheme.copy
    - pip._vendor.requests.cookies.create_cookie
    - warnings.warn
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - h.lower
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 391
    functionName: pip._vendor.requests.sessions.Session.__init__
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 9
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - <builtin>.frozenset
    - pip._vendor.requests.adapters.HTTPAdapter.__init__
    - log.debug
    - pip._vendor.requests.sessions.Session.mount
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.utils.default_headers
    - <builtin>.set
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - result.update
    - <builtin>.tuple
    - collections.OrderedDict.pop
    - <builtin>.super
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    - <builtin>.len
    - cookie.value.endswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    - pip._vendor.requests.utils.default_user_agent
    - _collections.RecentlyUsedContainer
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - collections.OrderedDict
    - key_fn_by_scheme.copy
    - pip._vendor.requests.cookies.create_cookie
    - warnings.warn
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - h.lower
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: session.request
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f7de6760>
    argNames:
    - url
    - params
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 62
    functionName: pip._vendor.requests.api.get
    functionSourceFile: pip._vendor.requests.api
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - session.request
    - <builtin>.frozenset
    - pip._vendor.requests.adapters.HTTPAdapter.__init__
    - log.debug
    - pip._vendor.requests.sessions.Session.mount
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.utils.default_headers
    - pip._vendor.requests.sessions.Session.__init__
    - <builtin>.set
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - result.update
    - <builtin>.tuple
    - collections.OrderedDict.pop
    - <builtin>.super
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    - <builtin>.len
    - cookie.value.endswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    - pip._vendor.requests.utils.default_user_agent
    - _collections.RecentlyUsedContainer
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - collections.OrderedDict
    - key_fn_by_scheme.copy
    - pip._vendor.requests.cookies.create_cookie
    - warnings.warn
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - h.lower
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    - pip._vendor.requests.api.request
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 76
    functionName: pip._vendor.requests.api.options
    functionSourceFile: pip._vendor.requests.api
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - session.request
    - <builtin>.frozenset
    - pip._vendor.requests.adapters.HTTPAdapter.__init__
    - log.debug
    - pip._vendor.requests.sessions.Session.mount
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.utils.default_headers
    - pip._vendor.requests.sessions.Session.__init__
    - <builtin>.set
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - result.update
    - <builtin>.tuple
    - collections.OrderedDict.pop
    - <builtin>.super
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    - <builtin>.len
    - cookie.value.endswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    - pip._vendor.requests.utils.default_user_agent
    - _collections.RecentlyUsedContainer
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - collections.OrderedDict
    - key_fn_by_scheme.copy
    - pip._vendor.requests.cookies.create_cookie
    - warnings.warn
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - h.lower
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    - pip._vendor.requests.api.request
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 88
    functionName: pip._vendor.requests.api.head
    functionSourceFile: pip._vendor.requests.api
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - session.request
    - <builtin>.frozenset
    - pip._vendor.requests.adapters.HTTPAdapter.__init__
    - log.debug
    - pip._vendor.requests.sessions.Session.mount
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.utils.default_headers
    - pip._vendor.requests.sessions.Session.__init__
    - kwargs.setdefault
    - <builtin>.set
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - result.update
    - <builtin>.tuple
    - collections.OrderedDict.pop
    - <builtin>.super
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    - <builtin>.len
    - cookie.value.endswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    - pip._vendor.requests.utils.default_user_agent
    - _collections.RecentlyUsedContainer
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - collections.OrderedDict
    - key_fn_by_scheme.copy
    - pip._vendor.requests.cookies.create_cookie
    - warnings.warn
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - h.lower
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    - pip._vendor.requests.api.request
    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 0x7f30e26a71f0>
    - <ast.Constant object at 0x7f30e26a7cd0>
    argNames:
    - url
    - data
    - json
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 103
    functionName: pip._vendor.requests.api.post
    functionSourceFile: pip._vendor.requests.api
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - session.request
    - <builtin>.frozenset
    - pip._vendor.requests.adapters.HTTPAdapter.__init__
    - log.debug
    - pip._vendor.requests.sessions.Session.mount
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.utils.default_headers
    - pip._vendor.requests.sessions.Session.__init__
    - <builtin>.set
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - result.update
    - <builtin>.tuple
    - collections.OrderedDict.pop
    - <builtin>.super
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    - <builtin>.len
    - cookie.value.endswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    - pip._vendor.requests.utils.default_user_agent
    - _collections.RecentlyUsedContainer
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - collections.OrderedDict
    - key_fn_by_scheme.copy
    - pip._vendor.requests.cookies.create_cookie
    - warnings.warn
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - h.lower
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    - pip._vendor.requests.api.request
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a7b50>
    argNames:
    - url
    - data
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 118
    functionName: pip._vendor.requests.api.put
    functionSourceFile: pip._vendor.requests.api
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - session.request
    - <builtin>.frozenset
    - pip._vendor.requests.adapters.HTTPAdapter.__init__
    - log.debug
    - pip._vendor.requests.sessions.Session.mount
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.utils.default_headers
    - pip._vendor.requests.sessions.Session.__init__
    - <builtin>.set
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - result.update
    - <builtin>.tuple
    - collections.OrderedDict.pop
    - <builtin>.super
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    - <builtin>.len
    - cookie.value.endswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    - pip._vendor.requests.utils.default_user_agent
    - _collections.RecentlyUsedContainer
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - collections.OrderedDict
    - key_fn_by_scheme.copy
    - pip._vendor.requests.cookies.create_cookie
    - warnings.warn
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - h.lower
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    - pip._vendor.requests.api.request
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a7c40>
    argNames:
    - url
    - data
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 133
    functionName: pip._vendor.requests.api.patch
    functionSourceFile: pip._vendor.requests.api
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - session.request
    - <builtin>.frozenset
    - pip._vendor.requests.adapters.HTTPAdapter.__init__
    - log.debug
    - pip._vendor.requests.sessions.Session.mount
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.utils.default_headers
    - pip._vendor.requests.sessions.Session.__init__
    - <builtin>.set
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - result.update
    - <builtin>.tuple
    - collections.OrderedDict.pop
    - <builtin>.super
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    - <builtin>.len
    - cookie.value.endswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    - pip._vendor.requests.utils.default_user_agent
    - _collections.RecentlyUsedContainer
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - collections.OrderedDict
    - key_fn_by_scheme.copy
    - pip._vendor.requests.cookies.create_cookie
    - warnings.warn
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - h.lower
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    - pip._vendor.requests.api.request
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 148
    functionName: pip._vendor.requests.api.delete
    functionSourceFile: pip._vendor.requests.api
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - session.request
    - <builtin>.frozenset
    - pip._vendor.requests.adapters.HTTPAdapter.__init__
    - log.debug
    - pip._vendor.requests.sessions.Session.mount
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.utils.default_headers
    - pip._vendor.requests.sessions.Session.__init__
    - <builtin>.set
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - result.update
    - <builtin>.tuple
    - collections.OrderedDict.pop
    - <builtin>.super
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    - <builtin>.len
    - cookie.value.endswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    - pip._vendor.requests.utils.default_user_agent
    - _collections.RecentlyUsedContainer
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - collections.OrderedDict
    - key_fn_by_scheme.copy
    - pip._vendor.requests.cookies.create_cookie
    - warnings.warn
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - h.lower
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    - pip._vendor.requests.api.request
    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: pip._vendor.requests.sessions
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30d37101c0>
    argNames:
    - request_setting
    - session_setting
    - dict_class
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 61
    functionName: pip._vendor.requests.sessions.merge_setting
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 25
    functionsReached:
    - merged_setting.items
    - <builtin>.isinstance
    - collections.OrderedDict
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - merged_setting.update
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: merged_setting.update
    functionSourceFile: <builtin>
    functionUses: 26
    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: merged_setting.items
    functionSourceFile: <builtin>
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30f2112be0>
    argNames:
    - request_hooks
    - session_hooks
    - dict_class
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 91
    functionName: pip._vendor.requests.sessions.merge_hooks
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 23
    functionsReached:
    - session_hooks.get
    - merged_setting.items
    - <builtin>.isinstance
    - collections.OrderedDict
    - request_hooks.get
    - pip._vendor.requests.sessions.merge_setting
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - merged_setting.update
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: session_hooks.get
    functionSourceFile: <builtin>
    functionUses: 24
    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: request_hooks.get
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resp
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 107
    functionName: pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 24
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.requests._internal_utils.to_native_string
    - location.encode
    - urllib.parse.urljoin.decode
    - urllib.parse.quote.decode
    - collections.abc.MutableMapping.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: location.encode
    functionSourceFile: <builtin>
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - old_url
    - new_url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 127
    functionName: pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 25
    functionsReached:
    - urllib.parse.urlparse
    - DEFAULT_PORTS.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: DEFAULT_PORTS.get
    functionSourceFile: <builtin>
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 16
    IfCount: 8
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8a3e790>
    - <ast.Constant object at 0x7f30d8a3e040>
    - <ast.Constant object at 0x7f30d8a3e8b0>
    - <ast.Constant object at 0x7f30d8a3e9d0>
    - <ast.Constant object at 0x7f30f9933b20>
    - <ast.Constant object at 0x7f30f99330a0>
    argNames:
    - self
    - resp
    - req
    - stream
    - timeout
    - verify
    - cert
    - proxies
    - yield_requests
    - adapter_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 159
    functionName: pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 23
    functionsReached:
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - h.isalnum
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - urllib.parse.quote.split
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - socket.inet_ntoa
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - urllib.parse.urlparse.netloc.split
    - collections.abc.MutableMapping.get
    - result.update
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - password.encode
    - os.path.expanduser
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - urllib.request.getproxies
    - urllib.parse.urljoin.seek
    - pip._vendor.requests.utils.should_bypass_proxies
    - string_network.count
    - adapter.send
    - urllib.parse.urlparse._replace
    - collections.OrderedDict
    - urllib.parse.quote
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - collections.abc.MutableMapping.decode
    - <builtin>.hasattr
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.requests.utils.get_auth_from_url
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - pip._vendor.requests.utils.dotted_netmask
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - no_proxy.replace
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - urllib.parse.urljoin.split
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - DEFAULT_PORTS.get
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - pip._vendor.requests.sessions.Session.get_adapter
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - netrc.netrc.authenticators
    - <builtin>.chr
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - warnings.warn
    - proxies.get
    - base64.b64encode.strip
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.max
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - socket.inet_aton
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - <builtin>.bool
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - os.fstat
    - os.environ.get
    - http.cookiejar.CookieJar.set_policy
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - resp.close
    - hooks.get
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.utils.unquote_unreserved
    - <builtin>.len
    - urllib.parse.urljoin.lower
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - http.cookiejar.CookieJar.extract_cookies
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - splitstr.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - collections.OrderedDict.values
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - urllib.request.proxy_bypass
    - <builtin>.getattr
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - <builtin>.type
    - urllib.parse.unquote
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - urllib.parse.urlparse.geturl
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - netrc.netrc
    - history.pop
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.auth._basic_auth_str
    - pip._vendor.requests.cookies.MockResponse.__init__
    - hist.append
    - copy.copy
    - kwargs.setdefault
    - resp.raw.read
    - <builtin>.set
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - urllib.parse.quote.decode
    - pip._vendor.requests.utils.is_ipv4_address
    - pip._vendor.requests.utils.get_netrc_auth
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - proxies.copy
    - <builtin>.next
    - collections.abc.MutableMapping.lower
    - urllib.parse.urljoin.startswith
    - prefix.lower
    - http.cookiejar.Cookie
    - pip._vendor.requests.utils.requote_uri
    - kwargs.get
    - new_proxies.setdefault
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    linkageType: pythonLinkage
    raised:
    - TooManyRedirects
    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: hist.append
    functionSourceFile: <builtin>
    functionUses: 24
    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: resp.raw.read
    functionSourceFile: <builtin>
    functionUses: 24
    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: resp.close
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote.startswith
    functionSourceFile: urllib
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin.startswith
    functionSourceFile: urllib
    functionUses: 24
    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.abc.MutableMapping.startswith
    functionSourceFile: collections
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse._replace
    functionSourceFile: urllib
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prepared_request
    - response
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 334
    functionName: pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    functionSourceFile: ''
    functionUses: 24
    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.abc.MutableMapping.pop
    functionSourceFile: collections
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prepared_request
    - proxies
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 303
    functionName: pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 24
    functionsReached:
    - urllib.parse.unquote
    - <builtin>.isinstance
    - pip._vendor.requests.utils.get_auth_from_url
    - socket.inet_aton
    - base64.b64encode
    - urllib.parse.urlparse.hostname.endswith
    - urllib.parse.urljoin.decode
    - pip._vendor.requests.utils.dotted_netmask
    - socket.inet_ntoa
    - os.environ.get
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - urllib.request.getproxies.get
    - no_proxy.replace
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - pip._vendor.requests.auth._basic_auth_str
    - pip._vendor.requests.utils.address_in_network
    - password.encode
    - urllib.parse.quote.decode
    - pip._vendor.requests.utils.is_ipv4_address
    - struct.unpack
    - struct.pack
    - username.encode
    - key.upper
    - proxies.copy
    - urllib.request.getproxies
    - pip._vendor.requests.utils.should_bypass_proxies
    - string_network.count
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - new_proxies.setdefault
    - pip._vendor.requests.utils.resolve_proxies
    - warnings.warn
    - pip._vendor.requests.utils.get_environ_proxies
    - proxies.get
    - urllib.request.proxy_bypass
    - base64.b64encode.strip
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.requests.utils.set_environ
    - urllib.parse.urlparse
    - collections.abc.MutableMapping.decode
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prepared_request
    - response
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 283
    functionName: pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 24
    functionsReached:
    - urllib.parse.unquote
    - urllib.parse.urlencode.seek
    - collections.abc.MutableMapping.fileno
    - <builtin>.isinstance
    - pip._vendor.requests.utils.get_auth_from_url
    - collections.abc.MutableMapping.tell
    - urllib.parse.urljoin.fileno
    - urllib.parse.quote.fileno
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - os.fstat
    - urllib.parse.urlencode.fileno
    - os.environ.get
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - netrc.netrc
    - urllib.parse.urlparse.netloc.split
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - DEFAULT_PORTS.get
    - urllib.parse.quote.tell
    - os.path.expanduser
    - pip._vendor.requests.utils.get_netrc_auth
    - <builtin>.any
    - collections.abc.MutableMapping.seek
    - <builtin>.len
    - netrc.netrc.authenticators
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - splitstr.decode
    - urllib.parse.urljoin.seek
    - os.path.exists
    - collections.OrderedDict
    - warnings.warn
    - urllib.parse.urljoin.tell
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - urllib.parse.urlencode.tell
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - <builtin>.max
    - urllib.parse.urlparse
    - urllib.parse.quote.seek
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 8
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - request
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 673
    functionName: pip._vendor.requests.sessions.Session.send
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 23
    functionsReached:
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - h.isalnum
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - urllib.parse.quote.split
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - socket.inet_ntoa
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - urllib.parse.urlparse.netloc.split
    - collections.abc.MutableMapping.get
    - result.update
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - password.encode
    - os.path.expanduser
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - urllib.request.getproxies
    - adapter.send
    - urllib.parse.urljoin.seek
    - pip._vendor.requests.utils.should_bypass_proxies
    - string_network.count
    - urllib.parse.urlparse._replace
    - collections.OrderedDict
    - urllib.parse.quote
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - collections.abc.MutableMapping.decode
    - <builtin>.hasattr
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.requests.utils.get_auth_from_url
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - pip._vendor.requests.utils.dotted_netmask
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - no_proxy.replace
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - urllib.parse.urljoin.split
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - DEFAULT_PORTS.get
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - pip._vendor.requests.sessions.Session.get_adapter
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - netrc.netrc.authenticators
    - <builtin>.chr
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - warnings.warn
    - proxies.get
    - base64.b64encode.strip
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.max
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - socket.inet_aton
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - <builtin>.bool
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - os.fstat
    - os.environ.get
    - http.cookiejar.CookieJar.set_policy
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - resp.close
    - hooks.get
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.utils.unquote_unreserved
    - <builtin>.len
    - urllib.parse.urljoin.lower
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - http.cookiejar.CookieJar.extract_cookies
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - splitstr.decode
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - collections.OrderedDict.values
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - urllib.request.proxy_bypass
    - <builtin>.getattr
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - <builtin>.type
    - urllib.parse.unquote
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - urllib.parse.urlparse.geturl
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - netrc.netrc
    - history.pop
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - kwargs.setdefault
    - pip._vendor.requests.auth._basic_auth_str
    - hist.append
    - copy.copy
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - <builtin>.set
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - urllib.parse.quote.decode
    - pip._vendor.requests.utils.is_ipv4_address
    - pip._vendor.requests.utils.get_netrc_auth
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - proxies.copy
    - <builtin>.next
    - collections.abc.MutableMapping.lower
    - urllib.parse.urljoin.startswith
    - prefix.lower
    - http.cookiejar.Cookie
    - pip._vendor.requests.utils.requote_uri
    - kwargs.get
    - new_proxies.setdefault
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse.scheme.startswith
    functionSourceFile: urllib
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 453
    functionName: pip._vendor.requests.sessions.Session.__enter__
    functionSourceFile: pip._vendor.requests.sessions
    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
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 456
    functionName: pip._vendor.requests.sessions.Session.__exit__
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 0
    functionsReached:
    - pip._vendor.requests.sessions.Session.close
    - v.close
    - collections.OrderedDict.values
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 796
    functionName: pip._vendor.requests.sessions.Session.close
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 1
    functionsReached:
    - collections.OrderedDict.values
    - v.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 459
    functionName: pip._vendor.requests.sessions.Session.prepare_request
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 22
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - h.isalnum
    - urllib.parse.quote.split
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - path.split
    - <builtin>.dict
    - SCHEME_RE.search
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - result.update
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - os.path.expanduser
    - pip._vendor.requests.sessions.merge_hooks
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - merged_setting.items
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.parse.urljoin.seek
    - session_hooks.get
    - pip._vendor.urllib3.fields.guess_content_type
    - u_string.encode
    - scheme.lower
    - os.path.basename
    - collections.OrderedDict
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.packages.six.b
    - collections.abc.MutableMapping.update
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - urllib.parse.quote.lstrip
    - urllib.parse.urlparse
    - collections.abc.MutableMapping.decode
    - <builtin>.hasattr
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - <builtin>.object
    - URI_RE.match
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - pip._vendor.urllib3.filepost.choose_boundary
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - path.startswith
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.get_cookie_header
    - urllib.parse.urlunparse
    - output.insert
    - <builtin>.iter
    - d.iteritems
    - urllib.parse.quote.upper
    - netrc.netrc.authenticators
    - match.span
    - <builtin>.chr
    - os.path.exists
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.requests.sessions.merge_setting
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - field.decode
    - urllib.parse.urlencode.tell
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - request.method.upper
    - validator.match
    - v.encode
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - <builtin>.bool
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - HTTPError.__init__
    - os.fstat
    - os.environ.get
    - path.endswith
    - component.encode
    - pip._vendor.requests.cookies.MockRequest.__init__
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - s.decode
    - request_hooks.get
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - uri_bytes.count
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - <builtin>.hex
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - splitstr.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - collections.OrderedDict.values
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.getattr
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - IPV4_RE.match
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - urllib.parse.urlencode.fileno
    - output.append
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.urllib3.fields.RequestField.__init__
    - urllib.parse.urljoin.upper
    - netrc.netrc
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - io.BytesIO.write
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - <builtin>.set
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - merged_setting.update
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - boundary.decode
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - fp.read
    - zone_id.startswith
    - http.cookiejar.Cookie
    - pip._vendor.requests.utils.requote_uri
    - urllib.parse.urljoin.tell
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    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: request.method.upper
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 17
    argDefaultValues:
    - <ast.Constant object at 0x7f30d3700190>
    - <ast.Constant object at 0x7f30d3700160>
    - <ast.Constant object at 0x7f30d3700130>
    - <ast.Constant object at 0x7f30d3700100>
    - <ast.Constant object at 0x7f30d37000d0>
    - <ast.Constant object at 0x7f30d37000a0>
    - <ast.Constant object at 0x7f30d3700070>
    - <ast.Constant object at 0x7f30d3700040>
    - <ast.Constant object at 0x7f30d36fdfd0>
    - <ast.Constant object at 0x7f30d36fdfa0>
    - <ast.Constant object at 0x7f30d36fdf70>
    - <ast.Constant object at 0x7f30d36fdf40>
    - <ast.Constant object at 0x7f30d36fdf10>
    - <ast.Constant object at 0x7f30d36fdee0>
    argNames:
    - self
    - method
    - url
    - params
    - data
    - headers
    - cookies
    - files
    - auth
    - timeout
    - allow_redirects
    - proxies
    - hooks
    - stream
    - verify
    - cert
    - json
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 502
    functionName: pip._vendor.requests.sessions.Session.request
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 21
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - h.isalnum
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - path.split
    - <builtin>.dict
    - socket.inet_ntoa
    - urllib.parse.quote.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - SCHEME_RE.search
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - password.encode
    - result.update
    - os.path.expanduser
    - pip._vendor.requests.sessions.merge_hooks
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - merged_setting.items
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.request.getproxies
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - u_string.encode
    - urllib.parse.urljoin.seek
    - urllib.parse.urlparse._replace
    - os.path.basename
    - string_network.count
    - scheme.lower
    - pip._vendor.urllib3.fields.guess_content_type
    - collections.OrderedDict
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.packages.six.b
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - <builtin>.hasattr
    - collections.abc.MutableMapping.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - base64.b64encode
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._vendor.requests.utils.dotted_netmask
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.models.Request.__init__
    - urllib.request.getproxies.items
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - encoded_component.extend
    - no_proxy.replace
    - pip._vendor.urllib3.util.url.parse_url
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - DEFAULT_PORTS.get
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - path.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - urllib.parse.urlunparse
    - output.insert
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - d.iteritems
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - urllib.parse.quote.upper
    - netrc.netrc.authenticators
    - match.span
    - <builtin>.chr
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.requests.sessions.merge_setting
    - proxies.get
    - base64.b64encode.strip
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - field.decode
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - validator.match
    - v.encode
    - socket.inet_aton
    - io.BytesIO.getvalue
    - <builtin>.bool
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - HTTPError.__init__
    - os.fstat
    - os.environ.get
    - send_kwargs.update
    - path.endswith
    - http.cookiejar.CookieJar.set_policy
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - resp.close
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - hooks.get
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - request_hooks.get
    - s.decode
    - urllib.parse.urljoin.lower
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - uri_bytes.count
    - <builtin>.hex
    - http.cookiejar.CookieJar.extract_cookies
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - splitstr.decode
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - collections.OrderedDict.values
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - <builtin>.getattr
    - urllib.request.proxy_bypass
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - IPV4_RE.match
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - method.upper
    - urllib.parse.urlparse.geturl
    - output.append
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - history.pop
    - netrc.netrc
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - kwargs.setdefault
    - pip._vendor.requests.auth._basic_auth_str
    - hist.append
    - copy.copy
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - <builtin>.set
    - merged_setting.update
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - hooks.items
    - cookie.value.endswith
    - boundary.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - collections.abc.MutableMapping.lower
    - fp.read
    - <builtin>.next
    - urllib.parse.urljoin.startswith
    - prefix.lower
    - zone_id.startswith
    - pip._vendor.requests.utils.requote_uri
    - http.cookiejar.Cookie
    - kwargs.get
    - new_proxies.setdefault
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - url
    - proxies
    - stream
    - verify
    - cert
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 751
    functionName: pip._vendor.requests.sessions.Session.merge_environment_settings
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 22
    functionsReached:
    - <builtin>.isinstance
    - socket.inet_aton
    - pip._vendor.requests.utils.to_key_val_list
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.utils.dotted_netmask
    - socket.inet_ntoa
    - urllib.request.getproxies.items
    - os.environ.get
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - no_proxy.replace
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - pip._vendor.requests.utils.address_in_network
    - collections.abc.MutableMapping.get
    - merged_setting.update
    - <builtin>.list
    - pip._vendor.requests.utils.is_ipv4_address
    - merged_setting.items
    - struct.unpack
    - struct.pack
    - key.upper
    - collections.abc.MutableMapping.setdefault
    - urllib.request.getproxies
    - pip._vendor.requests.utils.should_bypass_proxies
    - string_network.count
    - <builtin>.int
    - collections.OrderedDict
    - pip._vendor.requests.utils.get_environ_proxies
    - pip._vendor.requests.sessions.merge_setting
    - urllib.request.proxy_bypass
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.utils.set_environ
    - collections.abc.MutableMapping.items
    - urllib.parse.urlparse
    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: send_kwargs.update
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 593
    functionName: pip._vendor.requests.sessions.Session.get
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 14
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - h.isalnum
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - path.split
    - <builtin>.dict
    - socket.inet_ntoa
    - urllib.parse.quote.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - SCHEME_RE.search
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - password.encode
    - result.update
    - os.path.expanduser
    - pip._vendor.requests.sessions.merge_hooks
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - merged_setting.items
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - pip._vendor.requests.sessions.Session.request
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.request.getproxies
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - u_string.encode
    - urllib.parse.urljoin.seek
    - urllib.parse.urlparse._replace
    - scheme.lower
    - string_network.count
    - os.path.basename
    - pip._vendor.urllib3.fields.guess_content_type
    - collections.OrderedDict
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.packages.six.b
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - <builtin>.hasattr
    - collections.abc.MutableMapping.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - base64.b64encode
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._vendor.requests.utils.dotted_netmask
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.models.Request.__init__
    - urllib.request.getproxies.items
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - encoded_component.extend
    - no_proxy.replace
    - pip._vendor.urllib3.util.url.parse_url
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - DEFAULT_PORTS.get
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - path.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - urllib.parse.urlunparse
    - output.insert
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - d.iteritems
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - urllib.parse.quote.upper
    - netrc.netrc.authenticators
    - match.span
    - <builtin>.chr
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.requests.sessions.merge_setting
    - proxies.get
    - base64.b64encode.strip
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - field.decode
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - validator.match
    - v.encode
    - socket.inet_aton
    - <builtin>.bool
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - HTTPError.__init__
    - os.fstat
    - os.environ.get
    - send_kwargs.update
    - path.endswith
    - http.cookiejar.CookieJar.set_policy
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - resp.close
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - hooks.get
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - request_hooks.get
    - s.decode
    - urllib.parse.urljoin.lower
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - uri_bytes.count
    - <builtin>.hex
    - http.cookiejar.CookieJar.extract_cookies
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - splitstr.decode
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - pip._vendor.urllib3.util.url._normalize_host
    - collections.OrderedDict.values
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - <builtin>.all
    - <builtin>.getattr
    - urllib.request.proxy_bypass
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - IPV4_RE.match
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - method.upper
    - urllib.parse.urlparse.geturl
    - output.append
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - history.pop
    - netrc.netrc
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - kwargs.setdefault
    - pip._vendor.requests.auth._basic_auth_str
    - hist.append
    - copy.copy
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - <builtin>.set
    - merged_setting.update
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - hooks.items
    - cookie.value.endswith
    - boundary.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - collections.abc.MutableMapping.lower
    - fp.read
    - <builtin>.next
    - urllib.parse.urljoin.startswith
    - prefix.lower
    - zone_id.startswith
    - pip._vendor.requests.utils.requote_uri
    - http.cookiejar.Cookie
    - kwargs.get
    - new_proxies.setdefault
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 604
    functionName: pip._vendor.requests.sessions.Session.options
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 0
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - h.isalnum
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - path.split
    - <builtin>.dict
    - socket.inet_ntoa
    - urllib.parse.quote.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - SCHEME_RE.search
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - password.encode
    - result.update
    - os.path.expanduser
    - pip._vendor.requests.sessions.merge_hooks
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - merged_setting.items
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - pip._vendor.requests.sessions.Session.request
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.request.getproxies
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - u_string.encode
    - urllib.parse.urljoin.seek
    - urllib.parse.urlparse._replace
    - scheme.lower
    - string_network.count
    - os.path.basename
    - pip._vendor.urllib3.fields.guess_content_type
    - collections.OrderedDict
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.packages.six.b
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - <builtin>.hasattr
    - collections.abc.MutableMapping.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - base64.b64encode
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._vendor.requests.utils.dotted_netmask
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.models.Request.__init__
    - urllib.request.getproxies.items
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - encoded_component.extend
    - no_proxy.replace
    - pip._vendor.urllib3.util.url.parse_url
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - DEFAULT_PORTS.get
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - path.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - urllib.parse.urlunparse
    - output.insert
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - d.iteritems
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - urllib.parse.quote.upper
    - netrc.netrc.authenticators
    - match.span
    - <builtin>.chr
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.requests.sessions.merge_setting
    - proxies.get
    - base64.b64encode.strip
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - field.decode
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - validator.match
    - v.encode
    - socket.inet_aton
    - <builtin>.bool
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - HTTPError.__init__
    - os.fstat
    - os.environ.get
    - send_kwargs.update
    - path.endswith
    - http.cookiejar.CookieJar.set_policy
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - resp.close
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - hooks.get
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - request_hooks.get
    - s.decode
    - urllib.parse.urljoin.lower
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - uri_bytes.count
    - <builtin>.hex
    - http.cookiejar.CookieJar.extract_cookies
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - splitstr.decode
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - pip._vendor.urllib3.util.url._normalize_host
    - collections.OrderedDict.values
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - <builtin>.all
    - <builtin>.getattr
    - urllib.request.proxy_bypass
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - IPV4_RE.match
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - method.upper
    - urllib.parse.urlparse.geturl
    - output.append
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - history.pop
    - netrc.netrc
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - kwargs.setdefault
    - pip._vendor.requests.auth._basic_auth_str
    - hist.append
    - copy.copy
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - <builtin>.set
    - merged_setting.update
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - hooks.items
    - cookie.value.endswith
    - boundary.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - collections.abc.MutableMapping.lower
    - fp.read
    - <builtin>.next
    - urllib.parse.urljoin.startswith
    - prefix.lower
    - zone_id.startswith
    - pip._vendor.requests.utils.requote_uri
    - http.cookiejar.Cookie
    - kwargs.get
    - new_proxies.setdefault
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 615
    functionName: pip._vendor.requests.sessions.Session.head
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 0
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - h.isalnum
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - path.split
    - <builtin>.dict
    - socket.inet_ntoa
    - urllib.parse.quote.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - SCHEME_RE.search
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - password.encode
    - result.update
    - os.path.expanduser
    - pip._vendor.requests.sessions.merge_hooks
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - merged_setting.items
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - pip._vendor.requests.sessions.Session.request
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.request.getproxies
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - u_string.encode
    - urllib.parse.urljoin.seek
    - urllib.parse.urlparse._replace
    - scheme.lower
    - string_network.count
    - os.path.basename
    - pip._vendor.urllib3.fields.guess_content_type
    - collections.OrderedDict
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.packages.six.b
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - <builtin>.hasattr
    - collections.abc.MutableMapping.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - base64.b64encode
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._vendor.requests.utils.dotted_netmask
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.models.Request.__init__
    - urllib.request.getproxies.items
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - encoded_component.extend
    - no_proxy.replace
    - pip._vendor.urllib3.util.url.parse_url
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - DEFAULT_PORTS.get
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - path.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - urllib.parse.urlunparse
    - output.insert
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - d.iteritems
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - urllib.parse.quote.upper
    - netrc.netrc.authenticators
    - match.span
    - <builtin>.chr
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.requests.sessions.merge_setting
    - proxies.get
    - base64.b64encode.strip
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - field.decode
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - validator.match
    - v.encode
    - socket.inet_aton
    - <builtin>.bool
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - HTTPError.__init__
    - os.fstat
    - os.environ.get
    - send_kwargs.update
    - path.endswith
    - http.cookiejar.CookieJar.set_policy
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - resp.close
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - hooks.get
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - request_hooks.get
    - s.decode
    - urllib.parse.urljoin.lower
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - uri_bytes.count
    - <builtin>.hex
    - http.cookiejar.CookieJar.extract_cookies
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - splitstr.decode
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - pip._vendor.urllib3.util.url._normalize_host
    - collections.OrderedDict.values
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - <builtin>.all
    - <builtin>.getattr
    - urllib.request.proxy_bypass
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - IPV4_RE.match
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - method.upper
    - urllib.parse.urlparse.geturl
    - output.append
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - history.pop
    - netrc.netrc
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - kwargs.setdefault
    - pip._vendor.requests.auth._basic_auth_str
    - hist.append
    - copy.copy
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - <builtin>.set
    - merged_setting.update
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - hooks.items
    - cookie.value.endswith
    - boundary.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - collections.abc.MutableMapping.lower
    - fp.read
    - <builtin>.next
    - urllib.parse.urljoin.startswith
    - prefix.lower
    - zone_id.startswith
    - pip._vendor.requests.utils.requote_uri
    - http.cookiejar.Cookie
    - kwargs.get
    - new_proxies.setdefault
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d36ad0a0>
    - <ast.Constant object at 0x7f30d36ad070>
    argNames:
    - self
    - url
    - data
    - json
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 626
    functionName: pip._vendor.requests.sessions.Session.post
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 0
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - h.isalnum
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - path.split
    - <builtin>.dict
    - socket.inet_ntoa
    - urllib.parse.quote.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - SCHEME_RE.search
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - password.encode
    - result.update
    - os.path.expanduser
    - pip._vendor.requests.sessions.merge_hooks
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - merged_setting.items
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - pip._vendor.requests.sessions.Session.request
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.request.getproxies
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - u_string.encode
    - urllib.parse.urljoin.seek
    - urllib.parse.urlparse._replace
    - scheme.lower
    - string_network.count
    - os.path.basename
    - pip._vendor.urllib3.fields.guess_content_type
    - collections.OrderedDict
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.packages.six.b
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - <builtin>.hasattr
    - collections.abc.MutableMapping.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - base64.b64encode
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._vendor.requests.utils.dotted_netmask
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.models.Request.__init__
    - urllib.request.getproxies.items
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - encoded_component.extend
    - no_proxy.replace
    - pip._vendor.urllib3.util.url.parse_url
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - DEFAULT_PORTS.get
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - path.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - urllib.parse.urlunparse
    - output.insert
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - d.iteritems
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - urllib.parse.quote.upper
    - netrc.netrc.authenticators
    - match.span
    - <builtin>.chr
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.requests.sessions.merge_setting
    - proxies.get
    - base64.b64encode.strip
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - field.decode
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - validator.match
    - v.encode
    - socket.inet_aton
    - <builtin>.bool
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - HTTPError.__init__
    - os.fstat
    - os.environ.get
    - send_kwargs.update
    - path.endswith
    - http.cookiejar.CookieJar.set_policy
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - resp.close
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - hooks.get
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - request_hooks.get
    - s.decode
    - urllib.parse.urljoin.lower
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - uri_bytes.count
    - <builtin>.hex
    - http.cookiejar.CookieJar.extract_cookies
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - splitstr.decode
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - pip._vendor.urllib3.util.url._normalize_host
    - collections.OrderedDict.values
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - <builtin>.all
    - <builtin>.getattr
    - urllib.request.proxy_bypass
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - IPV4_RE.match
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - method.upper
    - urllib.parse.urlparse.geturl
    - output.append
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - history.pop
    - netrc.netrc
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - kwargs.setdefault
    - pip._vendor.requests.auth._basic_auth_str
    - hist.append
    - copy.copy
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - <builtin>.set
    - merged_setting.update
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - hooks.items
    - cookie.value.endswith
    - boundary.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - collections.abc.MutableMapping.lower
    - fp.read
    - <builtin>.next
    - urllib.parse.urljoin.startswith
    - prefix.lower
    - zone_id.startswith
    - pip._vendor.requests.utils.requote_uri
    - http.cookiejar.Cookie
    - kwargs.get
    - new_proxies.setdefault
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    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 0x7f30d36aabe0>
    argNames:
    - self
    - url
    - data
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 639
    functionName: pip._vendor.requests.sessions.Session.put
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 0
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - h.isalnum
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - path.split
    - <builtin>.dict
    - socket.inet_ntoa
    - urllib.parse.quote.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - SCHEME_RE.search
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - password.encode
    - result.update
    - os.path.expanduser
    - pip._vendor.requests.sessions.merge_hooks
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - merged_setting.items
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - pip._vendor.requests.sessions.Session.request
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.request.getproxies
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - u_string.encode
    - urllib.parse.urljoin.seek
    - urllib.parse.urlparse._replace
    - scheme.lower
    - string_network.count
    - os.path.basename
    - pip._vendor.urllib3.fields.guess_content_type
    - collections.OrderedDict
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.packages.six.b
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - <builtin>.hasattr
    - collections.abc.MutableMapping.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - base64.b64encode
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._vendor.requests.utils.dotted_netmask
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.models.Request.__init__
    - urllib.request.getproxies.items
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - encoded_component.extend
    - no_proxy.replace
    - pip._vendor.urllib3.util.url.parse_url
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - DEFAULT_PORTS.get
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - path.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - urllib.parse.urlunparse
    - output.insert
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - d.iteritems
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - urllib.parse.quote.upper
    - netrc.netrc.authenticators
    - match.span
    - <builtin>.chr
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.requests.sessions.merge_setting
    - proxies.get
    - base64.b64encode.strip
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - field.decode
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - validator.match
    - v.encode
    - socket.inet_aton
    - <builtin>.bool
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - HTTPError.__init__
    - os.fstat
    - os.environ.get
    - send_kwargs.update
    - path.endswith
    - http.cookiejar.CookieJar.set_policy
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - resp.close
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - hooks.get
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - request_hooks.get
    - s.decode
    - urllib.parse.urljoin.lower
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - uri_bytes.count
    - <builtin>.hex
    - http.cookiejar.CookieJar.extract_cookies
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - splitstr.decode
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - pip._vendor.urllib3.util.url._normalize_host
    - collections.OrderedDict.values
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - <builtin>.all
    - <builtin>.getattr
    - urllib.request.proxy_bypass
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - IPV4_RE.match
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - method.upper
    - urllib.parse.urlparse.geturl
    - output.append
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - history.pop
    - netrc.netrc
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - kwargs.setdefault
    - pip._vendor.requests.auth._basic_auth_str
    - hist.append
    - copy.copy
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - <builtin>.set
    - merged_setting.update
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - hooks.items
    - cookie.value.endswith
    - boundary.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - collections.abc.MutableMapping.lower
    - fp.read
    - <builtin>.next
    - urllib.parse.urljoin.startswith
    - prefix.lower
    - zone_id.startswith
    - pip._vendor.requests.utils.requote_uri
    - http.cookiejar.Cookie
    - kwargs.get
    - new_proxies.setdefault
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    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 0x7f30d36aa7f0>
    argNames:
    - self
    - url
    - data
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 651
    functionName: pip._vendor.requests.sessions.Session.patch
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 0
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - h.isalnum
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - path.split
    - <builtin>.dict
    - socket.inet_ntoa
    - urllib.parse.quote.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - SCHEME_RE.search
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - password.encode
    - result.update
    - os.path.expanduser
    - pip._vendor.requests.sessions.merge_hooks
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - merged_setting.items
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - pip._vendor.requests.sessions.Session.request
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.request.getproxies
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - u_string.encode
    - urllib.parse.urljoin.seek
    - urllib.parse.urlparse._replace
    - scheme.lower
    - string_network.count
    - os.path.basename
    - pip._vendor.urllib3.fields.guess_content_type
    - collections.OrderedDict
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.packages.six.b
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - <builtin>.hasattr
    - collections.abc.MutableMapping.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - base64.b64encode
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._vendor.requests.utils.dotted_netmask
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.models.Request.__init__
    - urllib.request.getproxies.items
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - encoded_component.extend
    - no_proxy.replace
    - pip._vendor.urllib3.util.url.parse_url
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - DEFAULT_PORTS.get
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - path.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - urllib.parse.urlunparse
    - output.insert
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - d.iteritems
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - urllib.parse.quote.upper
    - netrc.netrc.authenticators
    - match.span
    - <builtin>.chr
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.requests.sessions.merge_setting
    - proxies.get
    - base64.b64encode.strip
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - field.decode
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - validator.match
    - v.encode
    - socket.inet_aton
    - <builtin>.bool
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - HTTPError.__init__
    - os.fstat
    - os.environ.get
    - send_kwargs.update
    - path.endswith
    - http.cookiejar.CookieJar.set_policy
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - resp.close
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - hooks.get
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - request_hooks.get
    - s.decode
    - urllib.parse.urljoin.lower
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - uri_bytes.count
    - <builtin>.hex
    - http.cookiejar.CookieJar.extract_cookies
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - splitstr.decode
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - pip._vendor.urllib3.util.url._normalize_host
    - collections.OrderedDict.values
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - <builtin>.all
    - <builtin>.getattr
    - urllib.request.proxy_bypass
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - IPV4_RE.match
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - method.upper
    - urllib.parse.urlparse.geturl
    - output.append
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - history.pop
    - netrc.netrc
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - kwargs.setdefault
    - pip._vendor.requests.auth._basic_auth_str
    - hist.append
    - copy.copy
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - <builtin>.set
    - merged_setting.update
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - hooks.items
    - cookie.value.endswith
    - boundary.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - collections.abc.MutableMapping.lower
    - fp.read
    - <builtin>.next
    - urllib.parse.urljoin.startswith
    - prefix.lower
    - zone_id.startswith
    - pip._vendor.requests.utils.requote_uri
    - http.cookiejar.Cookie
    - kwargs.get
    - new_proxies.setdefault
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 663
    functionName: pip._vendor.requests.sessions.Session.delete
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 0
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - h.isalnum
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - path.split
    - <builtin>.dict
    - socket.inet_ntoa
    - urllib.parse.quote.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - SCHEME_RE.search
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - urllib.parse.quote.tell
    - password.encode
    - result.update
    - os.path.expanduser
    - pip._vendor.requests.sessions.merge_hooks
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - merged_setting.items
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - pip._vendor.requests.sessions.Session.request
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.request.getproxies
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - u_string.encode
    - urllib.parse.urljoin.seek
    - urllib.parse.urlparse._replace
    - scheme.lower
    - string_network.count
    - os.path.basename
    - pip._vendor.urllib3.fields.guess_content_type
    - collections.OrderedDict
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._vendor.urllib3.packages.six.b
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - <builtin>.hasattr
    - collections.abc.MutableMapping.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - base64.b64encode
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._vendor.requests.utils.dotted_netmask
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.models.Request.__init__
    - urllib.request.getproxies.items
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - encoded_component.extend
    - no_proxy.replace
    - pip._vendor.urllib3.util.url.parse_url
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - DEFAULT_PORTS.get
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - path.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - urllib.parse.urlunparse
    - output.insert
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - d.iteritems
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - urllib.parse.quote.upper
    - netrc.netrc.authenticators
    - match.span
    - <builtin>.chr
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.requests.sessions.merge_setting
    - proxies.get
    - base64.b64encode.strip
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - field.decode
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - validator.match
    - v.encode
    - socket.inet_aton
    - <builtin>.bool
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - HTTPError.__init__
    - os.fstat
    - os.environ.get
    - send_kwargs.update
    - path.endswith
    - http.cookiejar.CookieJar.set_policy
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - resp.close
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - hooks.get
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - request_hooks.get
    - s.decode
    - urllib.parse.urljoin.lower
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - uri_bytes.count
    - <builtin>.hex
    - http.cookiejar.CookieJar.extract_cookies
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - splitstr.decode
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - pip._vendor.urllib3.util.url._normalize_host
    - collections.OrderedDict.values
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - <builtin>.all
    - <builtin>.getattr
    - urllib.request.proxy_bypass
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - IPV4_RE.match
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - method.upper
    - urllib.parse.urlparse.geturl
    - output.append
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - history.pop
    - netrc.netrc
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - kwargs.setdefault
    - pip._vendor.requests.auth._basic_auth_str
    - hist.append
    - copy.copy
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - <builtin>.set
    - merged_setting.update
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - hooks.items
    - cookie.value.endswith
    - boundary.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - collections.abc.MutableMapping.lower
    - fp.read
    - <builtin>.next
    - urllib.parse.urljoin.startswith
    - prefix.lower
    - zone_id.startswith
    - pip._vendor.requests.utils.requote_uri
    - http.cookiejar.Cookie
    - kwargs.get
    - new_proxies.setdefault
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 782
    functionName: pip._vendor.requests.sessions.Session.get_adapter
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 24
    functionsReached:
    - prefix.lower
    - urllib.parse.quote.lower
    - urllib.parse.urljoin.lower
    - collections.OrderedDict.items
    - collections.abc.MutableMapping.lower
    linkageType: pythonLinkage
    raised:
    - InvalidSchema
    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: time.perf_counter
    functionSourceFile: time
    functionUses: 24
    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: adapter.send
    functionSourceFile: <builtin>
    functionUses: 24
    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: history.insert
    functionSourceFile: <builtin>
    functionUses: 24
    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: history.pop
    functionSourceFile: <builtin>
    functionUses: 24
    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.getproxies.items
    functionSourceFile: urllib
    functionUses: 23
    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.abc.MutableMapping.setdefault
    functionSourceFile: collections
    functionUses: 23
    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: prefix.lower
    functionSourceFile: <builtin>
    functionUses: 25
    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.abc.MutableMapping.lower
    functionSourceFile: collections
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin.lower
    functionSourceFile: urllib
    functionUses: 25
    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: v.close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.OrderedDict.pop
    functionSourceFile: collections
    functionUses: 36
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 812
    functionName: pip._vendor.requests.sessions.Session.__getstate__
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 816
    functionName: pip._vendor.requests.sessions.Session.__setstate__
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 0
    functionsReached:
    - state.items
    - <builtin>.setattr
    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: 5
    functionLinenumber: 821
    functionName: pip._vendor.requests.sessions.session
    functionSourceFile: pip._vendor.requests.sessions
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - <builtin>.isinstance
    - cookie.value.replace
    - <builtin>.bool
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - <builtin>.frozenset
    - pip._vendor.requests.adapters.HTTPAdapter.__init__
    - log.debug
    - pip._vendor.requests.sessions.Session.mount
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.utils.default_headers
    - pip._vendor.requests.sessions.Session.__init__
    - <builtin>.set
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - result.update
    - <builtin>.tuple
    - collections.OrderedDict.pop
    - <builtin>.super
    - pip._vendor.urllib3.poolmanager.PoolManager.__init__
    - <builtin>.len
    - cookie.value.endswith
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager
    - pip._vendor.requests.utils.default_user_agent
    - _collections.RecentlyUsedContainer
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - http.cookiejar.Cookie
    - collections.OrderedDict
    - key_fn_by_scheme.copy
    - pip._vendor.requests.cookies.create_cookie
    - warnings.warn
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - cookie.value.startswith
    - h.lower
    - http.cookiejar.CookieJar.__init__
    - <builtin>.hasattr
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.contrib.pyopenssl
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - warnings.warn
    - logging.getLogger
    - _stdlib_to_openssl_verify.items
    - <builtin>.dict
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _stdlib_to_openssl_verify.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 154
    functionName: pip._vendor.urllib3.contrib.pyopenssl._validate_dependencies_met
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 2
    functionsReached:
    - OpenSSL.crypto.X509
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 143
    functionName: pip._vendor.urllib3.contrib.pyopenssl.extract_from_urllib3
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: OpenSSL.crypto.X509
    functionSourceFile: OpenSSL
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 180
    functionName: pip._vendor.urllib3.contrib.pyopenssl._dnsname_to_stdlib
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.contrib.pyopenssl._dnsname_to_stdlib.idna_encode
    - pip._vendor.idna.encode
    - name.startswith
    - prefix.encode
    - <builtin>.len
    - name.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 194
    functionName: pip._vendor.urllib3.contrib.pyopenssl._dnsname_to_stdlib.idna_encode
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 1
    functionsReached:
    - name.startswith
    - <builtin>.len
    - pip._vendor.idna.encode
    - prefix.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: prefix.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - peer_cert
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 223
    functionName: pip._vendor.urllib3.contrib.pyopenssl.get_subj_alt_name
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 1
    functionsReached:
    - OpenSSL.crypto.dump_certificate
    - <builtin>.str
    - peer_cert.to_cryptography
    - log.warning
    - cryptography.x509.load_der_x509_certificate
    - ext.get_values_for_type
    - names.extend
    - <builtin>.map
    - cert.extensions.get_extension_for_class
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: peer_cert.to_cryptography
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: OpenSSL.crypto.dump_certificate
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.x509.load_der_x509_certificate
    functionSourceFile: cryptography
    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: cert.extensions.get_extension_for_class
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ext.get_values_for_type
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: names.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e82ee280>
    argNames:
    - self
    - connection
    - socket
    - suppress_ragged_eofs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 283
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.__init__
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 290
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.fileno
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached: []
    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: 1
    functionLinenumber: 294
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket._decref_socketios
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 374
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.close
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 300
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.recv
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - util.wait_for_read
    - pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.recv
    linkageType: pythonLinkage
    raised:
    - timeout
    - SocketError
    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: util.wait_for_read
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 325
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.recv_into
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - util.wait_for_read
    - pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.recv_into
    linkageType: pythonLinkage
    raised:
    - timeout
    - SocketError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 348
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.settimeout
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 351
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket._send_until_done
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 1
    functionsReached:
    - util.wait_for_write
    linkageType: pythonLinkage
    raised:
    - timeout
    - SocketError
    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: util.wait_for_write
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 362
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.sendall
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket._send_until_done
    - <builtin>.len
    - util.wait_for_write
    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: 370
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.shutdown
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d08d69a0>
    argNames:
    - self
    - binary_form
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 384
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.getpeercert
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - OpenSSL.crypto.dump_certificate
    - <builtin>.str
    - peer_cert.to_cryptography
    - x509.get_subject
    - cryptography.x509.load_der_x509_certificate
    - log.warning
    - ext.get_values_for_type
    - pip._vendor.urllib3.contrib.pyopenssl.get_subj_alt_name
    - names.extend
    - <builtin>.map
    - cert.extensions.get_extension_for_class
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: x509.get_subject
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 398
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.version
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 401
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket._reuse
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    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: 1
    functionLinenumber: 404
    functionName: pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket._drop
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.UnaryOp object at 0x7f30d08d3a30>
    argNames:
    - self
    - mode
    - bufsize
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 413
    functionName: pip._vendor.urllib3.contrib.pyopenssl.makefile
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - socket._fileobject
    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._fileobject
    functionSourceFile: socket
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - protocol
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 430
    functionName: pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.__init__
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - OpenSSL.SSL.Context
    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: OpenSSL.SSL.Context
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 441
    functionName: pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.options
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 450
    functionName: pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.verify_mode
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 453
    functionName: pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.set_default_verify_paths
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    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
    - ciphers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 456
    functionName: pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.set_ciphers
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - ciphers.encode
    - <builtin>.isinstance
    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: ciphers.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d08c7e80>
    - <ast.Constant object at 0x7f30d08c7e50>
    - <ast.Constant object at 0x7f30d08c7e20>
    argNames:
    - self
    - cafile
    - capath
    - cadata
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 461
    functionName: pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.load_verify_locations
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - capath.encode
    - io.BytesIO
    - cafile.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cafile.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: capath.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d08c72e0>
    - <ast.Constant object at 0x7f30d08c72b0>
    argNames:
    - self
    - certfile
    - keyfile
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 473
    functionName: pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.load_cert_chain
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - password.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.load_cert_chain.<lambda1>
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - protocols
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 481
    functionName: pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.set_alpn_protocols
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.packages.six.ensure_binary
    - <builtin>.isinstance
    - s.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30d08c4460>
    - <ast.Constant object at 0x7f30d08c4430>
    - <ast.Constant object at 0x7f30d08c4400>
    - <ast.Constant object at 0x7f30d08c43d0>
    argNames:
    - self
    - sock
    - server_side
    - do_handshake_on_connect
    - suppress_ragged_eofs
    - server_hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 485
    functionName: pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.wrap_socket
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached:
    - server_hostname.encode
    - <builtin>.isinstance
    - cnx.set_connect_state
    - util.wait_for_read
    - pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.__init__
    - cnx.do_handshake
    - sock.gettimeout
    - OpenSSL.SSL.Connection
    - cnx.set_tlsext_host_name
    linkageType: pythonLinkage
    raised:
    - timeout
    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: OpenSSL.SSL.Connection
    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: server_hostname.encode
    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: cnx.set_tlsext_host_name
    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: cnx.set_connect_state
    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: cnx.do_handshake
    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: sock.gettimeout
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - cnx
    - x509
    - err_no
    - err_depth
    - return_code
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 517
    functionName: pip._vendor.urllib3.contrib.pyopenssl._verify_callback
    functionSourceFile: pip._vendor.urllib3.contrib.pyopenssl
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.packages.backports.makefile
    functionSourceFile: pip._vendor.urllib3.packages.backports.makefile
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30dbbbf340>
    - <ast.Constant object at 0x7f30dbbbf400>
    - <ast.Constant object at 0x7f30e795b0d0>
    - <ast.Constant object at 0x7f30e7833af0>
    - <ast.Constant object at 0x7f30da58a970>
    argNames:
    - self
    - mode
    - buffering
    - encoding
    - errors
    - newline
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 13
    functionName: pip._vendor.urllib3.packages.backports.makefile.backport_makefile
    functionSourceFile: pip._vendor.urllib3.packages.backports.makefile
    functionUses: 1
    functionsReached:
    - <builtin>.set
    - io.BufferedReader
    - io.BufferedWriter
    - socket.SocketIO
    - io.TextIOWrapper
    - io.BufferedRWPair
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: pip._vendor.requests.packages
    functionSourceFile: pip._vendor.requests.packages
    functionUses: 0
    functionsReached:
    - <builtin>.locals
    - <builtin>.__import__
    - <builtin>.len
    - <builtin>.list
    - mod.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mod.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.cachecontrol.serialize
    functionSourceFile: pip._vendor.cachecontrol.serialize
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b89490>
    argNames:
    - self
    - request
    - response
    - body
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 20
    functionName: pip._vendor.cachecontrol.serialize.Serializer.dumps
    functionSourceFile: pip._vendor.cachecontrol.serialize
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - <builtin>.len
    - collections.OrderedDict
    - response.read
    - collections.abc.MutableMapping.update
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - request.headers.get
    - response.headers.items
    - io.BytesIO
    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: response.read
    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: request.headers.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: pip._vendor.cachecontrol.serialize.Serializer.serialize
    functionSourceFile: pip._vendor.cachecontrol.serialize
    functionUses: 0
    functionsReached:
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a71c0>
    argNames:
    - self
    - request
    - data
    - body_file
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 65
    functionName: pip._vendor.cachecontrol.serialize.Serializer.loads
    functionSourceFile: pip._vendor.cachecontrol.serialize
    functionUses: 0
    functionsReached:
    - data.split
    - <builtin>.getattr
    - ver.split
    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: ver.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3fd880>
    argNames:
    - self
    - request
    - cached
    - body_file
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 100
    functionName: pip._vendor.cachecontrol.serialize.Serializer.prepare_response
    functionSourceFile: pip._vendor.cachecontrol.serialize
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - log.warning
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - <builtin>.bytearray
    - request.headers.get
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - d.decompress
    - brotli.Decompressor
    - <builtin>.str
    - _collections.HTTPHeaderDict
    - io.IOBase.close
    - buffer.write
    - modes.split
    - <builtin>.set
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - <builtin>.min
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - io.BytesIO
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - obj.isclosed
    - tr_enc.split
    - content_encoding.split
    - <builtin>.len
    - buffer.getvalue
    - headers.get
    - headers.pop
    - m.strip
    - enc.strip
    - pip._vendor.urllib3.response.HTTPResponse._init_length
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.util.response.is_fp_closed
    - collections.OrderedDict
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - lengths.pop
    - pip._vendor.urllib3.response.HTTPResponse.__init__
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response._get_decoder
    - cached.get
    - pip._vendor.urllib3.response.HTTPResponse.read
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - <builtin>.getattr
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - body_raw.encode
    - collections.abc.MutableMapping.update
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - length.split
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cached.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.pop
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: body_raw.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a8130>
    argNames:
    - self
    - request
    - data
    - body_file
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 152
    functionName: pip._vendor.cachecontrol.serialize.Serializer._loads_v0
    functionSourceFile: pip._vendor.cachecontrol.serialize
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a8940>
    argNames:
    - self
    - request
    - data
    - body_file
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 163
    functionName: pip._vendor.cachecontrol.serialize.Serializer._loads_v1
    functionSourceFile: pip._vendor.cachecontrol.serialize
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c01610>
    argNames:
    - self
    - request
    - data
    - body_file
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 173
    functionName: pip._vendor.cachecontrol.serialize.Serializer._loads_v2
    functionSourceFile: pip._vendor.cachecontrol.serialize
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca36e6d0>
    argNames:
    - self
    - request
    - data
    - body_file
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 184
    functionName: pip._vendor.cachecontrol.serialize.Serializer._loads_v3
    functionSourceFile: pip._vendor.cachecontrol.serialize
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ca36ea30>
    argNames:
    - self
    - request
    - data
    - body_file
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 195
    functionName: pip._vendor.cachecontrol.serialize.Serializer._loads_v4
    functionSourceFile: pip._vendor.cachecontrol.serialize
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - log.warning
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - <builtin>.bytearray
    - request.headers.get
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - d.decompress
    - brotli.Decompressor
    - <builtin>.str
    - _collections.HTTPHeaderDict
    - io.IOBase.close
    - pip._vendor.cachecontrol.serialize.Serializer.prepare_response
    - buffer.write
    - modes.split
    - <builtin>.set
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - <builtin>.min
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - io.BytesIO
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - obj.isclosed
    - tr_enc.split
    - content_encoding.split
    - <builtin>.len
    - buffer.getvalue
    - headers.get
    - headers.pop
    - m.strip
    - enc.strip
    - pip._vendor.urllib3.response.HTTPResponse._init_length
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.util.response.is_fp_closed
    - collections.OrderedDict
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - lengths.pop
    - pip._vendor.urllib3.response.HTTPResponse.__init__
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response._get_decoder
    - cached.get
    - pip._vendor.urllib3.response.HTTPResponse.read
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - <builtin>.getattr
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - body_raw.encode
    - collections.abc.MutableMapping.update
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - length.split
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.msgpack
    functionSourceFile: pip._vendor.msgpack
    functionUses: 0
    functionsReached:
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - o
    - stream
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 22
    functionName: pip._vendor.msgpack.pack
    functionSourceFile: pip._vendor.msgpack
    functionUses: 0
    functionsReached:
    - pip._vendor.msgpack.fallback.Packer._pack_raw_header
    - <builtin>.isinstance
    - pip._vendor.msgpack.ext.Timestamp.to_bytes
    - io.BytesIO.getvalue
    - pip._vendor.msgpack.fallback._check_type_strict
    - <builtin>.bool
    - d.items
    - pip._vendor.msgpack.ext.Timestamp.from_datetime
    - pip._vendor.msgpack.fallback.Packer._pack_array_header
    - _cmsgpack.Packer
    - pip._vendor.msgpack.fallback.Packer.__init__
    - pip._vendor.msgpack.ext.Timestamp.from_unix
    - stream.write
    - io.BytesIO.write
    - pip._vendor.msgpack.fallback.Packer._pack_bin_header
    - struct.pack
    - <builtin>.len
    - obj.encode
    - d.iteritems
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - pip._vendor.msgpack.fallback.Packer._pack_map_pairs
    - pip._vendor.msgpack.fallback.Packer._pack
    - <builtin>.int
    - <builtin>.callable
    - dt.timestamp
    - pip._vendor.msgpack.fallback.dict_iteritems
    - pip._vendor.msgpack.fallback.Packer._pack_map_header
    - pip._vendor.msgpack.fallback.Packer.pack
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30e08850a0>
    - <ast.Constant object at 0x7f30e0885070>
    - <ast.Constant object at 0x7f30e0885040>
    - <ast.Constant object at 0x7f30e0880fd0>
    - <ast.Constant object at 0x7f30e0880fa0>
    - <ast.Constant object at 0x7f30e0880f70>
    - <ast.Constant object at 0x7f30e0880f40>
    argNames:
    - self
    - default
    - use_single_float
    - autoreset
    - use_bin_type
    - strict_types
    - datetime
    - unicode_errors
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 731
    functionName: pip._vendor.msgpack.fallback.Packer.__init__
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 2
    functionsReached:
    - <builtin>.callable
    - <builtin>.bool
    - io.BytesIO
    linkageType: pythonLinkage
    raised:
    - ValueError
    - 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: _cmsgpack.Packer
    functionSourceFile: _cmsgpack
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 881
    functionName: pip._vendor.msgpack.fallback.Packer.pack
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 2
    functionsReached:
    - pip._vendor.msgpack.fallback.Packer._pack_raw_header
    - <builtin>.isinstance
    - pip._vendor.msgpack.ext.Timestamp.to_bytes
    - io.BytesIO.getvalue
    - pip._vendor.msgpack.fallback._check_type_strict
    - d.items
    - pip._vendor.msgpack.fallback.Packer._pack_array_header
    - pip._vendor.msgpack.ext.Timestamp.from_unix
    - io.BytesIO.write
    - pip._vendor.msgpack.fallback.Packer._pack_bin_header
    - struct.pack
    - <builtin>.len
    - obj.encode
    - d.iteritems
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - pip._vendor.msgpack.fallback.Packer._pack_map_pairs
    - pip._vendor.msgpack.fallback.Packer._pack
    - <builtin>.int
    - dt.timestamp
    - pip._vendor.msgpack.fallback.dict_iteritems
    - pip._vendor.msgpack.fallback.Packer._pack_map_header
    - pip._vendor.msgpack.ext.Timestamp.from_datetime
    - io.BytesIO
    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: stream.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - o
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 32
    functionName: pip._vendor.msgpack.packb
    functionSourceFile: pip._vendor.msgpack
    functionUses: 0
    functionsReached:
    - pip._vendor.msgpack.fallback.Packer._pack_raw_header
    - <builtin>.isinstance
    - pip._vendor.msgpack.ext.Timestamp.to_bytes
    - io.BytesIO.getvalue
    - <builtin>.bool
    - pip._vendor.msgpack.fallback._check_type_strict
    - d.items
    - pip._vendor.msgpack.ext.Timestamp.from_datetime
    - pip._vendor.msgpack.fallback.Packer._pack_array_header
    - _cmsgpack.Packer
    - pip._vendor.msgpack.fallback.Packer.__init__
    - pip._vendor.msgpack.ext.Timestamp.from_unix
    - io.BytesIO.write
    - pip._vendor.msgpack.fallback.Packer._pack_bin_header
    - struct.pack
    - <builtin>.len
    - obj.encode
    - d.iteritems
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - pip._vendor.msgpack.fallback.Packer._pack_map_pairs
    - pip._vendor.msgpack.fallback.Packer._pack
    - <builtin>.int
    - <builtin>.callable
    - dt.timestamp
    - pip._vendor.msgpack.fallback.dict_iteritems
    - pip._vendor.msgpack.fallback.Packer._pack_map_header
    - pip._vendor.msgpack.fallback.Packer.pack
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - stream
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 41
    functionName: pip._vendor.msgpack.unpack
    functionSourceFile: pip._vendor.msgpack
    functionUses: 0
    functionsReached:
    - stream.read
    - <builtin>.isinstance
    - pip._vendor.msgpack.fallback.unpackb
    - <builtin>.bytes
    - pip._vendor.msgpack.fallback.Unpacker._reserve
    - <builtin>.bool
    - pip._vendor.msgpack.fallback._is_recursionerror
    - pip._vendor.msgpack.ext.Timestamp.from_bytes
    - <builtin>.bytearray
    - struct.unpack_from
    - pip._vendor.msgpack.fallback.Unpacker.feed
    - pip._vendor.msgpack.fallback.Unpacker._unpack
    - pip._vendor.msgpack.ext.Timestamp.to_unix
    - pip._vendor.msgpack.fallback.Unpacker._read_header
    - __pypy__.newlist_hint
    - pip._vendor.msgpack.fallback._get_data_from_buffer
    - datetime.timedelta
    - pip._vendor.msgpack.ext.Timestamp.to_datetime
    - <builtin>.tuple
    - <builtin>.min
    - pip._vendor.msgpack.fallback.<lambda1>
    - obj.decode
    - struct.unpack
    - datetime.datetime.fromtimestamp
    - <builtin>.len
    - sys.intern
    - pip._vendor.msgpack.fallback.Unpacker._read
    - _cmsgpack.unpackb
    - pip._vendor.msgpack.ext.Timestamp.to_unix_nano
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - <builtin>.callable
    - <builtin>.memoryview
    - pip._vendor.msgpack.fallback.Unpacker._got_extradata
    - collections.namedtuple.__init__
    - <builtin>.max
    - pip._vendor.msgpack.fallback.Unpacker.__init__
    - <builtin>.type
    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: _cmsgpack.unpackb
    functionSourceFile: _cmsgpack
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - packed
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 110
    functionName: pip._vendor.msgpack.fallback.unpackb
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - pip._vendor.msgpack.fallback.Unpacker._reserve
    - <builtin>.bool
    - pip._vendor.msgpack.fallback._is_recursionerror
    - pip._vendor.msgpack.ext.Timestamp.from_bytes
    - <builtin>.bytearray
    - struct.unpack_from
    - pip._vendor.msgpack.fallback.Unpacker.feed
    - pip._vendor.msgpack.fallback.Unpacker._unpack
    - pip._vendor.msgpack.ext.Timestamp.to_unix
    - pip._vendor.msgpack.fallback.Unpacker._read_header
    - __pypy__.newlist_hint
    - pip._vendor.msgpack.fallback._get_data_from_buffer
    - datetime.timedelta
    - pip._vendor.msgpack.ext.Timestamp.to_datetime
    - <builtin>.tuple
    - <builtin>.min
    - pip._vendor.msgpack.fallback.<lambda1>
    - obj.decode
    - struct.unpack
    - datetime.datetime.fromtimestamp
    - <builtin>.len
    - sys.intern
    - pip._vendor.msgpack.fallback.Unpacker._read
    - pip._vendor.msgpack.ext.Timestamp.to_unix_nano
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - <builtin>.callable
    - <builtin>.memoryview
    - pip._vendor.msgpack.fallback.Unpacker._got_extradata
    - collections.namedtuple.__init__
    - <builtin>.max
    - pip._vendor.msgpack.fallback.Unpacker.__init__
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - ExtraData
    - ValueError
    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: pip._vendor.msgpack.ext
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 0
    functionsReached:
    - datetime.timezone
    - datetime.timedelta
    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.timezone
    functionSourceFile: datetime
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - code
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: pip._vendor.msgpack.ext.ExtType.__new__
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a7d90>
    argNames:
    - self
    - seconds
    - nanoseconds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 45
    functionName: pip._vendor.msgpack.ext.Timestamp.__init__
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 18
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    - 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: 69
    functionName: pip._vendor.msgpack.ext.Timestamp.__repr__
    functionSourceFile: pip._vendor.msgpack.ext
    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
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: pip._vendor.msgpack.ext.Timestamp.__eq__
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 1
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 83
    functionName: pip._vendor.msgpack.ext.Timestamp.__ne__
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 0
    functionsReached:
    - pip._vendor.msgpack.ext.Timestamp.__eq__
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 87
    functionName: pip._vendor.msgpack.ext.Timestamp.__hash__
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - b
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 91
    functionName: pip._vendor.msgpack.ext.Timestamp.from_bytes
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 8
    functionsReached:
    - <builtin>.len
    - struct.unpack
    - <builtin>.isinstance
    - pip._vendor.msgpack.ext.Timestamp.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: 1
    functionLinenumber: 117
    functionName: pip._vendor.msgpack.ext.Timestamp.to_bytes
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 6
    functionsReached:
    - struct.pack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - unix_sec
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 139
    functionName: pip._vendor.msgpack.ext.Timestamp.from_unix
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 7
    functionsReached:
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - <builtin>.isinstance
    - <builtin>.int
    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: 149
    functionName: pip._vendor.msgpack.ext.Timestamp.to_unix
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - unix_ns
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 158
    functionName: pip._vendor.msgpack.ext.Timestamp.from_unix_nano
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 0
    functionsReached:
    - <builtin>.divmod
    - <builtin>.isinstance
    - pip._vendor.msgpack.ext.Timestamp.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 166
    functionName: pip._vendor.msgpack.ext.Timestamp.to_unix_nano
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 8
    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: 174
    functionName: pip._vendor.msgpack.ext.Timestamp.to_datetime
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 8
    functionsReached:
    - pip._vendor.msgpack.ext.Timestamp.to_unix
    - datetime.datetime.fromtimestamp
    - datetime.timedelta
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - dt
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 186
    functionName: pip._vendor.msgpack.ext.Timestamp.from_datetime
    functionSourceFile: pip._vendor.msgpack.ext
    functionUses: 6
    functionsReached:
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - <builtin>.isinstance
    - <builtin>.int
    - dt.timestamp
    - pip._vendor.msgpack.ext.Timestamp.from_unix
    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: dt.timestamp
    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: pip._vendor.msgpack.exceptions
    functionSourceFile: pip._vendor.msgpack.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - unpacked
    - extra
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 37
    functionName: pip._vendor.msgpack.exceptions.ExtraData.__init__
    functionSourceFile: pip._vendor.msgpack.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 41
    functionName: pip._vendor.msgpack.exceptions.ExtraData.__str__
    functionSourceFile: pip._vendor.msgpack.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.msgpack.fallback
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - d
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 19
    functionName: pip._vendor.msgpack.fallback.dict_iteritems
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 6
    functionsReached:
    - d.items
    - d.iteritems
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: pip._vendor.msgpack.fallback._is_recursionerror
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e095d310>
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 52
    functionName: pip._vendor.msgpack.fallback.StringIO.__init__
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - io.BytesIO.builder.append
    - __pypy__.builders.StringBuilder
    - <builtin>.len
    - __pypy__.builders.BytesBuilder
    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: __pypy__.builders.StringBuilder
    functionSourceFile: __pypy__
    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: __pypy__.builders.BytesBuilder
    functionSourceFile: __pypy__
    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: io.BytesIO.builder.append
    functionSourceFile: io
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: pip._vendor.msgpack.fallback.StringIO.write
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - io.BytesIO.builder.append
    - s.tobytes
    - <builtin>.isinstance
    - <builtin>.bytes
    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.tobytes
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: pip._vendor.msgpack.fallback.StringIO.getvalue
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - io.BytesIO.builder.build
    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: io.BytesIO.builder.build
    functionSourceFile: io
    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: pip._vendor.msgpack.fallback.<lambda1>
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f30e0934a60>
    - <ast.Name object at 0x7f30e0934a30>
    argNames:
    - obj
    - t
    - type
    - tuple
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 96
    functionName: pip._vendor.msgpack.fallback._check_type_strict
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: pip._vendor.msgpack.fallback._get_data_from_buffer
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 3
    functionsReached:
    - <builtin>.memoryview
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 0
    IfCount: 16
    argCount: 18
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b89580>
    - <ast.Constant object at 0x7f30d6b89730>
    - <ast.Constant object at 0x7f30d6b89520>
    - <ast.Constant object at 0x7f30d6b89880>
    - <ast.Constant object at 0x7f30d6b89670>
    - <ast.Constant object at 0x7f30d6b89340>
    - <ast.Constant object at 0x7f30d6b89760>
    - <ast.Constant object at 0x7f30d6b89550>
    - <ast.Constant object at 0x7f30d6b89910>
    - <ast.Constant object at 0x7f30d6b89790>
    - <ast.BinOp object at 0x7f30d6b892e0>
    - <ast.Name object at 0x7f30e26a84f0>
    - <ast.UnaryOp object at 0x7f30e26a8760>
    - <ast.UnaryOp object at 0x7f30e26a8b50>
    - <ast.UnaryOp object at 0x7f30e26a8f70>
    - <ast.UnaryOp object at 0x7f30e26a8ee0>
    - <ast.UnaryOp object at 0x7f30e26a88e0>
    argNames:
    - self
    - file_like
    - read_size
    - use_list
    - raw
    - timestamp
    - strict_map_key
    - object_hook
    - object_pairs_hook
    - list_hook
    - unicode_errors
    - max_buffer_size
    - ext_hook
    - max_str_len
    - max_bin_len
    - max_array_len
    - max_map_len
    - max_ext_len
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 275
    functionName: pip._vendor.msgpack.fallback.Unpacker.__init__
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 2
    functionsReached:
    - <builtin>.callable
    - <builtin>.bool
    - <builtin>.bytearray
    - <builtin>.min
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - next_bytes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 368
    functionName: pip._vendor.msgpack.fallback.Unpacker.feed
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 2
    functionsReached:
    - <builtin>.memoryview
    - <builtin>.len
    - pip._vendor.msgpack.fallback._get_data_from_buffer
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 22
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 32
    ICount: 4
    IfCount: 22
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30e092d850>
    argNames:
    - self
    - execute
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 543
    functionName: pip._vendor.msgpack.fallback.Unpacker._unpack
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 7
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - pip._vendor.msgpack.fallback.Unpacker._reserve
    - pip._vendor.msgpack.ext.Timestamp.from_bytes
    - struct.unpack_from
    - pip._vendor.msgpack.fallback.Unpacker._unpack
    - pip._vendor.msgpack.ext.Timestamp.to_unix
    - pip._vendor.msgpack.fallback.Unpacker._read_header
    - __pypy__.newlist_hint
    - datetime.timedelta
    - pip._vendor.msgpack.ext.Timestamp.to_datetime
    - <builtin>.tuple
    - pip._vendor.msgpack.fallback.<lambda1>
    - obj.decode
    - struct.unpack
    - datetime.datetime.fromtimestamp
    - <builtin>.len
    - sys.intern
    - pip._vendor.msgpack.fallback.Unpacker._read
    - pip._vendor.msgpack.ext.Timestamp.to_unix_nano
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - collections.namedtuple.__init__
    - <builtin>.max
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 388
    functionName: pip._vendor.msgpack.fallback.Unpacker._got_extradata
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 2
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3fd2e0>
    argNames:
    - f
    - b
    - o
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 139
    functionName: pip._vendor.msgpack.fallback._unpack_from
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - struct.unpack_from
    - <builtin>.bytes
    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: struct.unpack_from
    functionSourceFile: struct
    functionUses: 10
    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: 383
    functionName: pip._vendor.msgpack.fallback.Unpacker._consume
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 391
    functionName: pip._vendor.msgpack.fallback.Unpacker._get_extradata
    functionSourceFile: pip._vendor.msgpack.fallback
    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
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 394
    functionName: pip._vendor.msgpack.fallback.Unpacker.read_bytes
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - pip._vendor.msgpack.fallback.Unpacker._consume
    - <builtin>.isinstance
    - pip._vendor.msgpack.fallback.Unpacker._reserve
    - <builtin>.len
    - pip._vendor.msgpack.fallback.Unpacker._read
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e09512b0>
    argNames:
    - self
    - n
    - raise_outofdata
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 399
    functionName: pip._vendor.msgpack.fallback.Unpacker._read
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 10
    functionsReached:
    - pip._vendor.msgpack.fallback.Unpacker._reserve
    - <builtin>.max
    - <builtin>.len
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e094eaf0>
    argNames:
    - self
    - n
    - raise_outofdata
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 407
    functionName: pip._vendor.msgpack.fallback.Unpacker._reserve
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 11
    functionsReached:
    - <builtin>.max
    - <builtin>.len
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 27
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 39
    ICount: 8
    IfCount: 27
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 441
    functionName: pip._vendor.msgpack.fallback.Unpacker._read_header
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 8
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.msgpack.fallback.Unpacker._reserve
    - <builtin>.len
    - pip._vendor.msgpack.fallback.Unpacker._read
    - struct.unpack_from
    - <builtin>.max
    linkageType: pythonLinkage
    raised:
    - FormatError
    - ValueError
    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: __pypy__.newlist_hint
    functionSourceFile: __pypy__
    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: sys.intern
    functionSourceFile: sys
    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: obj.decode
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 620
    functionName: pip._vendor.msgpack.fallback.Unpacker.__iter__
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 623
    functionName: pip._vendor.msgpack.fallback.Unpacker.__next__
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - pip._vendor.msgpack.fallback.Unpacker._reserve
    - pip._vendor.msgpack.ext.Timestamp.from_bytes
    - struct.unpack_from
    - pip._vendor.msgpack.fallback.Unpacker._unpack
    - pip._vendor.msgpack.ext.Timestamp.to_unix
    - pip._vendor.msgpack.fallback.Unpacker._consume
    - pip._vendor.msgpack.fallback.Unpacker._read_header
    - __pypy__.newlist_hint
    - datetime.timedelta
    - pip._vendor.msgpack.ext.Timestamp.to_datetime
    - <builtin>.tuple
    - pip._vendor.msgpack.fallback.<lambda1>
    - obj.decode
    - struct.unpack
    - datetime.datetime.fromtimestamp
    - <builtin>.len
    - sys.intern
    - pip._vendor.msgpack.fallback.Unpacker._read
    - pip._vendor.msgpack.ext.Timestamp.to_unix_nano
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - collections.namedtuple.__init__
    - <builtin>.max
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 636
    functionName: pip._vendor.msgpack.fallback.Unpacker.skip
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - pip._vendor.msgpack.fallback.Unpacker._reserve
    - pip._vendor.msgpack.ext.Timestamp.from_bytes
    - struct.unpack_from
    - pip._vendor.msgpack.fallback.Unpacker._unpack
    - pip._vendor.msgpack.ext.Timestamp.to_unix
    - pip._vendor.msgpack.fallback.Unpacker._consume
    - pip._vendor.msgpack.fallback.Unpacker._read_header
    - __pypy__.newlist_hint
    - datetime.timedelta
    - pip._vendor.msgpack.ext.Timestamp.to_datetime
    - <builtin>.tuple
    - pip._vendor.msgpack.fallback.<lambda1>
    - obj.decode
    - struct.unpack
    - datetime.datetime.fromtimestamp
    - <builtin>.len
    - sys.intern
    - pip._vendor.msgpack.fallback.Unpacker._read
    - pip._vendor.msgpack.ext.Timestamp.to_unix_nano
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - collections.namedtuple.__init__
    - <builtin>.max
    - <builtin>.type
    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: 640
    functionName: pip._vendor.msgpack.fallback.Unpacker.unpack
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - pip._vendor.msgpack.fallback.Unpacker._reserve
    - pip._vendor.msgpack.ext.Timestamp.from_bytes
    - struct.unpack_from
    - pip._vendor.msgpack.fallback.Unpacker._unpack
    - pip._vendor.msgpack.ext.Timestamp.to_unix
    - pip._vendor.msgpack.fallback.Unpacker._consume
    - pip._vendor.msgpack.fallback.Unpacker._read_header
    - __pypy__.newlist_hint
    - datetime.timedelta
    - pip._vendor.msgpack.ext.Timestamp.to_datetime
    - <builtin>.tuple
    - pip._vendor.msgpack.fallback.<lambda1>
    - obj.decode
    - struct.unpack
    - datetime.datetime.fromtimestamp
    - <builtin>.len
    - sys.intern
    - pip._vendor.msgpack.fallback.Unpacker._read
    - pip._vendor.msgpack.ext.Timestamp.to_unix_nano
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - collections.namedtuple.__init__
    - <builtin>.max
    - <builtin>.type
    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: 648
    functionName: pip._vendor.msgpack.fallback.Unpacker.read_array_header
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - pip._vendor.msgpack.fallback.Unpacker._reserve
    - pip._vendor.msgpack.ext.Timestamp.from_bytes
    - struct.unpack_from
    - pip._vendor.msgpack.fallback.Unpacker._unpack
    - pip._vendor.msgpack.ext.Timestamp.to_unix
    - pip._vendor.msgpack.fallback.Unpacker._consume
    - pip._vendor.msgpack.fallback.Unpacker._read_header
    - __pypy__.newlist_hint
    - datetime.timedelta
    - pip._vendor.msgpack.ext.Timestamp.to_datetime
    - <builtin>.tuple
    - pip._vendor.msgpack.fallback.<lambda1>
    - obj.decode
    - struct.unpack
    - datetime.datetime.fromtimestamp
    - <builtin>.len
    - sys.intern
    - pip._vendor.msgpack.fallback.Unpacker._read
    - pip._vendor.msgpack.ext.Timestamp.to_unix_nano
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - collections.namedtuple.__init__
    - <builtin>.max
    - <builtin>.type
    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: 653
    functionName: pip._vendor.msgpack.fallback.Unpacker.read_map_header
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - pip._vendor.msgpack.fallback.Unpacker._reserve
    - pip._vendor.msgpack.ext.Timestamp.from_bytes
    - struct.unpack_from
    - pip._vendor.msgpack.fallback.Unpacker._unpack
    - pip._vendor.msgpack.ext.Timestamp.to_unix
    - pip._vendor.msgpack.fallback.Unpacker._consume
    - pip._vendor.msgpack.fallback.Unpacker._read_header
    - __pypy__.newlist_hint
    - datetime.timedelta
    - pip._vendor.msgpack.ext.Timestamp.to_datetime
    - <builtin>.tuple
    - pip._vendor.msgpack.fallback.<lambda1>
    - obj.decode
    - struct.unpack
    - datetime.datetime.fromtimestamp
    - <builtin>.len
    - sys.intern
    - pip._vendor.msgpack.fallback.Unpacker._read
    - pip._vendor.msgpack.ext.Timestamp.to_unix_nano
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - collections.namedtuple.__init__
    - <builtin>.max
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 658
    functionName: pip._vendor.msgpack.fallback.Unpacker.tell
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 39
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 56
    ICount: 15
    IfCount: 39
    argCount: 5
    argDefaultValues:
    - <ast.Name object at 0x7f30e08802b0>
    - <ast.Name object at 0x7f30e0880280>
    - <ast.Name object at 0x7f30e0880250>
    argNames:
    - self
    - obj
    - nest_limit
    - check
    - check_type_strict
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 755
    functionName: pip._vendor.msgpack.fallback.Packer._pack
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 5
    functionsReached:
    - pip._vendor.msgpack.fallback.Packer._pack_raw_header
    - <builtin>.isinstance
    - pip._vendor.msgpack.ext.Timestamp.to_bytes
    - pip._vendor.msgpack.fallback._check_type_strict
    - d.items
    - pip._vendor.msgpack.fallback.Packer._pack_array_header
    - pip._vendor.msgpack.ext.Timestamp.from_unix
    - io.BytesIO.write
    - pip._vendor.msgpack.fallback.Packer._pack_bin_header
    - struct.pack
    - <builtin>.len
    - obj.encode
    - d.iteritems
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - pip._vendor.msgpack.fallback.Packer._pack_map_pairs
    - pip._vendor.msgpack.fallback.Packer._pack
    - <builtin>.int
    - dt.timestamp
    - pip._vendor.msgpack.fallback.dict_iteritems
    - pip._vendor.msgpack.fallback.Packer._pack_map_header
    - pip._vendor.msgpack.ext.Timestamp.from_datetime
    linkageType: pythonLinkage
    raised:
    - OverflowError
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 982
    functionName: pip._vendor.msgpack.fallback.Packer._pack_bin_header
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 6
    functionsReached:
    - pip._vendor.msgpack.fallback.Packer._pack_raw_header
    - io.BytesIO.write
    - struct.pack
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: obj.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 970
    functionName: pip._vendor.msgpack.fallback.Packer._pack_raw_header
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 7
    functionsReached:
    - struct.pack
    - io.BytesIO.write
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 946
    functionName: pip._vendor.msgpack.fallback.Packer._pack_array_header
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 7
    functionsReached:
    - struct.pack
    - io.BytesIO.write
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f30e08461f0>
    argNames:
    - self
    - n
    - pairs
    - nest_limit
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 964
    functionName: pip._vendor.msgpack.fallback.Packer._pack_map_pairs
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 5
    functionsReached:
    - pip._vendor.msgpack.fallback.Packer._pack_raw_header
    - <builtin>.isinstance
    - pip._vendor.msgpack.ext.Timestamp.to_bytes
    - pip._vendor.msgpack.fallback._check_type_strict
    - d.items
    - pip._vendor.msgpack.fallback.Packer._pack_array_header
    - pip._vendor.msgpack.ext.Timestamp.from_unix
    - io.BytesIO.write
    - pip._vendor.msgpack.fallback.Packer._pack_bin_header
    - struct.pack
    - <builtin>.len
    - obj.encode
    - d.iteritems
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - pip._vendor.msgpack.fallback.Packer._pack_map_pairs
    - pip._vendor.msgpack.fallback.Packer._pack
    - <builtin>.int
    - dt.timestamp
    - pip._vendor.msgpack.fallback.Packer._pack_map_header
    - pip._vendor.msgpack.fallback.dict_iteritems
    - pip._vendor.msgpack.ext.Timestamp.from_datetime
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pairs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 892
    functionName: pip._vendor.msgpack.fallback.Packer.pack_map_pairs
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - pip._vendor.msgpack.fallback.Packer._pack_raw_header
    - <builtin>.isinstance
    - pip._vendor.msgpack.ext.Timestamp.to_bytes
    - io.BytesIO.getvalue
    - pip._vendor.msgpack.fallback._check_type_strict
    - d.items
    - pip._vendor.msgpack.fallback.Packer._pack_array_header
    - pip._vendor.msgpack.ext.Timestamp.from_unix
    - io.BytesIO.write
    - pip._vendor.msgpack.fallback.Packer._pack_bin_header
    - struct.pack
    - <builtin>.len
    - obj.encode
    - d.iteritems
    - pip._vendor.msgpack.ext.Timestamp.__init__
    - pip._vendor.msgpack.fallback.Packer._pack_map_pairs
    - pip._vendor.msgpack.fallback.Packer._pack
    - <builtin>.int
    - dt.timestamp
    - pip._vendor.msgpack.fallback.Packer._pack_map_header
    - pip._vendor.msgpack.fallback.dict_iteritems
    - pip._vendor.msgpack.ext.Timestamp.from_datetime
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 899
    functionName: pip._vendor.msgpack.fallback.Packer.pack_array_header
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - io.BytesIO.write
    - struct.pack
    - io.BytesIO.getvalue
    - pip._vendor.msgpack.fallback.Packer._pack_array_header
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 908
    functionName: pip._vendor.msgpack.fallback.Packer.pack_map_header
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - io.BytesIO.write
    - struct.pack
    - io.BytesIO.getvalue
    - pip._vendor.msgpack.fallback.Packer._pack_map_header
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 955
    functionName: pip._vendor.msgpack.fallback.Packer._pack_map_header
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 7
    functionsReached:
    - struct.pack
    - io.BytesIO.write
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 10
    IfCount: 11
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - typecode
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 917
    functionName: pip._vendor.msgpack.fallback.Packer.pack_ext_type
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - struct.pack
    - <builtin>.len
    - io.BytesIO.write
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    - 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: 1
    functionLinenumber: 994
    functionName: pip._vendor.msgpack.fallback.Packer.bytes
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 1
    functionsReached:
    - io.BytesIO.getvalue
    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: 998
    functionName: pip._vendor.msgpack.fallback.Packer.reset
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - io.BytesIO
    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: 1005
    functionName: pip._vendor.msgpack.fallback.Packer.getbuffer
    functionSourceFile: pip._vendor.msgpack.fallback
    functionUses: 0
    functionsReached:
    - <builtin>.memoryview
    - io.BytesIO.getvalue
    - io.BytesIO.getbuffer
    - pip._vendor.msgpack.fallback.Packer.bytes
    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: io.BytesIO.getbuffer
    functionSourceFile: io
    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: pip._internal.utils.glibc
    functionSourceFile: pip._internal.utils.glibc
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 6
    functionName: pip._internal.utils.glibc.glibc_version_string
    functionSourceFile: pip._internal.utils.glibc
    functionUses: 19
    functionsReached:
    - <builtin>.isinstance
    - os.confstr
    - version_str.decode
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - ctypes.CDLL
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - gnu_libc_version.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 11
    functionName: pip._internal.utils.glibc.glibc_version_string_confstr
    functionSourceFile: pip._internal.utils.glibc
    functionUses: 20
    functionsReached:
    - os.confstr
    - gnu_libc_version.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._internal.utils.glibc.glibc_version_string_ctypes
    functionSourceFile: pip._internal.utils.glibc
    functionUses: 20
    functionsReached:
    - version_str.decode
    - <builtin>.isinstance
    - ctypes.CDLL
    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: gnu_libc_version.split
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.cachecontrol
    functionSourceFile: pip._vendor.cachecontrol
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - logging.NullHandler
    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: pip._vendor.cachecontrol.adapter
    functionSourceFile: pip._vendor.cachecontrol.adapter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9933a00>
    - <ast.Constant object at 0x7f30f9933e20>
    - <ast.Constant object at 0x7f30f99337f0>
    - <ast.Constant object at 0x7f30f9933280>
    - <ast.Constant object at 0x7f30f9933970>
    - <ast.Constant object at 0x7f30f99338b0>
    argNames:
    - self
    - cache
    - cache_etags
    - controller_class
    - serializer
    - heuristic
    - cacheable_methods
    - args
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 29
    functionName: pip._vendor.cachecontrol.adapter.CacheControlAdapter.__init__
    functionSourceFile: pip._vendor.cachecontrol.adapter
    functionUses: 3
    functionsReached:
    - <builtin>.super
    - threading.Lock
    - pip._vendor.cachecontrol.cache.DictCache.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30e82eeee0>
    - <ast.Constant object at 0x7f30e82ee730>
    - <ast.Constant object at 0x7f30e82eed00>
    - <ast.Constant object at 0x7f30e82eec70>
    - <ast.Constant object at 0x7f30e82ee250>
    - <ast.Constant object at 0x7f30e82ee910>
    argNames:
    - self
    - request
    - stream
    - timeout
    - verify
    - cert
    - proxies
    - cacheable_methods
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 50
    functionName: pip._vendor.cachecontrol.adapter.CacheControlAdapter.send
    functionSourceFile: pip._vendor.cachecontrol.adapter
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - request.headers.update
    - response.release_conn
    - <builtin>.int
    - pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper.__init__
    - functools.partial
    - pip._vendor.cachecontrol.adapter.CacheControlAdapter.build_response
    - response.read
    - types.MethodType
    - tempfile.NamedTemporaryFile
    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: request.headers.update
    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: response.release_conn
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - fp
    - callback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 33
    functionName: pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper.__init__
    functionSourceFile: pip._vendor.cachecontrol.filewrapper
    functionUses: 3
    functionsReached:
    - tempfile.NamedTemporaryFile
    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: 0
    functionLinenumber: 137
    functionName: pip._vendor.cachecontrol.adapter.CacheControlAdapter.build_response._update_chunk_length
    functionSourceFile: pip._vendor.cachecontrol.adapter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 159
    functionName: pip._vendor.cachecontrol.adapter.CacheControlAdapter.close
    functionSourceFile: pip._vendor.cachecontrol.adapter
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.cachecontrol.filewrapper
    functionSourceFile: pip._vendor.cachecontrol.filewrapper
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper.__getattr__
    functionSourceFile: pip._vendor.cachecontrol.filewrapper
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 52
    functionName: pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper.__is_fp_closed
    functionSourceFile: pip._vendor.cachecontrol.filewrapper
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 70
    functionName: pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper._close
    functionSourceFile: pip._vendor.cachecontrol.filewrapper
    functionUses: 2
    functionsReached:
    - tempfile.NamedTemporaryFile.close
    - mmap.mmap
    - <builtin>.memoryview
    - tempfile.NamedTemporaryFile.tell
    - tempfile.NamedTemporaryFile.seek
    - tempfile.NamedTemporaryFile.fileno
    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.NamedTemporaryFile.tell
    functionSourceFile: tempfile
    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: tempfile.NamedTemporaryFile.seek
    functionSourceFile: tempfile
    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: tempfile.NamedTemporaryFile.fileno
    functionSourceFile: tempfile
    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: mmap.mmap
    functionSourceFile: mmap
    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: tempfile.NamedTemporaryFile.close
    functionSourceFile: tempfile
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc6f5b0>
    argNames:
    - self
    - amt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 97
    functionName: pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper.read
    functionSourceFile: pip._vendor.cachecontrol.filewrapper
    functionUses: 0
    functionsReached:
    - pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper.__is_fp_closed
    - pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper._close
    - tempfile.NamedTemporaryFile.close
    - mmap.mmap
    - tempfile.NamedTemporaryFile.fileno
    - <builtin>.memoryview
    - tempfile.NamedTemporaryFile.tell
    - tempfile.NamedTemporaryFile.seek
    - tempfile.NamedTemporaryFile.write
    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.NamedTemporaryFile.write
    functionSourceFile: tempfile
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - amt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 108
    functionName: pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper._safe_read
    functionSourceFile: pip._vendor.cachecontrol.filewrapper
    functionUses: 0
    functionsReached:
    - pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper.__is_fp_closed
    - pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper._close
    - tempfile.NamedTemporaryFile.close
    - mmap.mmap
    - tempfile.NamedTemporaryFile.fileno
    - <builtin>.memoryview
    - tempfile.NamedTemporaryFile.tell
    - tempfile.NamedTemporaryFile.seek
    - tempfile.NamedTemporaryFile.write
    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: pip._vendor.cachecontrol.heuristics
    functionSourceFile: pip._vendor.cachecontrol.heuristics
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d3d8ab20>
    argNames:
    - delta
    - date
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 18
    functionName: pip._vendor.cachecontrol.heuristics.expire_after
    functionSourceFile: pip._vendor.cachecontrol.heuristics
    functionUses: 2
    functionsReached:
    - datetime.datetime.now
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - dt
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: pip._vendor.cachecontrol.heuristics.datetime_to_header
    functionSourceFile: pip._vendor.cachecontrol.heuristics
    functionUses: 2
    functionsReached:
    - datetime.datetime.timetuple
    - email.utils.formatdate
    - calendar.timegm
    - email.utils.formatdate.timetuple
    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.timetuple
    functionSourceFile: datetime
    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: email.utils.formatdate.timetuple
    functionSourceFile: email
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 28
    functionName: pip._vendor.cachecontrol.heuristics.BaseHeuristic.warning
    functionSourceFile: pip._vendor.cachecontrol.heuristics
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 39
    functionName: pip._vendor.cachecontrol.heuristics.BaseHeuristic.update_headers
    functionSourceFile: pip._vendor.cachecontrol.heuristics
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: pip._vendor.cachecontrol.heuristics.BaseHeuristic.apply
    functionSourceFile: pip._vendor.cachecontrol.heuristics
    functionUses: 0
    functionsReached:
    - response.headers.update
    - pip._vendor.cachecontrol.heuristics.BaseHeuristic.update_headers
    - pip._vendor.cachecontrol.heuristics.BaseHeuristic.warning
    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: response.headers.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 66
    functionName: pip._vendor.cachecontrol.heuristics.OneDayCache.update_headers
    functionSourceFile: pip._vendor.cachecontrol.heuristics
    functionUses: 0
    functionsReached:
    - pip._vendor.cachecontrol.heuristics.expire_after
    - datetime.datetime.now
    - email.utils.parsedate
    - calendar.timegm
    - datetime.timedelta
    - datetime.datetime.timetuple
    - email.utils.formatdate
    - datetime.datetime
    - pip._vendor.cachecontrol.heuristics.datetime_to_header
    - email.utils.formatdate.timetuple
    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: email.utils.parsedate
    functionSourceFile: email
    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: datetime.datetime
    functionSourceFile: datetime
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 82
    functionName: pip._vendor.cachecontrol.heuristics.ExpiresAfter.__init__
    functionSourceFile: pip._vendor.cachecontrol.heuristics
    functionUses: 0
    functionsReached:
    - datetime.timedelta
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 85
    functionName: pip._vendor.cachecontrol.heuristics.ExpiresAfter.update_headers
    functionSourceFile: pip._vendor.cachecontrol.heuristics
    functionUses: 0
    functionsReached:
    - pip._vendor.cachecontrol.heuristics.expire_after
    - datetime.datetime.now
    - calendar.timegm
    - datetime.datetime.timetuple
    - email.utils.formatdate
    - pip._vendor.cachecontrol.heuristics.datetime_to_header
    - email.utils.formatdate.timetuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 89
    functionName: pip._vendor.cachecontrol.heuristics.ExpiresAfter.warning
    functionSourceFile: pip._vendor.cachecontrol.heuristics
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resp
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 121
    functionName: pip._vendor.cachecontrol.heuristics.LastModified.update_headers
    functionSourceFile: pip._vendor.cachecontrol.heuristics
    functionUses: 0
    functionsReached:
    - time.gmtime
    - email.utils.parsedate_tz
    - time.time
    - time.strftime
    - email.utils.parsedate
    - calendar.timegm
    - <builtin>.min
    - <builtin>.max
    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: time.gmtime
    functionSourceFile: time
    functionUses: 11
    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: time.strftime
    functionSourceFile: time
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resp
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 153
    functionName: pip._vendor.cachecontrol.heuristics.LastModified.warning
    functionSourceFile: pip._vendor.cachecontrol.heuristics
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.cachecontrol.wrapper
    functionSourceFile: pip._vendor.cachecontrol.wrapper
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b87c70>
    - <ast.Constant object at 0x7f30d6b87d00>
    - <ast.Constant object at 0x7f30d6b87460>
    - <ast.Constant object at 0x7f30d6b87670>
    - <ast.Constant object at 0x7f30d6b87a30>
    - <ast.Constant object at 0x7f30d6b87910>
    - <ast.Constant object at 0x7f30d6b87940>
    argNames:
    - sess
    - cache
    - cache_etags
    - serializer
    - heuristic
    - controller_class
    - adapter_class
    - cacheable_methods
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 20
    functionName: pip._vendor.cachecontrol.wrapper.CacheControl
    functionSourceFile: pip._vendor.cachecontrol.wrapper
    functionUses: 0
    functionsReached:
    - sess.mount
    - threading.Lock
    - pip._vendor.cachecontrol.cache.DictCache.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sess.mount
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._internal.network.auth
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - typing.cast
    - functools.lru_cache
    - pip._internal.utils._log.getLogger
    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: pip._internal.network.auth.KeyRingBaseProvider
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - username
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 50
    functionName: pip._internal.network.auth.KeyRingBaseProvider.get_auth_info
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - url
    - username
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 54
    functionName: pip._internal.network.auth.KeyRingBaseProvider.save_auth_info
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - username
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 63
    functionName: pip._internal.network.auth.KeyRingNullProvider.get_auth_info
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - url
    - username
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 66
    functionName: pip._internal.network.auth.KeyRingNullProvider.save_auth_info
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 75
    functionName: pip._internal.network.auth.KeyRingPythonProvider.__init__
    functionSourceFile: pip._internal.network.auth
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - username
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 80
    functionName: pip._internal.network.auth.KeyRingPythonProvider.get_auth_info
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached:
    - typing.cast.debug
    - keyring.get_credential
    - keyring.get_password
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: keyring.get_credential
    functionSourceFile: keyring
    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: keyring.get_password
    functionSourceFile: keyring
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - url
    - username
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 98
    functionName: pip._internal.network.auth.KeyRingPythonProvider.save_auth_info
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached:
    - keyring.set_password
    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: keyring.set_password
    functionSourceFile: keyring
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cmd
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 113
    functionName: pip._internal.network.auth.KeyRingCliProvider.__init__
    functionSourceFile: pip._internal.network.auth
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - username
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 116
    functionName: pip._internal.network.auth.KeyRingCliProvider.get_auth_info
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached:
    - os.environ.copy
    - subprocess.run
    - res.stdout.decode
    - pip._internal.network.auth.KeyRingCliProvider._get_password
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - service_name
    - username
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 128
    functionName: pip._internal.network.auth.KeyRingCliProvider._get_password
    functionSourceFile: pip._internal.network.auth
    functionUses: 1
    functionsReached:
    - subprocess.run
    - res.stdout.decode
    - os.environ.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - url
    - username
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 125
    functionName: pip._internal.network.auth.KeyRingCliProvider.save_auth_info
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached:
    - subprocess.run
    - pip._internal.network.auth.KeyRingCliProvider._set_password
    - os.environ.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - service_name
    - username
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: pip._internal.network.auth.KeyRingCliProvider._set_password
    functionSourceFile: pip._internal.network.auth
    functionUses: 1
    functionsReached:
    - subprocess.run
    - os.environ.copy
    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: res.stdout.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 6
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - provider
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 162
    functionName: pip._internal.network.auth.get_keyring_provider
    functionSourceFile: pip._internal.network.auth
    functionUses: 1
    functionsReached:
    - abc.ABC.__init__
    - os.pathsep.join
    - typing.cast.verbose
    - typing.cast.warning
    - shutil.which
    - os.defpath.split
    - typing.cast.isEnabledFor
    - pathlib.Path
    - cli.startswith
    - os.confstr
    - pip._internal.network.auth.KeyRingCliProvider.__init__
    - typing.no_type_check
    - paths.append
    - pip._internal.network.auth.KeyRingPythonProvider.__init__
    - pip._internal.network.auth.get_keyring_provider.PATH_as_shutil_which_determines_it
    - pathlib.Path.samefile
    - os.environ.get
    - sysconfig.get_path
    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: cli.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.no_type_check
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 187
    functionName: pip._internal.network.auth.get_keyring_provider.PATH_as_shutil_which_determines_it
    functionSourceFile: pip._internal.network.auth
    functionUses: 2
    functionsReached:
    - os.environ.get
    - os.confstr
    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.defpath.split
    functionSourceFile: os
    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: pathlib.Path.samefile
    functionSourceFile: pathlib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - provider
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 246
    functionName: pip._internal.network.auth.MultiDomainBasicAuth.keyring_provider
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - typing.no_type_check
    - pip._internal.network.auth.KeyRingPythonProvider.__init__
    - os.environ.get
    - abc.ABC.__init__
    - os.pathsep.join
    - os.defpath.split
    - pathlib.Path.samefile
    - typing.cast.verbose
    - os.confstr
    - typing.cast.isEnabledFor
    - cli.startswith
    - pip._internal.network.auth.get_keyring_provider
    - pip._internal.network.auth.get_keyring_provider.PATH_as_shutil_which_determines_it
    - typing.cast.warning
    - shutil.which
    - pip._internal.network.auth.KeyRingCliProvider.__init__
    - paths.append
    - sysconfig.get_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 254
    functionName: pip._internal.network.auth.MultiDomainBasicAuth.use_keyring
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - username
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 260
    functionName: pip._internal.network.auth.MultiDomainBasicAuth._get_keyring_auth
    functionSourceFile: pip._internal.network.auth
    functionUses: 5
    functionsReached:
    - typing.cast.warning
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 282
    functionName: pip._internal.network.auth.MultiDomainBasicAuth._get_index_url
    functionSourceFile: pip._internal.network.auth
    functionUses: 4
    functionsReached:
    - urllib.parse.unquote
    - candidates.append
    - candidates.sort
    - pip._internal.utils.misc._get_netloc
    - auth.split
    - urllib.parse.urlsplit
    - index.rstrip
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc._transform_url
    - typing.cast
    - pip._internal.utils.misc.remove_auth_from_url
    - pip._internal.utils.misc._redact_netloc
    - pip._internal.utils.misc.split_auth_from_netloc
    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: index.rstrip
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.network.auth.MultiDomainBasicAuth._get_index_url.<lambda1>
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached:
    - os.path.commonprefix.rfind
    - os.path.commonprefix
    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.commonprefix.rfind
    functionSourceFile: os
    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: candidates.sort
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 6
    IfCount: 9
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - original_url
    - allow_netrc
    - allow_keyring
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 330
    functionName: pip._internal.network.auth.MultiDomainBasicAuth._get_new_credentials
    functionSourceFile: pip._internal.network.auth
    functionUses: 3
    functionsReached:
    - urllib.parse.unquote
    - candidates.sort
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - pip._internal.utils.misc.redact_netloc
    - index.rstrip
    - pip._internal.utils.misc._redact_netloc
    - os.environ.get
    - candidates.append
    - netrc.netrc
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - pip._internal.utils.misc.split_auth_netloc_from_url
    - pip._internal.utils.misc.remove_auth_from_url
    - os.path.expanduser
    - pip._internal.utils.misc.split_auth_from_netloc
    - pip._internal.network.auth.MultiDomainBasicAuth._get_keyring_auth
    - pip._vendor.requests.utils.get_netrc_auth
    - auth.split
    - urllib.parse.urlunsplit
    - typing.cast
    - netrc.netrc.authenticators
    - pip._internal.network.auth.MultiDomainBasicAuth._get_index_url
    - splitstr.decode
    - typing.cast.warning
    - urllib.parse.urlsplit
    - os.path.exists
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - typing.cast.debug
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - original_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 387
    functionName: pip._internal.network.auth.MultiDomainBasicAuth._get_url_and_credentials
    functionSourceFile: pip._internal.network.auth
    functionUses: 1
    functionsReached:
    - urllib.parse.unquote
    - candidates.sort
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - pip._internal.utils.misc.redact_netloc
    - index.rstrip
    - pip._internal.network.auth.MultiDomainBasicAuth._get_new_credentials
    - pip._internal.utils.misc._redact_netloc
    - os.environ.get
    - candidates.append
    - netrc.netrc
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - pip._internal.utils.misc.split_auth_netloc_from_url
    - pip._internal.utils.misc.remove_auth_from_url
    - os.path.expanduser
    - pip._internal.utils.misc.split_auth_from_netloc
    - pip._internal.network.auth.MultiDomainBasicAuth._get_keyring_auth
    - pip._vendor.requests.utils.get_netrc_auth
    - auth.split
    - urllib.parse.urlunsplit
    - typing.cast
    - netrc.netrc.authenticators
    - pip._internal.network.auth.MultiDomainBasicAuth._get_index_url
    - splitstr.decode
    - typing.cast.warning
    - urllib.parse.urlsplit
    - os.path.exists
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - typing.cast.debug
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 435
    functionName: pip._internal.network.auth.MultiDomainBasicAuth.__call__
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached:
    - urllib.parse.unquote
    - candidates.sort
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - pip._internal.utils.misc.redact_netloc
    - index.rstrip
    - pip._internal.network.auth.MultiDomainBasicAuth._get_new_credentials
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - pip._internal.utils.misc._redact_netloc
    - os.environ.get
    - candidates.append
    - netrc.netrc
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - pip._internal.utils.misc.split_auth_netloc_from_url
    - pip._internal.utils.misc.remove_auth_from_url
    - os.path.expanduser
    - pip._internal.utils.misc.split_auth_from_netloc
    - pip._internal.network.auth.MultiDomainBasicAuth._get_keyring_auth
    - pip._vendor.requests.utils.get_netrc_auth
    - auth.split
    - urllib.parse.urlunsplit
    - req.register_hook
    - typing.cast
    - netrc.netrc.authenticators
    - pip._internal.network.auth.MultiDomainBasicAuth._get_index_url
    - splitstr.decode
    - pip._internal.network.auth.MultiDomainBasicAuth._get_url_and_credentials
    - typing.cast.warning
    - urllib.parse.urlsplit
    - os.path.exists
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - typing.cast.debug
    - urllib.parse.urlparse
    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.register_hook
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - netloc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 452
    functionName: pip._internal.network.auth.MultiDomainBasicAuth._prompt_for_password
    functionSourceFile: pip._internal.network.auth
    functionUses: 1
    functionsReached:
    - pip._internal.utils.misc._check_no_input
    - typing.cast.warning
    - <builtin>.str
    - pip._internal.utils.misc.ask_password
    - getpass.getpass
    - os.environ.get
    - pip._internal.utils.misc.ask_input
    - <builtin>.input
    - pip._internal.network.auth.MultiDomainBasicAuth._get_keyring_auth
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 466
    functionName: pip._internal.network.auth.MultiDomainBasicAuth._should_save_password_to_keyring
    functionSourceFile: pip._internal.network.auth
    functionUses: 1
    functionsReached:
    - pip._internal.utils.misc._check_no_input
    - pip._internal.utils.misc.ask
    - <builtin>.print
    - response.strip
    - <builtin>.input
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - resp
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 475
    functionName: pip._internal.network.auth.MultiDomainBasicAuth.handle_401
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.network.auth.MultiDomainBasicAuth._should_save_password_to_keyring
    - candidates.sort
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - pip._internal.network.auth.MultiDomainBasicAuth._prompt_for_password
    - pip._internal.utils.misc.ask
    - pip._internal.utils.misc.redact_netloc
    - index.rstrip
    - pip._internal.network.auth.MultiDomainBasicAuth._get_new_credentials
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - pip._internal.utils.misc._redact_netloc
    - os.environ.get
    - new_resp.history.append
    - candidates.append
    - netrc.netrc
    - pip._internal.utils.misc._check_no_input
    - <builtin>.str
    - resp.raw.release_conn
    - pip._internal.utils.misc.ask_password
    - urllib.parse.urlparse.netloc.split
    - resp.connection.send
    - pip._internal.utils.misc.split_auth_netloc_from_url
    - pip._internal.utils.misc.remove_auth_from_url
    - os.path.expanduser
    - pip._internal.utils.misc.split_auth_from_netloc
    - pip._internal.network.auth.MultiDomainBasicAuth._get_keyring_auth
    - pip._vendor.requests.utils.get_netrc_auth
    - auth.split
    - typing.NamedTuple.__init__
    - getpass.getpass
    - urllib.parse.urlunsplit
    - req.register_hook
    - typing.cast
    - netrc.netrc.authenticators
    - pip._internal.network.auth.MultiDomainBasicAuth._get_index_url
    - splitstr.decode
    - typing.cast.warning
    - urllib.parse.urlsplit
    - os.path.exists
    - <builtin>.print
    - response.strip
    - pip._internal.utils.misc._transform_url
    - urllib.parse.quote
    - pip._internal.utils.misc.ask_input
    - typing.cast.debug
    - <builtin>.input
    - urllib.parse.urlparse
    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: resp.raw.release_conn
    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: resp.connection.send
    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: new_resp.history.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - resp
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 538
    functionName: pip._internal.network.auth.MultiDomainBasicAuth.warn_on_401
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached:
    - typing.cast.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - resp
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 546
    functionName: pip._internal.network.auth.MultiDomainBasicAuth.save_credentials
    functionSourceFile: pip._internal.network.auth
    functionUses: 0
    functionsReached:
    - typing.cast.info
    - typing.cast.exception
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.exception
    functionSourceFile: typing
    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: pip._vendor.distro
    functionSourceFile: pip._vendor.distro
    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: 5
    functionLinenumber: -1
    functionName: pip._vendor.distro.distro
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - <builtin>.dict
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - pip._vendor.distro.distro.LinuxDistribution.major_version
    - os.environ.get
    - parser.parse_args
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.__init__
    - logging.StreamHandler
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - os.path.join
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - argparse.ArgumentParser
    - pip._vendor.distro.distro.LinuxDistribution.info
    - pip._vendor.distro.distro.LinuxDistribution.minor_version
    - versions.append
    - os.path.isfile
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - logging.getLogger
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - json.dumps
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.build_number
    - version_regex.match
    - logger.addHandler
    - logger.setLevel
    - parser.add_argument
    - logger.info
    - matches.group
    - pip._vendor.distro.distro.main
    - pip._vendor.distro.distro.LinuxDistribution.name
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.version_parts
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30fc959430>
    argNames:
    - full_distribution_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 157
    functionName: pip._vendor.distro.distro.linux_distribution
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.linux_distribution
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - warnings.warn
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - pip._vendor.distro.distro.LinuxDistribution.name
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6bd9460>
    argNames:
    - self
    - full_distribution_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 813
    functionName: pip._vendor.distro.distro.LinuxDistribution.linux_distribution
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 1
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - pip._vendor.distro.distro.LinuxDistribution.name
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    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: 3
    functionLinenumber: 200
    functionName: pip._vendor.distro.distro.id
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 829
    functionName: pip._vendor.distro.distro.LinuxDistribution.id
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 20
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - distro_id.lower
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b89310>
    argNames:
    - pretty
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 283
    functionName: pip._vendor.distro.distro.name
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.name
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fc9641f0>
    argNames:
    - self
    - pretty
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 857
    functionName: pip._vendor.distro.distro.LinuxDistribution.name
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 6
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b89c70>
    - <ast.Constant object at 0x7f30d6b899a0>
    argNames:
    - pretty
    - best
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 322
    functionName: pip._vendor.distro.distro.version
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - versions.insert
    - pip._vendor.distro.distro.LinuxDistribution.version
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fc961280>
    - <ast.Constant object at 0x7f30fc961250>
    argNames:
    - self
    - pretty
    - best
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 880
    functionName: pip._vendor.distro.distro.LinuxDistribution.version
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 18
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b89760>
    argNames:
    - best
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 370
    functionName: pip._vendor.distro.distro.version_parts
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - version_regex.match
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.version_parts
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fc9575e0>
    argNames:
    - self
    - best
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 922
    functionName: pip._vendor.distro.distro.LinuxDistribution.version_parts
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 12
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - version_regex.match
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b89f40>
    argNames:
    - best
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 387
    functionName: pip._vendor.distro.distro.major_version
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - pip._vendor.distro.distro.LinuxDistribution.major_version
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - version_regex.match
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.version_parts
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fc954a00>
    argNames:
    - self
    - best
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 938
    functionName: pip._vendor.distro.distro.LinuxDistribution.major_version
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 6
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - version_regex.match
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.version_parts
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30d322bdf0>
    argNames:
    - best
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 400
    functionName: pip._vendor.distro.distro.minor_version
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.minor_version
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - version_regex.match
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.version_parts
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fc9546a0>
    argNames:
    - self
    - best
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 946
    functionName: pip._vendor.distro.distro.LinuxDistribution.minor_version
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 6
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - version_regex.match
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.version_parts
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc702b0>
    argNames:
    - best
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 413
    functionName: pip._vendor.distro.distro.build_number
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.build_number
    - version_regex.match
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.version_parts
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fc954340>
    argNames:
    - self
    - best
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 954
    functionName: pip._vendor.distro.distro.LinuxDistribution.build_number
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 6
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - version_regex.match
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.version_parts
    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: 2
    functionLinenumber: 426
    functionName: pip._vendor.distro.distro.like
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    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: 962
    functionName: pip._vendor.distro.distro.LinuxDistribution.like
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 20
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    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: 2
    functionLinenumber: 443
    functionName: pip._vendor.distro.distro.codename
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    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: 970
    functionName: pip._vendor.distro.distro.LinuxDistribution.codename
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 20
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b878e0>
    - <ast.Constant object at 0x7f30d6b87d00>
    argNames:
    - pretty
    - best
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 467
    functionName: pip._vendor.distro.distro.info
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - <builtin>.dict
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - pip._vendor.distro.distro.LinuxDistribution.major_version
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.info
    - pip._vendor.distro.distro.LinuxDistribution.minor_version
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.build_number
    - version_regex.match
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.version_parts
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fc8c5730>
    - <ast.Constant object at 0x7f30fc8c5700>
    argNames:
    - self
    - pretty
    - best
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 987
    functionName: pip._vendor.distro.distro.LinuxDistribution.info
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 4
    functionsReached:
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - <builtin>.dict
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - pip._vendor.distro.distro.LinuxDistribution.major_version
    - line.strip
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.minor_version
    - versions.append
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.build_number
    - version_regex.match
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.version_parts
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 511
    functionName: pip._vendor.distro.distro.os_release_info
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.os_release_info
    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: 1006
    functionName: pip._vendor.distro.distro.LinuxDistribution.os_release_info
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 521
    functionName: pip._vendor.distro.distro.lsb_release_info
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_info
    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: 1015
    functionName: pip._vendor.distro.distro.LinuxDistribution.lsb_release_info
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 532
    functionName: pip._vendor.distro.distro.distro_release_info
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_info
    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: 1025
    functionName: pip._vendor.distro.distro.LinuxDistribution.distro_release_info
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 542
    functionName: pip._vendor.distro.distro.uname_info
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.uname_info
    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: 1035
    functionName: pip._vendor.distro.distro.LinuxDistribution.uname_info
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - attribute
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 550
    functionName: pip._vendor.distro.distro.os_release_attr
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - attribute
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1050
    functionName: pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    functionSourceFile: ''
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - attribute
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 569
    functionName: pip._vendor.distro.distro.lsb_release_attr
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - attribute
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1059
    functionName: pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    functionSourceFile: ''
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - attribute
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 589
    functionName: pip._vendor.distro.distro.distro_release_attr
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - attribute
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1068
    functionName: pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    functionSourceFile: ''
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - attribute
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 608
    functionName: pip._vendor.distro.distro.uname_attr
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - attribute
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1077
    functionName: pip._vendor.distro.distro.LinuxDistribution.uname_attr
    functionSourceFile: ''
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 635
    functionName: pip._vendor.distro.distro.cached_property.__init__
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - obj
    - owner
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 639
    functionName: pip._vendor.distro.distro.cached_property.__get__
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - functools.cached_property._f
    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.cached_property._f
    functionSourceFile: functools
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6b6ea90>
    - <ast.Constant object at 0x7f30f6b6e370>
    - <ast.Constant object at 0x7f30f6b6edf0>
    - <ast.Constant object at 0x7f30da58a970>
    - <ast.Constant object at 0x7f30da58a940>
    - <ast.Constant object at 0x7f30e795b0d0>
    argNames:
    - self
    - include_lsb
    - os_release_file
    - distro_release_file
    - include_uname
    - root_dir
    - include_oslevel
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 663
    functionName: pip._vendor.distro.distro.LinuxDistribution.__init__
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 3
    functionsReached:
    - os.path.isfile
    - os.path.join
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: 796
    functionName: pip._vendor.distro.distro.LinuxDistribution.__repr__
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - distro_id
    - table
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 835
    functionName: pip._vendor.distro.distro.LinuxDistribution.id.normalize
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 21
    functionsReached:
    - table.get
    - distro_id.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: distro_id.lower
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: table.get
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1330
    functionName: pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 21
    functionsReached:
    - line.strip
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - matches.group
    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: 1044
    functionName: pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    functionSourceFile: ''
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: versions.insert
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: versions.append
    functionSourceFile: <builtin>
    functionUses: 36
    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: v.count
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: version.count
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: version_regex.match
    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: matches.groups
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.distro.distro.LinuxDistribution
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - functools.cached_property
    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: 1087
    functionName: pip._vendor.distro.distro.LinuxDistribution._os_release_info
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - re.search
    - os.path.isfile
    - match.group
    - k.lower
    - shlex.shlex
    - <builtin>.open
    - token.split
    - pip._vendor.distro.distro.LinuxDistribution._parse_os_release_content
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - lines
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1100
    functionName: pip._vendor.distro.distro.LinuxDistribution._parse_os_release_content
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 1
    functionsReached:
    - re.search
    - match.group
    - shlex.shlex
    - k.lower
    - token.split
    - <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: shlex.shlex
    functionSourceFile: shlex
    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: token.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.search
    functionSourceFile: re
    functionUses: 33
    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: 1150
    functionName: pip._vendor.distro.distro.LinuxDistribution._lsb_release_info
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution._parse_lsb_release_content
    - line.strip
    - subprocess.check_output
    - <builtin>.len
    - bytestring.decode
    - sys.getfilesystemencoding
    - props.update
    - pip._vendor.distro.distro.LinuxDistribution._to_str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - bytestring
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1244
    functionName: pip._vendor.distro.distro.LinuxDistribution._to_str
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 3
    functionsReached:
    - bytestring.decode
    - sys.getfilesystemencoding
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - lines
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1169
    functionName: pip._vendor.distro.distro.LinuxDistribution._parse_lsb_release_content
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 1
    functionsReached:
    - props.update
    - <builtin>.len
    - 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: props.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1193
    functionName: pip._vendor.distro.distro.LinuxDistribution._uname_info
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution._parse_uname_content
    - re.search
    - subprocess.check_output
    - bytestring.decode
    - sys.getfilesystemencoding
    - pip._vendor.distro.distro.LinuxDistribution._to_str
    - match.groups
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - lines
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1225
    functionName: pip._vendor.distro.distro.LinuxDistribution._parse_uname_content
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 1
    functionsReached:
    - re.search
    - match.groups
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1205
    functionName: pip._vendor.distro.distro.LinuxDistribution._oslevel_info
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution._to_str
    - bytestring.decode
    - subprocess.check_output
    - sys.getfilesystemencoding
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1215
    functionName: pip._vendor.distro.distro.LinuxDistribution._debian_version
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - fp.readline
    - 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: fp.readline
    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.getfilesystemencoding
    functionSourceFile: sys
    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: bytestring.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1249
    functionName: pip._vendor.distro.distro.LinuxDistribution._distro_release_info
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 0
    functionsReached:
    - basenames.sort
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_file
    - os.path.basename
    - line.strip
    - match.group
    - os.path.isfile
    - os.listdir
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - matches.group
    - <builtin>.open
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - fp.readline
    - os.path.join
    - _DISTRO_RELEASE_BASENAME_PATTERN.match
    - distro_info.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filepath
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1307
    functionName: pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_file
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 1
    functionsReached:
    - line.strip
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - matches.group
    - <builtin>.open
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - fp.readline
    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: _DISTRO_RELEASE_BASENAME_PATTERN.match
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: basenames.sort
    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: distro_info.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: matches.group
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1358
    functionName: pip._vendor.distro.distro.main
    functionSourceFile: pip._vendor.distro.distro
    functionUses: 2
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.version_parts
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - <builtin>.dict
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - pip._vendor.distro.distro.LinuxDistribution.major_version
    - parser.parse_args
    - line.strip
    - logging.StreamHandler
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - os.path.join
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - argparse.ArgumentParser
    - pip._vendor.distro.distro.LinuxDistribution.info
    - pip._vendor.distro.distro.LinuxDistribution.minor_version
    - versions.append
    - os.path.isfile
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - logging.getLogger
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - json.dumps
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.build_number
    - version_regex.match
    - logger.addHandler
    - logger.setLevel
    - parser.add_argument
    - logger.info
    - matches.group
    - pip._vendor.distro.distro.LinuxDistribution.name
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.models.search_scope
    functionSourceFile: pip._internal.models.search_scope
    functionUses: 0
    functionsReached:
    - logging.getLogger
    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: link.startswith
    functionSourceFile: <builtin>
    functionUses: 17
    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: built_find_links.append
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - find_links
    - index_urls
    - no_index
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 67
    functionName: pip._internal.models.search_scope.SearchScope.__init__
    functionSourceFile: ''
    functionUses: 21
    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: 6
    functionLinenumber: 77
    functionName: pip._internal.models.search_scope.SearchScope.get_formatted_locations
    functionSourceFile: pip._internal.models.search_scope
    functionUses: 0
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - lines.append
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - urllib.parse.urlunsplit
    - typing.cast
    - pip._internal.utils.misc._redact_netloc
    - pip._internal.utils.misc.split_auth_from_netloc
    - logger.warning
    - redacted_index_urls.append
    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: redacted_index_urls.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - project_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 112
    functionName: pip._internal.models.search_scope.SearchScope.get_index_urls_locations
    functionSourceFile: pip._internal.models.search_scope
    functionUses: 0
    functionsReached:
    - posixpath.join
    - pip._internal.models.search_scope.SearchScope.get_index_urls_locations.mkurl_pypi_url
    - urllib.parse.quote
    - typing.cast
    - _canonicalize_regex.sub
    - loc.endswith
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 119
    functionName: pip._internal.models.search_scope.SearchScope.get_index_urls_locations.mkurl_pypi_url
    functionSourceFile: pip._internal.models.search_scope
    functionUses: 1
    functionsReached:
    - posixpath.join
    - urllib.parse.quote
    - typing.cast
    - _canonicalize_regex.sub
    - loc.endswith
    - pip._vendor.packaging.utils.canonicalize_name
    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: posixpath.join
    functionSourceFile: posixpath
    functionUses: 17
    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: loc.endswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.index.sources
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached:
    - logging.getLogger
    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: 31
    functionName: pip._internal.index.sources.LinkSource.link
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 35
    functionName: pip._internal.index.sources.LinkSource.page_candidates
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 39
    functionName: pip._internal.index.sources.LinkSource.file_links
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - file_url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: pip._internal.index.sources._is_html_file
    functionSourceFile: pip._internal.index.sources
    functionUses: 5
    functionsReached:
    - mimetypes.guess_type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 51
    functionName: pip._internal.index.sources._FlatDirectoryToUrls.__init__
    functionSourceFile: pip._internal.index.sources
    functionUses: 6
    functionsReached:
    - collections.defaultdict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 57
    functionName: pip._internal.index.sources._FlatDirectoryToUrls._scan_directory
    functionSourceFile: pip._internal.index.sources
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - interpreter.lower
    - pip._internal.utils.urls.path_to_url
    - <builtin>.frozenset
    - pip._vendor.packaging.utils.parse_wheel_filename
    - pip._vendor.packaging.tags.parse_tag
    - interpreters.split
    - re.match
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - tags.add
    - build_match.group
    - abis.split
    - letter.lower
    - filename.count
    - <builtin>.set
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.hash
    - platform.lower
    - os.scandir
    - filename.endswith
    - platforms.split
    - mimetypes.guess_type
    - pip._vendor.packaging.utils.parse_sdist_filename
    - <builtin>.len
    - pip._vendor.packaging.version._parse_local_version
    - filename.split
    - os.path.normpath
    - tag.split
    - os.path.abspath
    - _build_tag_regex.match
    - typing.cast
    - file_stem.rpartition
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - pip._vendor.packaging.tags.Tag.__init__
    - match.group
    - urllib.parse.urljoin
    - abi.lower
    - pip._internal.index.sources._is_html_file
    - pip._vendor.packaging.utils.canonicalize_name
    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: 5
    functionLinenumber: 81
    functionName: pip._internal.index.sources._FlatDirectoryToUrls.page_candidates
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - interpreter.lower
    - pip._internal.utils.urls.path_to_url
    - pip._internal.index.sources._FlatDirectoryToUrls._scan_directory
    - <builtin>.frozenset
    - pip._vendor.packaging.utils.parse_wheel_filename
    - pip._vendor.packaging.tags.parse_tag
    - interpreters.split
    - re.match
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - tags.add
    - build_match.group
    - abis.split
    - letter.lower
    - filename.count
    - <builtin>.set
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.hash
    - platform.lower
    - os.scandir
    - filename.endswith
    - platforms.split
    - mimetypes.guess_type
    - pip._vendor.packaging.utils.parse_sdist_filename
    - <builtin>.len
    - pip._vendor.packaging.version._parse_local_version
    - filename.split
    - os.path.normpath
    - tag.split
    - os.path.abspath
    - _build_tag_regex.match
    - typing.cast
    - file_stem.rpartition
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - pip._vendor.packaging.tags.Tag.__init__
    - match.group
    - urllib.parse.urljoin
    - abi.lower
    - pip._internal.index.sources._is_html_file
    - pip._vendor.packaging.utils.canonicalize_name
    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: 5
    functionLinenumber: 88
    functionName: pip._internal.index.sources._FlatDirectoryToUrls.project_name_to_urls
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - interpreter.lower
    - pip._internal.utils.urls.path_to_url
    - pip._internal.index.sources._FlatDirectoryToUrls._scan_directory
    - <builtin>.frozenset
    - pip._vendor.packaging.utils.parse_wheel_filename
    - pip._vendor.packaging.tags.parse_tag
    - interpreters.split
    - re.match
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - tags.add
    - build_match.group
    - abis.split
    - letter.lower
    - filename.count
    - <builtin>.set
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.hash
    - platform.lower
    - os.scandir
    - filename.endswith
    - platforms.split
    - mimetypes.guess_type
    - pip._vendor.packaging.utils.parse_sdist_filename
    - <builtin>.len
    - pip._vendor.packaging.version._parse_local_version
    - filename.split
    - os.path.normpath
    - tag.split
    - os.path.abspath
    - _build_tag_regex.match
    - typing.cast
    - file_stem.rpartition
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - pip._vendor.packaging.tags.Tag.__init__
    - match.group
    - urllib.parse.urljoin
    - abi.lower
    - pip._internal.index.sources._is_html_file
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - candidates_from_page
    - path
    - project_name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 106
    functionName: pip._internal.index.sources._FlatDirectorySource.__init__
    functionSourceFile: pip._internal.index.sources
    functionUses: 5
    functionsReached:
    - collections.defaultdict
    - pip._internal.index.sources._FlatDirectoryToUrls.__init__
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 123
    functionName: pip._internal.index.sources._FlatDirectorySource.link
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 126
    functionName: pip._internal.index.sources._FlatDirectorySource.page_candidates
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - format_str.format
    - pip._internal.utils.urls.path_to_url
    - link_hash.as_dict
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.abspath
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - cls._hash_url_fragment_re.search
    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: 8
    functionLinenumber: 130
    functionName: pip._internal.index.sources._FlatDirectorySource.file_links
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - format_str.format
    - pip._internal.utils.urls.path_to_url
    - link_hash.as_dict
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.abspath
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - candidates_from_page
    - link
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 145
    functionName: pip._internal.index.sources._LocalFileSource.__init__
    functionSourceFile: pip._internal.index.sources
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 154
    functionName: pip._internal.index.sources._LocalFileSource.link
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    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: 157
    functionName: pip._internal.index.sources._LocalFileSource.page_candidates
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached:
    - pip._internal.index.sources._is_html_file
    - mimetypes.guess_type
    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: 162
    functionName: pip._internal.index.sources._LocalFileSource.file_links
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached:
    - pip._internal.index.sources._is_html_file
    - mimetypes.guess_type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - candidates_from_page
    - page_validator
    - link
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 177
    functionName: pip._internal.index.sources._RemoteFileSource.__init__
    functionSourceFile: pip._internal.index.sources
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 188
    functionName: pip._internal.index.sources._RemoteFileSource.link
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    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: 0
    functionLinenumber: 191
    functionName: pip._internal.index.sources._RemoteFileSource.page_candidates
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 196
    functionName: pip._internal.index.sources._RemoteFileSource.file_links
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - candidates_from_page
    - link
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 207
    functionName: pip._internal.index.sources._IndexDirectorySource.__init__
    functionSourceFile: pip._internal.index.sources
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 216
    functionName: pip._internal.index.sources._IndexDirectorySource.link
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 219
    functionName: pip._internal.index.sources._IndexDirectorySource.page_candidates
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 222
    functionName: pip._internal.index.sources._IndexDirectorySource.file_links
    functionSourceFile: pip._internal.index.sources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: location.startswith
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.req
    functionSourceFile: pip._internal.req
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 22
    functionName: pip._internal.req.InstallationResult.__init__
    functionSourceFile: pip._internal.req
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 25
    functionName: pip._internal.req.InstallationResult.__repr__
    functionSourceFile: pip._internal.req
    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:
    - requirements
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 29
    functionName: pip._internal.req._validate_requirements
    functionSourceFile: pip._internal.req
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 7
    IfCount: 4
    argCount: 8
    argDefaultValues: []
    argNames:
    - requirements
    - global_options
    - root
    - home
    - prefix
    - warn_script_location
    - use_user_site
    - pycompile
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 37
    functionName: pip._internal.req.install_given_reqs
    functionSourceFile: pip._internal.req
    functionUses: 2
    functionsReached:
    - requirement.install
    - to_install.keys
    - pip._internal.req._validate_requirements
    - pip._internal.req.InstallationResult.__init__
    - collections.OrderedDict
    - to_install.items
    - uninstalled_pathset.commit
    - requirement.uninstall
    - logger.info
    - installed.append
    - <builtin>.getattr
    - uninstalled_pathset.rollback
    - pip._internal.utils.logging.indent_log
    - pip._internal.utils.logging.get_indentation
    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: to_install.keys
    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: to_install.items
    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: requirement.uninstall
    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: requirement.install
    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: uninstalled_pathset.rollback
    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: uninstalled_pathset.commit
    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: installed.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.req.req_set
    functionSourceFile: pip._internal.req.req_set
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f2592700>
    argNames:
    - self
    - check_supported_wheels
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 16
    functionName: pip._internal.req.req_set.RequirementSet.__init__
    functionSourceFile: pip._internal.req.req_set
    functionUses: 2
    functionsReached:
    - collections.OrderedDict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: pip._internal.req.req_set.RequirementSet.__str__
    functionSourceFile: pip._internal.req.req_set
    functionUses: 0
    functionsReached:
    - <builtin>.sorted
    - <builtin>.str
    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: 2
    functionLinenumber: -1
    functionName: pip._internal.req.req_set.RequirementSet.__str__.<lambda1>
    functionSourceFile: pip._internal.req.req_set
    functionUses: 0
    functionsReached:
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._internal.req.req_set.RequirementSet.__repr__
    functionSourceFile: pip._internal.req.req_set
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.sorted
    - <builtin>.str
    - format_string.format
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._internal.req.req_set.RequirementSet.__repr__.<lambda1>
    functionSourceFile: pip._internal.req.req_set
    functionUses: 0
    functionsReached:
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    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: format_string.format
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - install_req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 44
    functionName: pip._internal.req.req_set.RequirementSet.add_unnamed_requirement
    functionSourceFile: pip._internal.req.req_set
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - install_req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 48
    functionName: pip._internal.req.req_set.RequirementSet.add_named_requirement
    functionSourceFile: pip._internal.req.req_set
    functionUses: 5
    functionsReached:
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 54
    functionName: pip._internal.req.req_set.RequirementSet.has_requirement
    functionSourceFile: pip._internal.req.req_set
    functionUses: 0
    functionsReached:
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 62
    functionName: pip._internal.req.req_set.RequirementSet.get_requirement
    functionSourceFile: pip._internal.req.req_set
    functionUses: 5
    functionsReached:
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 71
    functionName: pip._internal.req.req_set.RequirementSet.all_requirements
    functionSourceFile: pip._internal.req.req_set
    functionUses: 0
    functionsReached:
    - <builtin>.list
    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: 75
    functionName: pip._internal.req.req_set.RequirementSet.requirements_to_install
    functionSourceFile: pip._internal.req.req_set
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 87
    functionName: pip._internal.req.req_set.RequirementSet.warn_legacy_versions_and_specifiers
    functionSourceFile: pip._internal.req.req_set
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - format_str.format
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.any
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    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: pip._internal.models.selection_prefs
    functionSourceFile: pip._internal.models.selection_prefs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc6f8b0>
    - <ast.Constant object at 0x7f30fcc6f460>
    - <ast.Constant object at 0x7f30fcc6f2b0>
    - <ast.Constant object at 0x7f30fcc6f670>
    argNames:
    - self
    - allow_yanked
    - allow_all_prereleases
    - format_control
    - prefer_binary
    - ignore_requires_python
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 24
    functionName: pip._internal.models.selection_prefs.SelectionPreferences.__init__
    functionSourceFile: pip._internal.models.selection_prefs
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.utils.packaging
    functionSourceFile: pip._internal.utils.packaging
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - functools.lru_cache
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - req_string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 38
    functionName: pip._internal.utils.packaging.get_requirement
    functionSourceFile: pip._internal.utils.packaging
    functionUses: 37
    functionsReached:
    - <builtin>.super
    - req.extras.asList
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - urllib.parse.urlunparse
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - warnings.warn
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.set
    - <builtin>.frozenset
    - specifiers.split
    - parsed.add
    - s.strip
    - urllib.parse.urlparse
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - extra
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: pip._internal.utils.packaging.safe_extra
    functionSourceFile: pip._internal.utils.packaging
    functionUses: 0
    functionsReached:
    - re.sub
    - typing.cast
    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: pip._internal.index
    functionSourceFile: pip._internal.index
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.commands
    functionSourceFile: pip._internal.commands
    functionUses: 0
    functionsReached:
    - collections.namedtuple
    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: commands_dict.keys
    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: difflib.get_close_matches
    functionSourceFile: difflib
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.cli.base_command
    functionSourceFile: pip._internal.cli.base_command
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ec0bf760>
    argNames:
    - self
    - name
    - summary
    - isolated
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 49
    functionName: pip._internal.cli.base_command.Command.__init__
    functionSourceFile: pip._internal.cli.base_command
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - shutil.get_terminal_size
    - pip._internal.cli.parser.ConfigOptionParser.__init__
    - pip._internal.cli.base_command.Command.add_options
    - os.path.basename
    - pip._internal.utils.misc.get_prog
    - pip._internal.cli.cmdoptions.make_option_group
    - pip._internal.configuration.Configuration.__init__
    - optparse.OptionGroup.add_option
    - optparse.OptionGroup
    - pip._internal.cli.parser.PrettyHelpFormatter.__init__
    - optparse.OptionParser.add_option_group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 79
    functionName: pip._internal.cli.base_command.Command.add_options
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 82
    functionName: pip._internal.cli.base_command.Command.handle_pip_version_check
    functionSourceFile: pip._internal.cli.base_command
    functionUses: 2
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 91
    functionName: pip._internal.cli.base_command.Command.run
    functionSourceFile: pip._internal.cli.base_command
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 94
    functionName: pip._internal.cli.base_command.Command.parse_args
    functionSourceFile: pip._internal.cli.base_command
    functionUses: 2
    functionsReached:
    - optparse.OptionParser.parse_args
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 98
    functionName: pip._internal.cli.base_command.Command.main
    functionSourceFile: pip._internal.cli.base_command
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - logger.critical
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.bool
    - threading.RLock
    - logging.getLevelName
    - logger.debug
    - pip._vendor.rich.traceback.install.ipy_excepthook_closure
    - os.path.lexists
    - os.fstat
    - pip._vendor.rich.traceback.install
    - threading.local.__init__
    - pip._internal.utils.temp_dir.global_tempdir_manager
    - contextlib.ExitStack.enter_context
    - pip._internal.cli.base_command.Command._main.intercepts_unhandled_exc
    - pip._internal.cli.base_command.Command.run
    - <builtin>.str
    - logging.config.dictConfig
    - pip._internal.cli.command_context.CommandContextMixIn.enter_context
    - os.open
    - os.path.isabs
    - ctypes.wintypes.DWORD
    - <builtin>.set
    - logging.shutdown
    - term.rpartition
    - os.path.realpath
    - pip._internal.cli.base_command.Command._main.intercepts_unhandled_exc.exc_logging_wrapper
    - os.path.expanduser
    - logger.error
    - os.getenv
    - pip._internal.utils.compat.get_path_uid
    - os.close
    - jupyter_columns.isdigit
    - pip._internal.cli.base_command.Command._main
    - pip._internal.cli.base_command.Command.parse_args
    - contextlib.ExitStack
    - sys.exit
    - os.path.islink
    - os.access
    - <builtin>.sorted
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - os.geteuid
    - functools.wraps
    - pip._internal.utils.misc.normalize_path
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - os.path.abspath
    - pip._vendor.rich.console.Console._detect_color_system
    - pip._internal.utils.filesystem.check_path_owner
    - optparse.OptionParser.parse_args
    - pip._vendor.rich._win32_console.GetConsoleMode
    - typing.cast
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - os.stat
    - pip._internal.cli.base_command.Command.handle_pip_version_check
    - logger.warning
    - pip._vendor.rich.console.get_windows_console_features
    - <builtin>.int
    - pip._vendor.rich.console._is_jupyter
    - os.path.normcase
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - os.path.dirname
    - <builtin>.print
    - <builtin>.hasattr
    - lines.isdigit
    - <builtin>.getattr
    - pip._internal.cli.command_context.CommandContextMixIn.main_context
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._internal.utils.logging.setup_logging
    - pip._vendor.rich.console.Console.__init__
    - traceback.print_exc
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 14
    functionName: pip._internal.cli.command_context.CommandContextMixIn.main_context
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 9
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 105
    functionName: pip._internal.cli.base_command.Command._main
    functionSourceFile: pip._internal.cli.base_command
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - logger.critical
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.bool
    - threading.RLock
    - logging.getLevelName
    - logger.debug
    - pip._vendor.rich.traceback.install.ipy_excepthook_closure
    - os.path.lexists
    - os.fstat
    - pip._vendor.rich.traceback.install
    - threading.local.__init__
    - pip._internal.utils.temp_dir.global_tempdir_manager
    - contextlib.ExitStack.enter_context
    - pip._internal.cli.base_command.Command._main.intercepts_unhandled_exc
    - pip._internal.cli.base_command.Command.run
    - <builtin>.str
    - logging.config.dictConfig
    - pip._internal.cli.command_context.CommandContextMixIn.enter_context
    - os.open
    - os.path.isabs
    - ctypes.wintypes.DWORD
    - <builtin>.set
    - term.rpartition
    - os.path.realpath
    - pip._internal.cli.base_command.Command._main.intercepts_unhandled_exc.exc_logging_wrapper
    - os.path.expanduser
    - logger.error
    - os.getenv
    - pip._internal.utils.compat.get_path_uid
    - os.close
    - jupyter_columns.isdigit
    - pip._internal.cli.base_command.Command.parse_args
    - contextlib.ExitStack
    - sys.exit
    - os.path.islink
    - os.access
    - <builtin>.sorted
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - os.geteuid
    - functools.wraps
    - pip._internal.utils.misc.normalize_path
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - os.path.abspath
    - pip._vendor.rich.console.Console._detect_color_system
    - pip._internal.utils.filesystem.check_path_owner
    - optparse.OptionParser.parse_args
    - pip._vendor.rich._win32_console.GetConsoleMode
    - typing.cast
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - os.stat
    - pip._internal.cli.base_command.Command.handle_pip_version_check
    - logger.warning
    - pip._vendor.rich.console.get_windows_console_features
    - <builtin>.int
    - pip._vendor.rich.console._is_jupyter
    - os.path.normcase
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - os.path.dirname
    - <builtin>.print
    - <builtin>.hasattr
    - lines.isdigit
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._internal.utils.logging.setup_logging
    - pip._vendor.rich.console.Console.__init__
    - traceback.print_exc
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.shutdown
    functionSourceFile: logging
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - context_provider
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: pip._internal.cli.command_context.CommandContextMixIn.enter_context
    functionSourceFile: pip._internal.cli.command_context
    functionUses: 10
    functionsReached:
    - contextlib.ExitStack.enter_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - run_func
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 174
    functionName: pip._internal.cli.base_command.Command._main.intercepts_unhandled_exc
    functionSourceFile: pip._internal.cli.base_command
    functionUses: 2
    functionsReached:
    - functools.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 13
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 178
    functionName: pip._internal.cli.base_command.Command._main.intercepts_unhandled_exc.exc_logging_wrapper
    functionSourceFile: pip._internal.cli.base_command
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    - pip._internal.cli.base_command.Command.run
    - logger.critical
    - <builtin>.print
    - logger.debug
    - logger.error
    - traceback.print_exc
    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: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: traceback.print_exc
    functionSourceFile: traceback
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.cli.command_context
    functionSourceFile: pip._internal.cli.command_context
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    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: 8
    functionName: pip._internal.cli.command_context.CommandContextMixIn.__init__
    functionSourceFile: pip._internal.cli.command_context
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - contextlib.ExitStack
    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: pip._internal.cli.command_context.CommandContextMixIn
    functionSourceFile: pip._internal.cli.command_context
    functionUses: 0
    functionsReached:
    - contextlib.contextmanager
    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: contextlib.ExitStack.enter_context
    functionSourceFile: contextlib
    functionUses: 11
    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: pip._internal.operations
    functionSourceFile: pip._internal.operations
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.pyproject
    functionSourceFile: pip._internal.pyproject
    functionUses: 0
    functionsReached:
    - collections.namedtuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 16
    functionName: pip._internal.pyproject._is_list_of_str
    functionSourceFile: pip._internal.pyproject
    functionUses: 1
    functionsReached:
    - <builtin>.all
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 2
    IfCount: 12
    argCount: 4
    argDefaultValues: []
    argNames:
    - use_pep517
    - pyproject_toml
    - setup_py
    - req_name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 29
    functionName: pip._internal.pyproject.load_pyproject_toml
    functionSourceFile: pip._internal.pyproject
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - importlib.util.find_spec
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - typing.NamedTuple.data.dict.get
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - build_system.get
    - collections.namedtuple
    - <builtin>.set
    - s.strip
    - pip._vendor.tomli.loads
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - urllib.parse.urlunparse
    - os.path.isfile
    - pip._internal.pyproject._is_list_of_str
    - req.extras.asList
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - warnings.warn
    - <builtin>.open
    - specifiers.split
    - <builtin>.all
    - f.read
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised:
    - InvalidPyProjectBuildRequires
    - InstallationError
    - MissingPyProjectBuildRequires
    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: pip._vendor.tomli.loads
    functionSourceFile: ''
    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: typing.NamedTuple.data.dict.get
    functionSourceFile: typing
    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: build_system.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.tomli
    functionSourceFile: pip._vendor.tomli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.tomli._parser
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 0
    functionsReached:
    - <builtin>.frozenset
    - types.MappingProxyType
    - <builtin>.chr
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - __fp
    - parse_float
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 57
    functionName: pip._vendor.tomli._parser.load
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 0
    functionsReached:
    - pip._vendor.tomli._parser.loads
    - <builtin>.isinstance
    - datetime_match.end
    - datetime.time
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._re.cached_tz
    - pip._vendor.tomli._parser.parse_key_part
    - typing.NamedTuple.flags.add_pending
    - __fp.read
    - src.index
    - pip._vendor.tomli._parser.Flags.set
    - pip._vendor.tomli._parser.make_safe_parse_float.safe_parse_float
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_literal_str
    - pip._vendor.tomli._re.match_to_number
    - pip._vendor.tomli._parser.key_value_rule
    - match.groups
    - typing.NamedTuple.flags.finalize_pending
    - __s.replace
    - typing.NamedTuple.flags.is_
    - pip._vendor.tomli._re.match_to_datetime
    - pip._vendor.tomli._parser.parse_key_value_pair
    - pip._vendor.tomli._parser.parse_value
    - RE_NUMBER.match
    - micros_str.ljust
    - datetime.timedelta
    - pip._vendor.tomli._parser.skip_comments_and_array_ws
    - HEXDIGIT_CHARS.issuperset
    - RE_DATETIME.match
    - typing.NamedTuple.flags.set
    - datetime.datetime
    - error_on.isdisjoint
    - array.append
    - pip._vendor.tomli._parser.skip_until
    - typing.NamedTuple.__init__
    - RE_LOCALTIME.match
    - pip._vendor.tomli._parser.parse_one_line_basic_str
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.parse_multiline_str
    - b.decode
    - pip._vendor.tomli._parser.Flags.is_
    - pip._vendor.tomli._parser.parse_basic_str
    - pip._vendor.tomli._parser.create_dict_rule
    - typing.NamedTuple.data.append_nest_to_list
    - pip._vendor.tomli._parser.parse_array
    - number_match.end
    - pip._vendor.tomli._parser.NestedDict.__init__
    - pip._vendor.tomli._parser.parse_inline_table
    - datetime.date
    - pip._vendor.tomli._parser.skip_comment
    - pip._vendor.tomli._parser.Flags.__init__
    - typing.NamedTuple.flags.unset_all
    - <builtin>.int
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - <builtin>.chr
    - match.group
    - pip._vendor.tomli._parser.make_safe_parse_float
    - pip._vendor.tomli._parser.skip_chars
    - localtime_match.end
    - pip._vendor.tomli._parser.create_list_rule
    - pip._vendor.tomli._re.match_to_localtime
    - datetime.timezone
    - pip._vendor.tomli._parser.parse_key
    - pip._vendor.tomli._parser.NestedDict.get_or_create_nest
    - typing.NamedTuple.data.get_or_create_nest
    - pip._vendor.tomli._parser.parse_hex_char
    - <builtin>.range
    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: __fp.read
    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: b.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - __s
    - parse_float
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 69
    functionName: pip._vendor.tomli._parser.loads
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - datetime_match.end
    - datetime.time
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._re.cached_tz
    - pip._vendor.tomli._parser.parse_key_part
    - typing.NamedTuple.flags.add_pending
    - src.index
    - pip._vendor.tomli._parser.Flags.set
    - pip._vendor.tomli._parser.make_safe_parse_float.safe_parse_float
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_literal_str
    - pip._vendor.tomli._re.match_to_number
    - pip._vendor.tomli._parser.key_value_rule
    - match.groups
    - __s.replace
    - typing.NamedTuple.flags.finalize_pending
    - typing.NamedTuple.flags.is_
    - pip._vendor.tomli._re.match_to_datetime
    - pip._vendor.tomli._parser.parse_key_value_pair
    - pip._vendor.tomli._parser.parse_value
    - RE_NUMBER.match
    - micros_str.ljust
    - datetime.timedelta
    - pip._vendor.tomli._parser.skip_comments_and_array_ws
    - HEXDIGIT_CHARS.issuperset
    - RE_DATETIME.match
    - typing.NamedTuple.flags.set
    - datetime.datetime
    - error_on.isdisjoint
    - array.append
    - pip._vendor.tomli._parser.skip_until
    - typing.NamedTuple.__init__
    - RE_LOCALTIME.match
    - pip._vendor.tomli._parser.parse_one_line_basic_str
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.parse_multiline_str
    - pip._vendor.tomli._parser.Flags.is_
    - pip._vendor.tomli._parser.parse_basic_str
    - pip._vendor.tomli._parser.create_dict_rule
    - typing.NamedTuple.data.append_nest_to_list
    - pip._vendor.tomli._parser.parse_array
    - number_match.end
    - pip._vendor.tomli._parser.NestedDict.__init__
    - pip._vendor.tomli._parser.parse_inline_table
    - datetime.date
    - pip._vendor.tomli._parser.skip_comment
    - pip._vendor.tomli._parser.Flags.__init__
    - typing.NamedTuple.flags.unset_all
    - <builtin>.int
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - <builtin>.chr
    - match.group
    - pip._vendor.tomli._parser.make_safe_parse_float
    - pip._vendor.tomli._parser.skip_chars
    - localtime_match.end
    - pip._vendor.tomli._parser.create_list_rule
    - pip._vendor.tomli._re.match_to_localtime
    - datetime.timezone
    - pip._vendor.tomli._parser.parse_key
    - pip._vendor.tomli._parser.NestedDict.get_or_create_nest
    - typing.NamedTuple.data.get_or_create_nest
    - pip._vendor.tomli._parser.parse_hex_char
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    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.replace
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 194
    functionName: pip._vendor.tomli._parser.NestedDict.__init__
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 144
    functionName: pip._vendor.tomli._parser.Flags.__init__
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 7
    functionsReached:
    - pip._vendor.tomli._parser.Flags.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - parse_float
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 673
    functionName: pip._vendor.tomli._parser.make_safe_parse_float
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - src
    - pos
    - chars
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 232
    functionName: pip._vendor.tomli._parser.skip_chars
    functionSourceFile: ''
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 5
    argDefaultValues: []
    argNames:
    - src
    - pos
    - out
    - header
    - parse_float
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 323
    functionName: pip._vendor.tomli._parser.key_value_rule
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - datetime_match.end
    - datetime.time
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._re.cached_tz
    - pip._vendor.tomli._parser.parse_key_part
    - typing.NamedTuple.flags.add_pending
    - src.index
    - pip._vendor.tomli._parser.Flags.set
    - pip._vendor.tomli._parser.make_safe_parse_float.safe_parse_float
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_literal_str
    - pip._vendor.tomli._re.match_to_number
    - match.groups
    - typing.NamedTuple.flags.is_
    - pip._vendor.tomli._re.match_to_datetime
    - pip._vendor.tomli._parser.parse_key_value_pair
    - pip._vendor.tomli._parser.parse_value
    - RE_NUMBER.match
    - micros_str.ljust
    - datetime.timedelta
    - pip._vendor.tomli._parser.skip_comments_and_array_ws
    - HEXDIGIT_CHARS.issuperset
    - RE_DATETIME.match
    - datetime.datetime
    - typing.NamedTuple.flags.set
    - error_on.isdisjoint
    - array.append
    - pip._vendor.tomli._parser.skip_until
    - RE_LOCALTIME.match
    - pip._vendor.tomli._parser.parse_one_line_basic_str
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.parse_multiline_str
    - pip._vendor.tomli._parser.Flags.is_
    - pip._vendor.tomli._parser.parse_basic_str
    - pip._vendor.tomli._parser.parse_array
    - number_match.end
    - pip._vendor.tomli._parser.NestedDict.__init__
    - pip._vendor.tomli._parser.parse_inline_table
    - datetime.date
    - pip._vendor.tomli._parser.skip_comment
    - <builtin>.int
    - pip._vendor.tomli._parser.Flags.__init__
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - match.group
    - pip._vendor.tomli._parser.skip_chars
    - localtime_match.end
    - pip._vendor.tomli._re.match_to_localtime
    - datetime.timezone
    - pip._vendor.tomli._parser.parse_key
    - pip._vendor.tomli._parser.NestedDict.get_or_create_nest
    - typing.NamedTuple.data.get_or_create_nest
    - pip._vendor.tomli._parser.parse_hex_char
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.flags.finalize_pending
    functionSourceFile: typing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - src
    - pos
    - out
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 302
    functionName: pip._vendor.tomli._parser.create_list_rule
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 2
    functionsReached:
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._parser.parse_key_part
    - src.index
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_literal_str
    - typing.NamedTuple.flags.is_
    - HEXDIGIT_CHARS.issuperset
    - typing.NamedTuple.flags.set
    - error_on.isdisjoint
    - pip._vendor.tomli._parser.skip_until
    - pip._vendor.tomli._parser.parse_one_line_basic_str
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.parse_basic_str
    - typing.NamedTuple.data.append_nest_to_list
    - <builtin>.int
    - typing.NamedTuple.flags.unset_all
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - pip._vendor.tomli._parser.skip_chars
    - pip._vendor.tomli._parser.parse_key
    - pip._vendor.tomli._parser.parse_hex_char
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - src
    - pos
    - out
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 284
    functionName: pip._vendor.tomli._parser.create_dict_rule
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 2
    functionsReached:
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._parser.parse_key_part
    - src.index
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_literal_str
    - typing.NamedTuple.flags.is_
    - HEXDIGIT_CHARS.issuperset
    - typing.NamedTuple.flags.set
    - error_on.isdisjoint
    - pip._vendor.tomli._parser.skip_until
    - pip._vendor.tomli._parser.parse_one_line_basic_str
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.parse_basic_str
    - <builtin>.int
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - pip._vendor.tomli._parser.skip_chars
    - pip._vendor.tomli._parser.parse_key
    - typing.NamedTuple.data.get_or_create_nest
    - pip._vendor.tomli._parser.parse_hex_char
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - src
    - pos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 263
    functionName: pip._vendor.tomli._parser.skip_comment
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 8
    functionsReached:
    - src.index
    - <builtin>.len
    - error_on.isdisjoint
    - pip._vendor.tomli._parser.skip_until
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - key
    - flag
    - recursive
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 164
    functionName: pip._vendor.tomli._parser.Flags.set
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 9
    functionsReached:
    - pip._vendor.tomli._parser.Flags.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - flag
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 148
    functionName: pip._vendor.tomli._parser.Flags.add_pending
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 151
    functionName: pip._vendor.tomli._parser.Flags.finalize_pending
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 0
    functionsReached:
    - pip._vendor.tomli._parser.Flags.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 156
    functionName: pip._vendor.tomli._parser.Flags.unset_all
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 0
    functionsReached:
    - cont.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cont.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - flag
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 175
    functionName: pip._vendor.tomli._parser.Flags.is_
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - access_lists
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 198
    functionName: pip._vendor.tomli._parser.NestedDict.get_or_create_nest
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 8
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 215
    functionName: pip._vendor.tomli._parser.NestedDict.append_nest_to_list
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 0
    functionsReached:
    - pip._vendor.tomli._parser.NestedDict.get_or_create_nest
    - <builtin>.isinstance
    - list_.append
    linkageType: pythonLinkage
    raised:
    - KeyError
    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: list_.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - src
    - pos
    - expect
    - error_on
    - error_on_eof
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 241
    functionName: pip._vendor.tomli._parser.skip_until
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 15
    functionsReached:
    - src.index
    - <builtin>.len
    - error_on.isdisjoint
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    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: src.index
    functionSourceFile: <builtin>
    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: error_on.isdisjoint
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - src
    - pos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 275
    functionName: pip._vendor.tomli._parser.skip_comments_and_array_ws
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 7
    functionsReached:
    - pip._vendor.tomli._parser.skip_comment
    - pip._vendor.tomli._parser.skip_until
    - <builtin>.len
    - pip._vendor.tomli._parser.skip_chars
    - src.index
    - error_on.isdisjoint
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - src
    - pos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 373
    functionName: pip._vendor.tomli._parser.parse_key
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 9
    functionsReached:
    - <builtin>.int
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - pip._vendor.tomli._parser.parse_one_line_basic_str
    - pip._vendor.tomli._parser.skip_until
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.parse_key_part
    - pip._vendor.tomli._parser.skip_chars
    - pip._vendor.tomli._parser.parse_basic_str
    - src.index
    - HEXDIGIT_CHARS.issuperset
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_literal_str
    - pip._vendor.tomli._parser.parse_hex_char
    - error_on.isdisjoint
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.flags.is_
    functionSourceFile: typing
    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: typing.NamedTuple.flags.set
    functionSourceFile: typing
    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: typing.NamedTuple.data.get_or_create_nest
    functionSourceFile: typing
    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: src.startswith
    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: typing.NamedTuple.flags.unset_all
    functionSourceFile: typing
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.data.append_nest_to_list
    functionSourceFile: typing
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - src
    - pos
    - parse_float
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 357
    functionName: pip._vendor.tomli._parser.parse_key_value_pair
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - datetime_match.end
    - datetime.time
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._re.cached_tz
    - pip._vendor.tomli._parser.parse_key_part
    - src.index
    - pip._vendor.tomli._parser.Flags.set
    - pip._vendor.tomli._parser.make_safe_parse_float.safe_parse_float
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_literal_str
    - pip._vendor.tomli._re.match_to_number
    - match.groups
    - pip._vendor.tomli._re.match_to_datetime
    - pip._vendor.tomli._parser.parse_key_value_pair
    - pip._vendor.tomli._parser.parse_value
    - RE_NUMBER.match
    - micros_str.ljust
    - datetime.timedelta
    - pip._vendor.tomli._parser.skip_comments_and_array_ws
    - HEXDIGIT_CHARS.issuperset
    - RE_DATETIME.match
    - datetime.datetime
    - error_on.isdisjoint
    - array.append
    - pip._vendor.tomli._parser.skip_until
    - RE_LOCALTIME.match
    - pip._vendor.tomli._parser.parse_one_line_basic_str
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.parse_multiline_str
    - pip._vendor.tomli._parser.Flags.is_
    - pip._vendor.tomli._parser.parse_basic_str
    - pip._vendor.tomli._parser.parse_array
    - number_match.end
    - pip._vendor.tomli._parser.NestedDict.__init__
    - pip._vendor.tomli._parser.parse_inline_table
    - datetime.date
    - pip._vendor.tomli._parser.skip_comment
    - pip._vendor.tomli._parser.Flags.__init__
    - <builtin>.int
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - match.group
    - pip._vendor.tomli._parser.skip_chars
    - localtime_match.end
    - pip._vendor.tomli._re.match_to_localtime
    - datetime.timezone
    - pip._vendor.tomli._parser.parse_key
    - pip._vendor.tomli._parser.NestedDict.get_or_create_nest
    - pip._vendor.tomli._parser.parse_hex_char
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.flags.add_pending
    functionSourceFile: typing
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 0
    IfCount: 15
    argCount: 3
    argDefaultValues: []
    argNames:
    - src
    - pos
    - parse_float
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 584
    functionName: pip._vendor.tomli._parser.parse_value
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - datetime_match.end
    - datetime.time
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._re.cached_tz
    - pip._vendor.tomli._parser.parse_key_part
    - src.index
    - pip._vendor.tomli._parser.Flags.set
    - pip._vendor.tomli._parser.make_safe_parse_float.safe_parse_float
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_literal_str
    - pip._vendor.tomli._re.match_to_number
    - match.groups
    - pip._vendor.tomli._re.match_to_datetime
    - pip._vendor.tomli._parser.parse_key_value_pair
    - RE_NUMBER.match
    - pip._vendor.tomli._parser.parse_value
    - micros_str.ljust
    - datetime.timedelta
    - pip._vendor.tomli._parser.skip_comments_and_array_ws
    - HEXDIGIT_CHARS.issuperset
    - RE_DATETIME.match
    - datetime.datetime
    - error_on.isdisjoint
    - array.append
    - pip._vendor.tomli._parser.skip_until
    - RE_LOCALTIME.match
    - pip._vendor.tomli._parser.parse_one_line_basic_str
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.parse_multiline_str
    - pip._vendor.tomli._parser.Flags.is_
    - pip._vendor.tomli._parser.parse_basic_str
    - number_match.end
    - pip._vendor.tomli._parser.parse_array
    - pip._vendor.tomli._parser.NestedDict.__init__
    - pip._vendor.tomli._parser.parse_inline_table
    - datetime.date
    - pip._vendor.tomli._parser.skip_comment
    - pip._vendor.tomli._parser.Flags.__init__
    - <builtin>.int
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - match.group
    - localtime_match.end
    - pip._vendor.tomli._parser.skip_chars
    - pip._vendor.tomli._re.match_to_localtime
    - datetime.timezone
    - pip._vendor.tomli._parser.NestedDict.get_or_create_nest
    - pip._vendor.tomli._parser.parse_key
    - pip._vendor.tomli._parser.parse_hex_char
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - src
    - pos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 391
    functionName: pip._vendor.tomli._parser.parse_key_part
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 10
    functionsReached:
    - <builtin>.int
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - pip._vendor.tomli._parser.parse_one_line_basic_str
    - pip._vendor.tomli._parser.skip_until
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.skip_chars
    - pip._vendor.tomli._parser.parse_basic_str
    - src.index
    - HEXDIGIT_CHARS.issuperset
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_literal_str
    - pip._vendor.tomli._parser.parse_hex_char
    - error_on.isdisjoint
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - src
    - pos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 512
    functionName: pip._vendor.tomli._parser.parse_literal_str
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 11
    functionsReached:
    - src.index
    - <builtin>.len
    - error_on.isdisjoint
    - pip._vendor.tomli._parser.skip_until
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - src
    - pos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 407
    functionName: pip._vendor.tomli._parser.parse_one_line_basic_str
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 11
    functionsReached:
    - <builtin>.int
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.skip_chars
    - pip._vendor.tomli._parser.parse_basic_str
    - HEXDIGIT_CHARS.issuperset
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_hex_char
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - src
    - pos
    - multiline
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 552
    functionName: pip._vendor.tomli._parser.parse_basic_str
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 13
    functionsReached:
    - <builtin>.int
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.skip_chars
    - HEXDIGIT_CHARS.issuperset
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_hex_char
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - src
    - pos
    - parse_float
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 412
    functionName: pip._vendor.tomli._parser.parse_array
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - datetime_match.end
    - datetime.time
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._re.cached_tz
    - pip._vendor.tomli._parser.parse_key_part
    - src.index
    - pip._vendor.tomli._parser.Flags.set
    - pip._vendor.tomli._parser.make_safe_parse_float.safe_parse_float
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_literal_str
    - pip._vendor.tomli._re.match_to_number
    - match.groups
    - pip._vendor.tomli._re.match_to_datetime
    - pip._vendor.tomli._parser.parse_key_value_pair
    - pip._vendor.tomli._parser.parse_value
    - RE_NUMBER.match
    - micros_str.ljust
    - datetime.timedelta
    - pip._vendor.tomli._parser.skip_comments_and_array_ws
    - HEXDIGIT_CHARS.issuperset
    - RE_DATETIME.match
    - datetime.datetime
    - error_on.isdisjoint
    - array.append
    - pip._vendor.tomli._parser.skip_until
    - RE_LOCALTIME.match
    - pip._vendor.tomli._parser.parse_one_line_basic_str
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.parse_multiline_str
    - pip._vendor.tomli._parser.Flags.is_
    - pip._vendor.tomli._parser.parse_basic_str
    - number_match.end
    - pip._vendor.tomli._parser.parse_array
    - pip._vendor.tomli._parser.NestedDict.__init__
    - pip._vendor.tomli._parser.parse_inline_table
    - datetime.date
    - pip._vendor.tomli._parser.skip_comment
    - pip._vendor.tomli._parser.Flags.__init__
    - <builtin>.int
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - match.group
    - pip._vendor.tomli._parser.skip_chars
    - localtime_match.end
    - pip._vendor.tomli._re.match_to_localtime
    - datetime.timezone
    - pip._vendor.tomli._parser.NestedDict.get_or_create_nest
    - pip._vendor.tomli._parser.parse_key
    - pip._vendor.tomli._parser.parse_hex_char
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    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: array.append
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - src
    - pos
    - parse_float
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 436
    functionName: pip._vendor.tomli._parser.parse_inline_table
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - datetime_match.end
    - datetime.time
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - pip._vendor.tomli._re.cached_tz
    - pip._vendor.tomli._parser.parse_key_part
    - src.index
    - pip._vendor.tomli._parser.Flags.set
    - pip._vendor.tomli._parser.make_safe_parse_float.safe_parse_float
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_literal_str
    - pip._vendor.tomli._re.match_to_number
    - match.groups
    - pip._vendor.tomli._re.match_to_datetime
    - pip._vendor.tomli._parser.parse_key_value_pair
    - pip._vendor.tomli._parser.parse_value
    - RE_NUMBER.match
    - micros_str.ljust
    - datetime.timedelta
    - pip._vendor.tomli._parser.skip_comments_and_array_ws
    - HEXDIGIT_CHARS.issuperset
    - RE_DATETIME.match
    - datetime.datetime
    - error_on.isdisjoint
    - array.append
    - pip._vendor.tomli._parser.skip_until
    - RE_LOCALTIME.match
    - pip._vendor.tomli._parser.parse_one_line_basic_str
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.parse_multiline_str
    - pip._vendor.tomli._parser.Flags.is_
    - pip._vendor.tomli._parser.parse_basic_str
    - pip._vendor.tomli._parser.parse_array
    - number_match.end
    - pip._vendor.tomli._parser.NestedDict.__init__
    - pip._vendor.tomli._parser.parse_inline_table
    - datetime.date
    - pip._vendor.tomli._parser.skip_comment
    - pip._vendor.tomli._parser.Flags.__init__
    - <builtin>.int
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - match.group
    - pip._vendor.tomli._parser.skip_chars
    - localtime_match.end
    - pip._vendor.tomli._re.match_to_localtime
    - datetime.timezone
    - pip._vendor.tomli._parser.NestedDict.get_or_create_nest
    - pip._vendor.tomli._parser.parse_key
    - pip._vendor.tomli._parser.parse_hex_char
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - src
    - pos
    - multiline
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 468
    functionName: pip._vendor.tomli._parser.parse_basic_str_escape
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 15
    functionsReached:
    - <builtin>.int
    - <builtin>.chr
    - <builtin>.len
    - pip._vendor.tomli._parser.skip_chars
    - HEXDIGIT_CHARS.issuperset
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_hex_char
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - src
    - pos
    - hex_len
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 501
    functionName: pip._vendor.tomli._parser.parse_hex_char
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 16
    functionsReached:
    - <builtin>.int
    - <builtin>.chr
    - <builtin>.len
    - HEXDIGIT_CHARS.issuperset
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    linkageType: pythonLinkage
    raised:
    - suffixed_err
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - src
    - pos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 497
    functionName: pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 14
    functionsReached:
    - <builtin>.int
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - <builtin>.len
    - pip._vendor.tomli._parser.skip_chars
    - HEXDIGIT_CHARS.issuperset
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_hex_char
    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: HEXDIGIT_CHARS.issuperset
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - codepoint
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 669
    functionName: pip._vendor.tomli._parser.is_unicode_scalar_value
    functionSourceFile: ''
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - src
    - pos
    - literal
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 521
    functionName: pip._vendor.tomli._parser.parse_multiline_str
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 7
    functionsReached:
    - <builtin>.int
    - pip._vendor.tomli._parser.skip_until
    - pip._vendor.tomli._parser.parse_basic_str_escape
    - <builtin>.chr
    - pip._vendor.tomli._parser.parse_basic_str_escape_multiline
    - <builtin>.len
    - src.startswith
    - pip._vendor.tomli._parser.skip_chars
    - pip._vendor.tomli._parser.parse_basic_str
    - src.index
    - HEXDIGIT_CHARS.issuperset
    - pip._vendor.tomli._parser.is_unicode_scalar_value
    - pip._vendor.tomli._parser.parse_hex_char
    - error_on.isdisjoint
    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_DATETIME.match
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - match
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 52
    functionName: pip._vendor.tomli._re.match_to_datetime
    functionSourceFile: pip._vendor.tomli._re
    functionUses: 7
    functionsReached:
    - datetime.date
    - <builtin>.int
    - pip._vendor.tomli._re.cached_tz
    - micros_str.ljust
    - datetime.timedelta
    - datetime.timezone
    - match.groups
    - datetime.datetime
    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_match.end
    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: RE_LOCALTIME.match
    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: localtime_match.end
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - match
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 98
    functionName: pip._vendor.tomli._re.match_to_localtime
    functionSourceFile: pip._vendor.tomli._re
    functionUses: 7
    functionsReached:
    - <builtin>.int
    - match.groups
    - micros_str.ljust
    - datetime.time
    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_NUMBER.match
    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: number_match.end
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - match
    - parse_float
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 104
    functionName: pip._vendor.tomli._re.match_to_number
    functionSourceFile: pip._vendor.tomli._re
    functionUses: 7
    functionsReached:
    - match.group
    - pip._vendor.tomli._parser.make_safe_parse_float.safe_parse_float
    - <builtin>.isinstance
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - float_str
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 685
    functionName: pip._vendor.tomli._parser.make_safe_parse_float.safe_parse_float
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 8
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.tomli._parser.make_safe_parse_float.safe_parse_float
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - src
    - pos
    - msg
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 652
    functionName: pip._vendor.tomli._parser.suffixed_err
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - src.rindex
    - src.count
    - pip._vendor.tomli._parser.suffixed_err.coord_repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - src
    - pos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 656
    functionName: pip._vendor.tomli._parser.suffixed_err.coord_repr
    functionSourceFile: pip._vendor.tomli._parser
    functionUses: 1
    functionsReached:
    - src.rindex
    - src.count
    - <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: src.count
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: src.rindex
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.tomli._re
    functionSourceFile: pip._vendor.tomli._re
    functionUses: 0
    functionsReached:
    - re.compile
    - functools.lru_cache
    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: micros_str.ljust
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - hour_str
    - minute_str
    - sign_str
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 88
    functionName: pip._vendor.tomli._re.cached_tz
    functionSourceFile: pip._vendor.tomli._re
    functionUses: 8
    functionsReached:
    - datetime.timezone
    - <builtin>.int
    - datetime.timedelta
    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.time
    functionSourceFile: datetime
    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: pip._vendor.tomli._types
    functionSourceFile: pip._vendor.tomli._types
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.operations.build.metadata_editable
    functionSourceFile: pip._internal.operations.build.metadata_editable
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._internal.req.req_uninstall
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - pip._internal.req.req_uninstall._unique
    - functools.wraps
    - typing.cast
    - pip._internal.utils._log.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - bin_dir
    - script_name
    - is_gui
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 21
    functionName: pip._internal.req.req_uninstall._script_names
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 4
    functionsReached:
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fn
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: pip._internal.req.req_uninstall._unique
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 1
    functionsReached:
    - functools.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 44
    functionName: pip._internal.req.req_uninstall._unique.unique
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 0
    functionsReached:
    - dist.iter_declared_entries
    - seen.add
    - <builtin>.set
    - os.path.join
    - os.path.split
    - pip._internal.req.req_uninstall.uninstallation_paths
    - path.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - dist
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 55
    functionName: pip._internal.req.req_uninstall.uninstallation_paths
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 4
    functionsReached:
    - dist.iter_declared_entries
    - os.path.join
    - os.path.split
    - path.endswith
    linkageType: pythonLinkage
    raised:
    - UninstallationError
    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: dist.iter_declared_entries
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - paths
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 98
    functionName: pip._internal.req.req_uninstall.compact
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 4
    functionsReached:
    - path.startswith
    - <builtin>.any
    - <builtin>.len
    - short_paths.add
    - <builtin>.sorted
    - <builtin>.set
    - shortpath.rstrip
    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: shortpath.rstrip
    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: short_paths.add
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - paths
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 117
    functionName: pip._internal.req.req_uninstall.compress_for_rename
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 2
    functionsReached:
    - <builtin>.any
    - all_files.update
    - os.walk
    - remaining.difference_update
    - pip._internal.req.req_uninstall.compress_for_rename.norm_join
    - os.path.normcase
    - all_subdirs.update
    - <builtin>.map
    - <builtin>.sorted
    - <builtin>.set
    - case_map.values
    - os.path.join
    - wildcards.add
    - os.path.split
    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: case_map.values
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - a
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 128
    functionName: pip._internal.req.req_uninstall.compress_for_rename.norm_join
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 3
    functionsReached:
    - os.path.normcase
    - 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: all_subdirs.update
    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: all_files.update
    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: remaining.difference_update
    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: wildcards.add
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - paths
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 151
    functionName: pip._internal.req.req_uninstall.compress_for_output_listing
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 2
    functionsReached:
    - pip._internal.req.req_uninstall.compact
    - path.endswith
    - os.walk
    - <builtin>.set
    - os.path.join
    - files.add
    - folders.add
    - path.startswith
    - <builtin>.any
    - os.path.isfile
    - <builtin>.len
    - <builtin>.map
    - <builtin>.sorted
    - shortpath.rstrip
    - os.path.normcase
    - will_skip.add
    - fname.endswith
    - short_paths.add
    - os.path.dirname
    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: folders.add
    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: files.add
    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: fname.endswith
    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: will_skip.add
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 204
    functionName: pip._internal.req.req_uninstall.StashedUninstallPathSet.__init__
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 212
    functionName: pip._internal.req.req_uninstall.StashedUninstallPathSet._get_directory_stash
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 2
    functionsReached:
    - <builtin>.super
    - original.rstrip
    - tempfile.mkdtemp
    - os.path.normcase
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - logger.debug
    - pip._internal.utils.temp_dir.AdjacentTempDirectory.__init__
    - os.mkdir
    - os.path.join
    - _tempdir_manager.enter_context
    - os.path.realpath
    - os.path.split
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 226
    functionName: pip._internal.req.req_uninstall.StashedUninstallPathSet._get_file_stash
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 2
    functionsReached:
    - <builtin>.super
    - tempfile.mkdtemp
    - os.path.relpath
    - os.path.normcase
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - <builtin>.len
    - os.path.dirname
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - logger.debug
    - os.mkdir
    - os.path.join
    - _tempdir_manager.enter_context
    - os.path.realpath
    - os.path.split
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 253
    functionName: pip._internal.req.req_uninstall.StashedUninstallPathSet.stash
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 1
    functionsReached:
    - pip._internal.utils.misc.renames
    - logger.debug
    - _tempdir_manager.enter_context
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - os.removedirs
    - shutil.move
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - os.rmdir
    - os.path.join
    - os.path.realpath
    - pip._internal.req.req_uninstall.StashedUninstallPathSet._get_file_stash
    - os.makedirs
    - <builtin>.super
    - tempfile.mkdtemp
    - os.path.relpath
    - os.path.islink
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._internal.req.req_uninstall.StashedUninstallPathSet._get_directory_stash
    - os.mkdir
    - os.path.isdir
    - original.rstrip
    - os.path.normcase
    - os.path.exists
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - os.path.dirname
    - pip._internal.utils.temp_dir.AdjacentTempDirectory.__init__
    - os.path.split
    - <builtin>.range
    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.rmdir
    functionSourceFile: os
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 274
    functionName: pip._internal.req.req_uninstall.StashedUninstallPathSet.commit
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 3
    functionsReached:
    - save_dir.cleanup
    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: save_dir.cleanup
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 281
    functionName: pip._internal.req.req_uninstall.StashedUninstallPathSet.rollback
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 1
    functionsReached:
    - typing.cast.debug
    - shutil.rmtree
    - pip._internal.utils.misc.renames
    - typing.cast.error
    - os.removedirs
    - shutil.move
    - os.makedirs
    - pip._internal.utils.misc.rmtree
    - os.path.isfile
    - os.path.islink
    - os.path.isdir
    - typing.cast
    - typing.cast.info
    - functools.partial
    - pip._internal.req.req_uninstall.StashedUninstallPathSet.commit
    - os.path.exists
    - save_dir.cleanup
    - os.unlink
    - os.path.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 301
    functionName: pip._internal.req.req_uninstall.StashedUninstallPathSet.can_rollback
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 309
    functionName: pip._internal.req.req_uninstall.UninstallPathSet.__init__
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 3
    functionsReached:
    - <builtin>.set
    - functools.lru_cache
    - pip._internal.req.req_uninstall.StashedUninstallPathSet.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 320
    functionName: pip._internal.req.req_uninstall.UninstallPathSet._permitted
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 2
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - importlib.util.cache_from_source.startswith
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    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: importlib.util.cache_from_source.startswith
    functionSourceFile: importlib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 331
    functionName: pip._internal.req.req_uninstall.UninstallPathSet.add
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 0
    functionsReached:
    - pip._internal.req.req_uninstall.UninstallPathSet.add
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - os.path.normcase
    - os.path.exists
    - importlib.util.cache_from_source
    - <builtin>.getattr
    - os.path.splitext
    - os.path.join
    - pip._internal.utils.virtualenv._running_under_venv
    - importlib.util.cache_from_source.startswith
    - os.path.split
    - pip._internal.req.req_uninstall.UninstallPathSet._permitted
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    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: importlib.util.cache_from_source
    functionSourceFile: importlib
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - pth_file
    - entry
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 350
    functionName: pip._internal.req.req_uninstall.UninstallPathSet.add_pth
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 0
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.set
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - importlib.util.cache_from_source.startswith
    - pip._internal.req.req_uninstall.UninstallPthEntries.__init__
    - pip._internal.req.req_uninstall.UninstallPathSet._permitted
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pth_file
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 595
    functionName: pip._internal.req.req_uninstall.UninstallPthEntries.__init__
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 1
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d67b8eb0>
    - <ast.Constant object at 0x7f30d67b8e80>
    argNames:
    - self
    - auto_confirm
    - verbose
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 359
    functionName: pip._internal.req.req_uninstall.UninstallPathSet.remove
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 0
    functionsReached:
    - pip._internal.req.req_uninstall.compact
    - pip._internal.req.req_uninstall.compress_for_rename.norm_join
    - pth.remove
    - pip._internal.utils.misc.ask
    - pip._internal.utils.misc.renames
    - logger.debug
    - _tempdir_manager.enter_context
    - os.environ.get
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - path.endswith
    - pip._internal.req.req_uninstall.StashedUninstallPathSet.stash
    - os.walk
    - pip._internal.utils.misc._check_no_input
    - pip._internal.req.req_uninstall.compress_for_rename
    - remaining.difference_update
    - os.removedirs
    - shutil.move
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - <builtin>.set
    - os.rmdir
    - os.path.join
    - files.add
    - os.path.realpath
    - pip._internal.req.req_uninstall.StashedUninstallPathSet._get_file_stash
    - pip._internal.utils.logging.indent_log
    - os.makedirs
    - <builtin>.super
    - path.startswith
    - <builtin>.any
    - typing.cast.verbose
    - all_files.update
    - folders.add
    - tempfile.mkdtemp
    - os.path.relpath
    - os.path.isfile
    - os.path.islink
    - all_subdirs.update
    - <builtin>.len
    - <builtin>.map
    - <builtin>.sorted
    - pip._internal.req.req_uninstall.StashedUninstallPathSet._get_directory_stash
    - pip._internal.req.req_uninstall.UninstallPathSet._allowed_to_proceed
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - os.mkdir
    - os.path.isdir
    - wildcards.add
    - pip._internal.req.req_uninstall.compress_for_output_listing
    - shortpath.rstrip
    - pip._internal.utils.logging.get_indentation
    - typing.cast.info
    - original.rstrip
    - os.path.normcase
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - os.path.exists
    - will_skip.add
    - short_paths.add
    - fname.endswith
    - os.path.dirname
    - <builtin>.print
    - response.strip
    - case_map.values
    - pip._internal.utils.temp_dir.AdjacentTempDirectory.__init__
    - pip._internal.req.req_uninstall.UninstallPathSet._allowed_to_proceed._display
    - os.path.split
    - <builtin>.getattr
    - <builtin>.input
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - verbose
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 388
    functionName: pip._internal.req.req_uninstall.UninstallPathSet._allowed_to_proceed
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 1
    functionsReached:
    - pip._internal.req.req_uninstall.compact
    - pip._internal.req.req_uninstall.compress_for_rename.norm_join
    - pip._internal.utils.misc.ask
    - os.environ.get
    - <builtin>.input
    - path.endswith
    - os.walk
    - pip._internal.utils.misc._check_no_input
    - pip._internal.req.req_uninstall.compress_for_rename
    - remaining.difference_update
    - <builtin>.set
    - os.path.join
    - files.add
    - pip._internal.utils.logging.indent_log
    - path.startswith
    - <builtin>.any
    - all_files.update
    - folders.add
    - os.path.isfile
    - all_subdirs.update
    - <builtin>.map
    - <builtin>.sorted
    - <builtin>.len
    - wildcards.add
    - pip._internal.req.req_uninstall.compress_for_output_listing
    - shortpath.rstrip
    - pip._internal.utils.logging.get_indentation
    - typing.cast.info
    - os.path.normcase
    - will_skip.add
    - short_paths.add
    - fname.endswith
    - <builtin>.print
    - response.strip
    - os.path.dirname
    - case_map.values
    - <builtin>.getattr
    - pip._internal.req.req_uninstall.UninstallPathSet._allowed_to_proceed._display
    - os.path.split
    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: pth.remove
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - msg
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 391
    functionName: pip._internal.req.req_uninstall.UninstallPathSet._allowed_to_proceed._display
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 2
    functionsReached:
    - path.startswith
    - <builtin>.any
    - typing.cast.info
    - pip._internal.req.req_uninstall.compact
    - <builtin>.len
    - short_paths.add
    - <builtin>.sorted
    - <builtin>.set
    - <builtin>.getattr
    - shortpath.rstrip
    - pip._internal.utils.logging.indent_log
    - pip._internal.utils.logging.get_indentation
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 416
    functionName: pip._internal.req.req_uninstall.UninstallPathSet.rollback
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 0
    functionsReached:
    - typing.cast.debug
    - shutil.rmtree
    - pip._internal.utils.misc.renames
    - typing.cast.error
    - pth.rollback
    - os.removedirs
    - shutil.move
    - os.makedirs
    - os.path.isfile
    - pip._internal.utils.misc.rmtree
    - os.path.islink
    - os.path.isdir
    - typing.cast
    - pip._internal.req.req_uninstall.StashedUninstallPathSet.rollback
    - typing.cast.info
    - functools.partial
    - pip._internal.req.req_uninstall.StashedUninstallPathSet.commit
    - os.path.exists
    - save_dir.cleanup
    - os.unlink
    - os.path.split
    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: pth.rollback
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 429
    functionName: pip._internal.req.req_uninstall.UninstallPathSet.commit
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 0
    functionsReached:
    - pip._internal.req.req_uninstall.StashedUninstallPathSet.commit
    - save_dir.cleanup
    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: info_location.endswith
    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: paths_to_remove.add
    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: dist.is_file
    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: dist.read_text
    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: namespace_packages.splitlines
    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: paths_to_remove.add_pth
    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: fh.readline
    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: paths_to_remove._normalize_path_cached
    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: dist.iter_distutils_script_names
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - dist
    - bin_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 578
    functionName: pip._internal.req.req_uninstall.UninstallPathSet.from_dist.iter_scripts_to_remove
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 3
    functionsReached:
    - dist.iter_entry_points
    - os.path.join
    - pip._internal.req.req_uninstall._script_names
    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: dist.iter_entry_points
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - entry
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 600
    functionName: pip._internal.req.req_uninstall.UninstallPthEntries.add
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 0
    functionsReached:
    - entry.replace
    - os.path.normcase
    - os.path.splitdrive
    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: entry.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 615
    functionName: pip._internal.req.req_uninstall.UninstallPthEntries.remove
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 0
    functionsReached:
    - fh.readlines
    - <builtin>.any
    - typing.cast.verbose
    - typing.cast.warning
    - lines.remove
    - fh.writelines
    - endline.encode
    - os.path.isfile
    - <builtin>.open
    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: fh.readlines
    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: endline.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lines.remove
    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: fh.writelines
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 642
    functionName: pip._internal.req.req_uninstall.UninstallPthEntries.rollback
    functionSourceFile: pip._internal.req.req_uninstall
    functionUses: 0
    functionsReached:
    - typing.cast.debug
    - typing.cast.error
    - <builtin>.open
    - fh.writelines
    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: pip._internal.operations.build.metadata
    functionSourceFile: pip._internal.operations.build.metadata
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.operations.install
    functionSourceFile: pip._internal.operations.install
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.operations.install.editable_legacy
    functionSourceFile: pip._internal.operations.install.editable_legacy
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 6
    argDefaultValues: []
    argNames:
    - setup_py_path
    - global_options
    - no_user_config
    - prefix
    - home
    - use_user_site
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 104
    functionName: pip._internal.utils.setuptools_build.make_setuptools_develop_args
    functionSourceFile: pip._internal.utils.setuptools_build
    functionUses: 2
    functionsReached:
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - _SETUPTOOLS_SHIM.format
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.utils.setuptools_build
    functionSourceFile: pip._internal.utils.setuptools_build
    functionUses: 0
    functionsReached:
    - textwrap.dedent
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9933ac0>
    - <ast.Constant object at 0x7f30f9933d00>
    - <ast.Constant object at 0x7f30f9933820>
    argNames:
    - setup_py_path
    - global_options
    - no_user_config
    - unbuffered_output
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: pip._internal.utils.setuptools_build.make_setuptools_shim_args
    functionSourceFile: pip._internal.utils.setuptools_build
    functionUses: 16
    functionsReached:
    - _SETUPTOOLS_SHIM.format
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _SETUPTOOLS_SHIM.format
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - setup_py_path
    - global_options
    - build_options
    - destination_dir
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 75
    functionName: pip._internal.utils.setuptools_build.make_setuptools_bdist_wheel_args
    functionSourceFile: pip._internal.utils.setuptools_build
    functionUses: 7
    functionsReached:
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - _SETUPTOOLS_SHIM.format
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - setup_py_path
    - global_options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 93
    functionName: pip._internal.utils.setuptools_build.make_setuptools_clean_args
    functionSourceFile: pip._internal.utils.setuptools_build
    functionUses: 7
    functionsReached:
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - _SETUPTOOLS_SHIM.format
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - setup_py_path
    - egg_info_dir
    - no_user_config
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 134
    functionName: pip._internal.utils.setuptools_build.make_setuptools_egg_info_args
    functionSourceFile: pip._internal.utils.setuptools_build
    functionUses: 2
    functionsReached:
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - _SETUPTOOLS_SHIM.format
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.operations.install.wheel
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - typing.NewType
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 70
    functionName: pip._internal.operations.install.wheel.File.save
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.BinOp object at 0x7f30fa5c53d0>
    argNames:
    - path
    - blocksize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 80
    functionName: pip._internal.operations.install.wheel.rehash
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 4
    functionsReached:
    - <builtin>.str
    - <builtin>.len
    - h.digest
    - <builtin>.open
    - hashlib.sha256
    - file.read
    - pip._internal.utils.misc.hash_file
    - h.update
    - base64.urlsafe_b64encode
    - pip._internal.utils.misc.read_chunks
    - base64.urlsafe_b64encode.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h.digest
    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: base64.urlsafe_b64encode
    functionSourceFile: base64
    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: base64.urlsafe_b64encode.decode
    functionSourceFile: base64
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - mode
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: pip._internal.operations.install.wheel.csv_io_kwargs
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 94
    functionName: pip._internal.operations.install.wheel.fix_script
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 1
    functionsReached:
    - script.write
    - script.readline
    - os.linesep.encode
    - os.path.isfile
    - script.read
    - <builtin>.open
    - sys.getfilesystemencoding
    - sys.executable.encode
    - firstline.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: script.readline
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: firstline.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.executable.encode
    functionSourceFile: sys
    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: os.linesep.encode
    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: script.read
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: script.write
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - metadata
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 114
    functionName: pip._internal.operations.install.wheel.wheel_root_is_purelib
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached:
    - metadata.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: metadata.get
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - dist
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 118
    functionName: pip._internal.operations.install.wheel.get_entrypoints
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached:
    - dist.iter_entry_points
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 7
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - scripts
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 129
    functionName: pip._internal.operations.install.wheel.message_about_scripts_not_on_PATH
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached:
    - collections.defaultdict
    - <builtin>.any
    - msg_lines.append
    - last_line_fmt.format
    - os.path.basename
    - os.path.normcase
    - <builtin>.len
    - <builtin>.sorted
    - os.path.dirname
    - os.path.normpath
    - not_warn_dirs.append
    - os.environ.get
    - warn_for.items
    - grouped_by_dir.items
    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: not_warn_dirs.append
    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: grouped_by_dir.items
    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: warn_for.items
    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: msg_lines.append
    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: last_line_fmt.format
    functionSourceFile: <builtin>
    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:
    - outrows
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 201
    functionName: pip._internal.operations.install.wheel._normalized_outrows
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached:
    - <builtin>.sorted
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - record_path
    - lib_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 227
    functionName: pip._internal.operations.install.wheel._record_to_fs_path
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 4
    functionsReached:
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - lib_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 231
    functionName: pip._internal.operations.install.wheel._fs_to_record_path
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 5
    functionsReached:
    - os.path.relpath
    - typing.cast
    - itertools.chain.dest_path.replace
    - os.path.splitdrive
    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: itertools.chain.dest_path.replace
    functionSourceFile: itertools
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - old_csv_rows
    - installed
    - changed
    - generated
    - lib_dir
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 241
    functionName: pip._internal.operations.install.wheel.get_csv_rows_for_installed
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached:
    - h.update
    - <builtin>.str
    - itertools.chain.dest_path.replace
    - installed_rows.append
    - file.read
    - os.path.join
    - pip._internal.utils.misc.read_chunks
    - installed.values
    - base64.urlsafe_b64encode.decode
    - base64.urlsafe_b64encode
    - os.path.relpath
    - <builtin>.len
    - h.digest
    - pip._internal.operations.install.wheel._record_to_fs_path
    - hashlib.sha256
    - pip._internal.operations.install.wheel._fs_to_record_path
    - typing.cast
    - pip._internal.operations.install.wheel.rehash
    - installed.pop
    - <builtin>.open
    - pip._internal.utils.misc.hash_file
    - os.path.splitdrive
    - logger.warning
    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: installed.pop
    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: installed_rows.append
    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: installed.values
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 7
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - console
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 273
    functionName: pip._internal.operations.install.wheel.get_console_script_specs
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached:
    - console.copy
    - console.items
    - pip._internal.locations.base.get_major_minor_version
    - scripts_to_generate.extend
    - re.match
    - scripts_to_generate.append
    - os.environ.get
    - console.pop
    - itertools.starmap
    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: console.copy
    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: console.pop
    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: scripts_to_generate.append
    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: console.items
    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: itertools.starmap
    functionSourceFile: itertools
    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: scripts_to_generate.extend
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - src_record_path
    - dest_path
    - zip_file
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 349
    functionName: pip._internal.operations.install.wheel.ZipBackedFile.__init__
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 357
    functionName: pip._internal.operations.install.wheel.ZipBackedFile._getinfo
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 360
    functionName: pip._internal.operations.install.wheel.ZipBackedFile.save
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 0
    functionsReached:
    - os.chmod
    - pip._internal.utils.unpacking.current_umask
    - shutil.copyfileobj
    - <builtin>.bool
    - os.path.exists
    - os.umask
    - os.path.dirname
    - <builtin>.open
    - pip._internal.utils.unpacking.zip_item_is_executable
    - pip._internal.operations.install.wheel.ZipBackedFile._getinfo
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - os.unlink
    - stat.S_ISREG
    - pip._internal.utils.misc.ensure_dir
    - os.makedirs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - file
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 389
    functionName: pip._internal.operations.install.wheel.ScriptFile.__init__
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 395
    functionName: pip._internal.operations.install.wheel.ScriptFile.save
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 0
    functionsReached:
    - script.write
    - script.readline
    - os.linesep.encode
    - os.path.isfile
    - pip._internal.operations.install.wheel.fix_script
    - script.read
    - <builtin>.open
    - sys.getfilesystemencoding
    - sys.executable.encode
    - firstline.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - entry_point
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 401
    functionName: pip._internal.operations.install.wheel.MissingCallableSuffix.__init__
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - specification
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 410
    functionName: pip._internal.operations.install.wheel._raise_for_invalid_entrypoint
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 5
    functionsReached:
    - pip._vendor.distlib.util.get_export_entry
    - f.strip
    - m.groupdict
    - pip._vendor.distlib.util.ExportEntry.__init__
    - flags.split
    - ENTRY_RE.search
    - path.split
    - path.count
    linkageType: pythonLinkage
    raised:
    - MissingCallableSuffix
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - specification
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 741
    functionName: pip._vendor.distlib.util.get_export_entry
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 9
    functionsReached:
    - f.strip
    - m.groupdict
    - pip._vendor.distlib.util.ExportEntry.__init__
    - flags.split
    - ENTRY_RE.search
    - path.split
    - path.count
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b48b0>
    argNames:
    - self
    - specification
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 417
    functionName: pip._internal.operations.install.wheel.PipScriptMaker.make
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - pip._internal.operations.install.wheel._raise_for_invalid_entrypoint
    - pip._vendor.distlib.util.get_export_entry
    - f.strip
    - m.groupdict
    - pip._vendor.distlib.util.ExportEntry.__init__
    - flags.split
    - ENTRY_RE.search
    - path.split
    - path.count
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 15
    IfCount: 7
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b41c0>
    - <ast.Constant object at 0x7f30fa5b4190>
    - <ast.Constant object at 0x7f30fa5b4160>
    - <ast.Constant object at 0x7f30fa5b4130>
    argNames:
    - name
    - wheel_zip
    - wheel_path
    - scheme
    - pycompile
    - warn_script_location
    - direct_url
    - requested
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 424
    functionName: pip._internal.operations.install.wheel._install_wheel
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 2
    functionsReached:
    - pip._vendor.distlib.scripts.ScriptMaker._fix_jython_executable
    - contextlib.contextmanager
    - pip._internal.operations.install.wheel.get_entrypoints
    - os.linesep.encode
    - generated.extend
    - _aix_support.aix_platform
    - os.rename
    - path.split
    - pip._internal.operations.install.wheel._install_wheel.root_scheme_file_maker
    - installer_file.write
    - warnings.catch_warnings
    - f.close
    - <builtin>.dict
    - source.read
    - _canonicalize_regex.sub
    - warnings.filterwarnings
    - itertools.chain
    - <builtin>.str
    - pip._internal.utils.filesystem.adjacent_tmp_file
    - installed_rows.append
    - rel_re.match
    - flags.split
    - pip._internal.operations.install.wheel.get_csv_rows_for_installed
    - <builtin>.tuple
    - itertools.filterfalse
    - result.add
    - pip._vendor.distlib.scripts.ScriptMaker._build_shebang
    - _executable.startswith
    - pip._internal.utils.misc.read_chunks
    - pip._internal.operations.install.wheel._normalized_outrows
    - java.lang.System.getProperty
    - time.gmtime
    - pip._internal.metadata.select_backend
    - distribution.read_text
    - pip._internal.utils.wheel.parse_wheel
    - <builtin>.sorted
    - pip._internal.operations.install.wheel._record_to_fs_path
    - zf.writestr
    - os.path.normpath
    - dist.iter_entry_points
    - pip._internal.utils.wheel.read_wheel_metadata_file
    - tempfile.NamedTemporaryFile
    - pip._vendor.distlib.util.get_host_platform
    - console.copy
    - pip._internal.utils.unpacking.current_umask
    - os.path.basename
    - sys.executable.startswith
    - <builtin>.setattr
    - pip._internal.locations.base.get_major_minor_version
    - <builtin>.filter
    - full_installed_path.endswith
    - scripts_to_generate.extend
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.distlib.util.get_export_entry
    - direct_url_file.write
    - f.strip
    - f.seek
    - pip._internal.operations.install.wheel.message_about_scripts_not_on_PATH
    - machine.replace
    - args.encode
    - pathname.split
    - pip._vendor.distlib.scripts.ScriptMaker._make_script
    - grouped_by_dir.items
    - pip._internal.operations.install.wheel._install_wheel._generate_file
    - pip._internal.utils.wheel.wheel_version
    - itertools.chain.dest_path.replace
    - pip._vendor.distlib.scripts.ScriptMaker._get_script_text
    - os.path.join
    - os.path.splitext
    - filenames.append
    - pip._vendor.distlib.scripts.ScriptMaker._write_script
    - base64.urlsafe_b64encode.decode
    - warn_for.items
    - path.count
    - <builtin>.super
    - base64.urlsafe_b64encode
    - gui.items
    - os.chmod
    - source.namelist
    - zipfile.ZipFile
    - <builtin>.map
    - email.parser.Parser.parsestr
    - h.digest
    - pip._internal.utils.wheel.check_compatibility
    - pip._vendor.distlib.util.get_executable
    - not_warn_dirs.append
    - pip._internal.operations.install.wheel.csv_io_kwargs
    - os.uname
    - pip._vendor.distlib.resources.finder
    - struct.calcsize
    - pip._internal.operations.install.wheel.rehash
    - os.path.normcase
    - os.path.exists
    - m.groupdict
    - match.group
    - itertools.chain.save
    - pip._internal.operations.install.wheel.PipScriptMaker.make
    - p.split
    - os.path.dirname
    - typing.cast.startswith
    - f.read
    - pip._internal.operations.install.wheel._install_wheel.pyc_output_path
    - writer.writerows
    - pip._vendor.distlib.util.in_venv
    - pip._internal.operations.install.wheel._raise_for_invalid_entrypoint
    - last_line_fmt.format
    - shebang.decode
    - <builtin>.isinstance
    - <builtin>.bool
    - io.BytesIO.getvalue
    - filenames.extend
    - <builtin>.__import__
    - pip._internal.metadata._should_use_importlib_metadata
    - _finder_registry.get
    - f.readline
    - paths.remove
    - shebang.endswith
    - h.update
    - os.environ.get
    - itertools.starmap
    - collections.defaultdict
    - csv.reader
    - options.get
    - metadata.get
    - sys.executable.split
    - pip._vendor.distlib.scripts.ScriptMaker.get_script_filenames
    - csv.writer
    - fn.replace
    - pip._internal.operations.install.wheel._install_wheel.pyc_source_file_paths
    - file.read
    - importlib.util.cache_from_source
    - pip._vendor.distlib.scripts.ScriptMaker._get_alternate_executable
    - sys.executable.encode
    - pip._vendor.distlib.util.convert_path
    - __name__.rsplit
    - <builtin>.list
    - entry.suffix.split
    - osname.lower
    - pip._vendor.distlib.util.get_platform
    - <builtin>.any
    - version_text.strip
    - pyc_path.replace
    - os.path.relpath
    - pip._internal.operations.install.wheel._install_wheel.data_scheme_file_maker
    - typing.cast.flush
    - os.path.isfile
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.distlib.util.FileOperator.__init__
    - _osx_support.get_platform_osx
    - pip._vendor.distlib.scripts.ScriptMaker.make_multiple
    - compileall.compile_file
    - sysconfig.get_config_vars
    - typing.cast
    - FIRST_LINE_RE.match
    - pip._vendor.distlib.scripts.ScriptMaker._is_shell
    - direct_url.to_json
    - os.fsync
    - pip._internal.utils.wheel.wheel_dist_info_dir
    - <builtin>.int
    - os.remove
    - tokenize.detect_encoding
    - pip._vendor.distlib.scripts.ScriptMaker._get_launcher
    - installed.pop
    - pip._vendor.distlib.scripts.ScriptMaker.make
    - pip._vendor.distlib.scripts.ScriptMaker.__init__
    - <builtin>.open
    - <builtin>.getattr
    - sys.platform.startswith
    - wheel_zip.namelist
    - version.split
    - pip._internal.operations.install.wheel._install_wheel.record_installed
    - contextlib.suppress
    - pip._vendor.distlib.scripts.enquote_executable
    - sysconfig.get_path
    - val.lower
    - <builtin>.type
    - console.items
    - pip._internal.utils.wheel.wheel_metadata
    - pip._internal.operations.install.wheel.wheel_root_is_purelib
    - pip._vendor.distlib.util.FileOperator._init_record
    - logger.debug
    - sysconfig.is_python_build
    - itertools.tee
    - distutils.sysconfig.get_config_vars
    - record_text.splitlines
    - wheel_contents.decode
    - re.compile
    - pip._internal.operations.install.wheel.get_console_script_specs
    - pip._vendor.distlib.scripts.ScriptMaker._copy_script
    - re.match
    - pip._internal.utils.misc.captured_output
    - console.pop
    - sys.version.lower
    - changed.add
    - typing.cast.Distribution.from_wheel
    - e.startswith
    - os.fsdecode
    - pip._internal.utils.misc.StreamWrapper.from_stream
    - pip._internal.metadata.get_wheel_distribution
    - typing.cast.fileno
    - <builtin>.set
    - m.group
    - email.parser.Parser
    - ENTRY_RE.search
    - first_line.replace
    - installed.values
    - pip._internal.utils.misc.captured_stdout
    - stdout.getvalue
    - generated.append
    - msg_lines.append
    - os.umask
    - io.StringIO.__init__
    - pip._vendor.distlib.util.ExportEntry.__init__
    - hashlib.sha256
    - pip._internal.operations.install.wheel._fs_to_record_path
    - fp.read
    - pip._internal.utils.misc.strtobool
    - s.endswith
    - outname.endswith
    - pip._vendor.distlib.scripts.ScriptMaker._get_shebang
    - pip._internal.utils.misc.partition
    - logger.info
    - pip._internal.utils.misc.hash_file
    - sys.executable.lower
    - os.path.splitdrive
    - zipfile.ZipInfo
    - io.BytesIO
    - scripts_to_generate.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5be700>
    argNames:
    - srcfile
    - destfile
    - modified
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 464
    functionName: pip._internal.operations.install.wheel._install_wheel.record_installed
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached:
    - changed.add
    - os.path.relpath
    - itertools.chain.dest_path.replace
    - pip._internal.operations.install.wheel._fs_to_record_path
    - os.path.splitdrive
    - typing.cast
    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: changed.add
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 473
    functionName: pip._internal.operations.install.wheel._install_wheel.is_dir_path
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 0
    functionsReached:
    - path.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - dest_dir_path
    - target_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 476
    functionName: pip._internal.operations.install.wheel._install_wheel.assert_no_path_traversal
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 2
    functionsReached:
    - os.path.abspath
    - pip._internal.utils.unpacking.is_within_directory
    - os.path.commonprefix
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - zip_file
    - dest
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 486
    functionName: pip._internal.operations.install.wheel._install_wheel.root_scheme_file_maker
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - record_path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 489
    functionName: pip._internal.operations.install.wheel._install_wheel.root_scheme_file_maker.make_root_scheme_file
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 0
    functionsReached:
    - pip._internal.operations.install.wheel.ZipBackedFile.__init__
    - pip._internal.utils.unpacking.is_within_directory
    - pip._internal.operations.install.wheel._install_wheel.assert_no_path_traversal
    - os.path.normpath
    - os.path.join
    - os.path.abspath
    - os.path.commonprefix
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - zip_file
    - scheme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 497
    functionName: pip._internal.operations.install.wheel._install_wheel.data_scheme_file_maker
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - record_path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 502
    functionName: pip._internal.operations.install.wheel._install_wheel.data_scheme_file_maker.make_data_scheme_file
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 0
    functionsReached:
    - pip._internal.operations.install.wheel.ZipBackedFile.__init__
    - pip._internal.utils.unpacking.is_within_directory
    - <builtin>.sorted
    - normed_path.split
    - pip._internal.operations.install.wheel._install_wheel.assert_no_path_traversal
    - os.path.normpath
    - os.path.join
    - os.path.abspath
    - os.path.commonprefix
    linkageType: pythonLinkage
    raised:
    - InstallationError
    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: normed_path.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 530
    functionName: pip._internal.operations.install.wheel._install_wheel.is_data_scheme_path
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 0
    functionsReached:
    - path.split
    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: wheel_zip.namelist
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 540
    functionName: pip._internal.operations.install.wheel._install_wheel.is_script_scheme_path
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - path.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - file
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 559
    functionName: pip._internal.operations.install.wheel._install_wheel.is_entrypoint_wrapper
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 0
    functionsReached:
    - name.lower
    - os.path.basename
    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: itertools.chain.save
    functionSourceFile: itertools
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 586
    functionName: pip._internal.operations.install.wheel._install_wheel.pyc_source_file_paths
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached:
    - os.path.isfile
    - <builtin>.sorted
    - full_installed_path.endswith
    - <builtin>.set
    - os.path.join
    - installed.values
    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: full_installed_path.endswith
    functionSourceFile: <builtin>
    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:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 599
    functionName: pip._internal.operations.install.wheel._install_wheel.pyc_output_path
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached:
    - importlib.util.cache_from_source
    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: compileall.compile_file
    functionSourceFile: compileall
    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: pyc_path.replace
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b9e80>
    - <ast.Constant object at 0x7f30fa5b9e50>
    - <ast.Constant object at 0x7f30fa5b9e20>
    argNames:
    - self
    - source_dir
    - target_dir
    - add_launchers
    - dry_run
    - fileop
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 82
    functionName: pip._vendor.distlib.scripts.ScriptMaker.__init__
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 3
    functionsReached:
    - <builtin>.set
    - pip._vendor.distlib.util.FileOperator.__init__
    - pip._vendor.distlib.util.FileOperator._init_record
    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: gui.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30eff69fd0>
    argNames:
    - self
    - specifications
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 443
    functionName: pip._vendor.distlib.scripts.ScriptMaker.make_multiple
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 3
    functionsReached:
    - pip._vendor.distlib.scripts.ScriptMaker._fix_jython_executable
    - os.linesep.encode
    - _aix_support.aix_platform
    - os.rename
    - path.split
    - f.close
    - <builtin>.dict
    - rel_re.match
    - flags.split
    - result.add
    - pip._vendor.distlib.scripts.ScriptMaker._build_shebang
    - _executable.startswith
    - java.lang.System.getProperty
    - time.gmtime
    - zf.writestr
    - pip._vendor.distlib.util.get_host_platform
    - os.path.basename
    - sys.executable.startswith
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.distlib.util.get_export_entry
    - f.strip
    - f.seek
    - machine.replace
    - args.encode
    - pathname.split
    - pip._vendor.distlib.scripts.ScriptMaker._make_script
    - pip._vendor.distlib.scripts.ScriptMaker._get_script_text
    - os.path.join
    - os.path.splitext
    - filenames.append
    - pip._vendor.distlib.scripts.ScriptMaker._write_script
    - path.count
    - <builtin>.super
    - zipfile.ZipFile
    - pip._vendor.distlib.util.get_executable
    - os.uname
    - pip._vendor.distlib.resources.finder
    - struct.calcsize
    - pip._internal.operations.install.wheel.PipScriptMaker.make
    - m.groupdict
    - os.path.exists
    - match.group
    - f.read
    - pip._vendor.distlib.util.in_venv
    - pip._internal.operations.install.wheel._raise_for_invalid_entrypoint
    - <builtin>.isinstance
    - shebang.decode
    - io.BytesIO.getvalue
    - <builtin>.__import__
    - filenames.extend
    - _finder_registry.get
    - f.readline
    - paths.remove
    - shebang.endswith
    - os.environ.get
    - options.get
    - sys.executable.split
    - pip._vendor.distlib.scripts.ScriptMaker.get_script_filenames
    - fn.replace
    - pip._vendor.distlib.scripts.ScriptMaker._get_alternate_executable
    - sys.executable.encode
    - pip._vendor.distlib.util.convert_path
    - __name__.rsplit
    - entry.suffix.split
    - osname.lower
    - pip._vendor.distlib.util.get_platform
    - <builtin>.len
    - _osx_support.get_platform_osx
    - sysconfig.get_config_var
    - sysconfig.get_config_vars
    - FIRST_LINE_RE.match
    - pip._vendor.distlib.scripts.ScriptMaker._is_shell
    - <builtin>.int
    - os.remove
    - tokenize.detect_encoding
    - pip._vendor.distlib.scripts.ScriptMaker._get_launcher
    - pip._vendor.distlib.scripts.ScriptMaker.make
    - <builtin>.open
    - <builtin>.getattr
    - sys.platform.startswith
    - pip._vendor.distlib.scripts.enquote_executable
    - <builtin>.type
    - sysconfig.get_path
    - logger.debug
    - sysconfig.is_python_build
    - distutils.sysconfig.get_config_vars
    - re.compile
    - pip._vendor.distlib.scripts.ScriptMaker._copy_script
    - sys.version.lower
    - e.startswith
    - os.fsdecode
    - <builtin>.set
    - m.group
    - ENTRY_RE.search
    - first_line.replace
    - pip._vendor.distlib.util.ExportEntry.__init__
    - fp.read
    - outname.endswith
    - pip._vendor.distlib.scripts.ScriptMaker._get_shebang
    - logger.info
    - sys.executable.lower
    - zipfile.ZipInfo
    - io.BytesIO
    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: generated.extend
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 653
    functionName: pip._internal.operations.install.wheel._install_wheel._generate_file
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 3
    functionsReached:
    - os.fsync
    - os.chmod
    - os.path.basename
    - typing.cast.flush
    - pip._internal.utils.filesystem.adjacent_tmp_file
    - os.path.dirname
    - typing.cast.fileno
    - typing.cast
    - tempfile.NamedTemporaryFile
    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: installer_file.write
    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: generated.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: direct_url.to_json
    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: direct_url_file.write
    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: distribution.read_text
    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: record_text.splitlines
    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: csv.writer
    functionSourceFile: csv
    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: writer.writerows
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - req_description
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 703
    functionName: pip._internal.operations.install.wheel.req_error_context
    functionSourceFile: pip._internal.operations.install.wheel
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - InstallationError
    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: pip._vendor.distlib.scripts
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - executable
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: pip._vendor.distlib.scripts.enquote_executable
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 8
    functionsReached:
    - sys.executable.startswith
    - sys.executable.split
    - _executable.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.executable.startswith
    functionSourceFile: sys
    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: sys.executable.split
    functionSourceFile: sys
    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: _executable.startswith
    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:
    - <ast.Constant object at 0x7f30ce3e2040>
    argNames:
    - self
    - dry_run
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 500
    functionName: pip._vendor.distlib.util.FileOperator.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 5
    functionsReached:
    - <builtin>.set
    - pip._vendor.distlib.util.FileOperator._init_record
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - executable
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: pip._vendor.distlib.scripts.ScriptMaker._get_alternate_executable
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 8
    functionsReached:
    - os.path.split
    - os.path.join
    - options.get
    - fn.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fn.replace
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.scripts.ScriptMaker
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 0
    functionsReached:
    - sys.platform.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - executable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 112
    functionName: pip._vendor.distlib.scripts.ScriptMaker._is_shell
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 9
    functionsReached:
    - fp.read
    - <builtin>.open
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - executable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 124
    functionName: pip._vendor.distlib.scripts.ScriptMaker._fix_jython_executable
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 8
    functionsReached:
    - <builtin>.open
    - fp.read
    - sys.executable.lower
    - pip._vendor.distlib.scripts.ScriptMaker._is_shell
    - logger.warning
    - java.lang.System.getProperty
    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: java.lang.System.getProperty
    functionSourceFile: java
    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: sys.executable.lower
    functionSourceFile: sys
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - executable
    - post_interp
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 136
    functionName: pip._vendor.distlib.scripts.ScriptMaker._build_shebang
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 8
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 2
    IfCount: 9
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b5220>
    - <ast.Constant object at 0x7f30fa5b51f0>
    argNames:
    - self
    - encoding
    - post_interp
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 167
    functionName: pip._vendor.distlib.scripts.ScriptMaker._get_shebang
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 7
    functionsReached:
    - pip._vendor.distlib.scripts.ScriptMaker._fix_jython_executable
    - <builtin>.isinstance
    - shebang.decode
    - sysconfig.is_python_build
    - pip._vendor.distlib.scripts.enquote_executable
    - options.get
    - sys.executable.split
    - os.fsdecode
    - fn.replace
    - pip._vendor.distlib.scripts.ScriptMaker._build_shebang
    - pip._vendor.distlib.scripts.ScriptMaker._get_alternate_executable
    - sys.executable.encode
    - os.path.join
    - sysconfig.get_path
    - _executable.startswith
    - java.lang.System.getProperty
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.distlib.util.get_executable
    - fp.read
    - pip._vendor.distlib.scripts.ScriptMaker._is_shell
    - sys.executable.startswith
    - <builtin>.open
    - <builtin>.getattr
    - sys.platform.startswith
    - sys.executable.lower
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.distlib.util.in_venv
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 316
    functionName: pip._vendor.distlib.util.get_executable
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 8
    functionsReached:
    - os.fsdecode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 306
    functionName: pip._vendor.distlib.util.in_venv
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 10
    functionsReached:
    - <builtin>.getattr
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shebang.decode
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - entry
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 239
    functionName: pip._vendor.distlib.scripts.ScriptMaker._get_script_text
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 6
    functionsReached:
    - <builtin>.dict
    - entry.suffix.split
    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: entry.suffix.split
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - exename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 247
    functionName: pip._vendor.distlib.scripts.ScriptMaker.get_manifest
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 0
    functionsReached:
    - os.path.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 13
    IfCount: 10
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - names
    - shebang
    - script_bytes
    - filenames
    - ext
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 251
    functionName: pip._vendor.distlib.scripts.ScriptMaker._write_script
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 7
    functionsReached:
    - io.BytesIO.getvalue
    - os.linesep.encode
    - <builtin>.__import__
    - _finder_registry.get
    - machine.replace
    - logger.debug
    - distutils.sysconfig.get_config_vars
    - _aix_support.aix_platform
    - shebang.endswith
    - re.compile
    - os.rename
    - os.environ.get
    - sys.version.lower
    - e.startswith
    - rel_re.match
    - m.group
    - os.path.join
    - os.path.splitext
    - filenames.append
    - __name__.rsplit
    - osname.lower
    - pip._vendor.distlib.util.get_platform
    - time.gmtime
    - zipfile.ZipFile
    - _osx_support.get_platform_osx
    - zf.writestr
    - sysconfig.get_config_vars
    - os.uname
    - pip._vendor.distlib.util.get_host_platform
    - outname.endswith
    - <builtin>.int
    - os.remove
    - pip._vendor.distlib.resources.finder
    - struct.calcsize
    - pip._vendor.distlib.scripts.ScriptMaker._get_launcher
    - os.path.exists
    - <builtin>.hasattr
    - <builtin>.getattr
    - zipfile.ZipInfo
    - logger.warning
    - io.BytesIO
    - <builtin>.type
    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: shebang.endswith
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kind
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 405
    functionName: pip._vendor.distlib.scripts.ScriptMaker._get_launcher
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 8
    functionsReached:
    - <builtin>.__import__
    - _finder_registry.get
    - machine.replace
    - distutils.sysconfig.get_config_vars
    - _aix_support.aix_platform
    - re.compile
    - os.environ.get
    - sys.version.lower
    - rel_re.match
    - m.group
    - __name__.rsplit
    - osname.lower
    - pip._vendor.distlib.util.get_platform
    - _osx_support.get_platform_osx
    - sysconfig.get_config_vars
    - os.uname
    - pip._vendor.distlib.util.get_host_platform
    - pip._vendor.distlib.resources.finder
    - <builtin>.int
    - struct.calcsize
    - <builtin>.getattr
    - <builtin>.hasattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: zf.writestr
    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: e.startswith
    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: outname.endswith
    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: filenames.append
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 313
    functionName: pip._vendor.distlib.scripts.ScriptMaker.get_script_filenames
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 6
    functionsReached:
    - <builtin>.set
    - result.add
    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.add
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30eff84580>
    argNames:
    - self
    - entry
    - filenames
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 325
    functionName: pip._vendor.distlib.scripts.ScriptMaker._make_script
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 5
    functionsReached:
    - pip._vendor.distlib.scripts.ScriptMaker._fix_jython_executable
    - os.linesep.encode
    - _aix_support.aix_platform
    - os.rename
    - <builtin>.dict
    - rel_re.match
    - result.add
    - pip._vendor.distlib.scripts.ScriptMaker._build_shebang
    - io.BytesIO
    - _executable.startswith
    - java.lang.System.getProperty
    - time.gmtime
    - zf.writestr
    - pip._vendor.distlib.util.get_host_platform
    - sys.executable.startswith
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - machine.replace
    - args.encode
    - pip._vendor.distlib.scripts.ScriptMaker._get_script_text
    - os.path.join
    - os.path.splitext
    - filenames.append
    - pip._vendor.distlib.scripts.ScriptMaker._write_script
    - zipfile.ZipFile
    - pip._vendor.distlib.util.get_executable
    - os.uname
    - pip._vendor.distlib.resources.finder
    - struct.calcsize
    - os.path.exists
    - pip._vendor.distlib.util.in_venv
    - <builtin>.isinstance
    - io.BytesIO.getvalue
    - <builtin>.__import__
    - _finder_registry.get
    - shebang.endswith
    - os.environ.get
    - options.get
    - sys.executable.split
    - pip._vendor.distlib.scripts.ScriptMaker.get_script_filenames
    - fn.replace
    - pip._vendor.distlib.scripts.ScriptMaker._get_alternate_executable
    - sys.executable.encode
    - __name__.rsplit
    - entry.suffix.split
    - osname.lower
    - pip._vendor.distlib.util.get_platform
    - <builtin>.len
    - _osx_support.get_platform_osx
    - sysconfig.get_config_var
    - sysconfig.get_config_vars
    - pip._vendor.distlib.scripts.ScriptMaker._is_shell
    - <builtin>.int
    - os.remove
    - pip._vendor.distlib.scripts.ScriptMaker._get_launcher
    - <builtin>.open
    - <builtin>.getattr
    - sys.platform.startswith
    - pip._vendor.distlib.scripts.enquote_executable
    - <builtin>.type
    - sysconfig.get_path
    - sysconfig.is_python_build
    - logger.debug
    - distutils.sysconfig.get_config_vars
    - re.compile
    - sys.version.lower
    - e.startswith
    - os.fsdecode
    - <builtin>.set
    - m.group
    - fp.read
    - outname.endswith
    - pip._vendor.distlib.scripts.ScriptMaker._get_shebang
    - sys.executable.lower
    - zipfile.ZipInfo
    - shebang.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: args.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 10
    IfCount: 10
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - script
    - filenames
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 341
    functionName: pip._vendor.distlib.scripts.ScriptMaker._copy_script
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 5
    functionsReached:
    - pip._vendor.distlib.scripts.ScriptMaker._fix_jython_executable
    - os.linesep.encode
    - _aix_support.aix_platform
    - os.rename
    - f.close
    - rel_re.match
    - pip._vendor.distlib.scripts.ScriptMaker._build_shebang
    - _executable.startswith
    - java.lang.System.getProperty
    - time.gmtime
    - zf.writestr
    - pip._vendor.distlib.util.get_host_platform
    - os.path.basename
    - sys.executable.startswith
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - f.seek
    - machine.replace
    - pathname.split
    - os.path.join
    - os.path.splitext
    - filenames.append
    - pip._vendor.distlib.scripts.ScriptMaker._write_script
    - zipfile.ZipFile
    - pip._vendor.distlib.util.get_executable
    - os.uname
    - pip._vendor.distlib.resources.finder
    - struct.calcsize
    - match.group
    - os.path.exists
    - f.read
    - pip._vendor.distlib.util.in_venv
    - <builtin>.isinstance
    - shebang.decode
    - io.BytesIO.getvalue
    - <builtin>.__import__
    - _finder_registry.get
    - f.readline
    - paths.remove
    - shebang.endswith
    - os.environ.get
    - options.get
    - sys.executable.split
    - fn.replace
    - pip._vendor.distlib.scripts.ScriptMaker._get_alternate_executable
    - sys.executable.encode
    - pip._vendor.distlib.util.convert_path
    - __name__.rsplit
    - osname.lower
    - pip._vendor.distlib.util.get_platform
    - <builtin>.len
    - _osx_support.get_platform_osx
    - sysconfig.get_config_var
    - sysconfig.get_config_vars
    - FIRST_LINE_RE.match
    - pip._vendor.distlib.scripts.ScriptMaker._is_shell
    - <builtin>.int
    - os.remove
    - tokenize.detect_encoding
    - pip._vendor.distlib.scripts.ScriptMaker._get_launcher
    - <builtin>.open
    - <builtin>.getattr
    - sys.platform.startswith
    - pip._vendor.distlib.scripts.enquote_executable
    - <builtin>.type
    - sysconfig.get_path
    - logger.debug
    - sysconfig.is_python_build
    - distutils.sysconfig.get_config_vars
    - re.compile
    - sys.version.lower
    - e.startswith
    - os.fsdecode
    - m.group
    - first_line.replace
    - fp.read
    - outname.endswith
    - pip._vendor.distlib.scripts.ScriptMaker._get_shebang
    - logger.info
    - sys.executable.lower
    - zipfile.ZipInfo
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - pathname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 471
    functionName: pip._vendor.distlib.util.convert_path
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 12
    functionsReached:
    - paths.remove
    - pathname.split
    - os.path.join
    linkageType: pythonLinkage
    raised:
    - ValueError
    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.readline
    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: first_line.replace
    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: FIRST_LINE_RE.match
    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.close
    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: tokenize.detect_encoding
    functionSourceFile: tokenize
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 397
    functionName: pip._vendor.distlib.scripts.ScriptMaker.dry_run
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2019
    functionName: pip._vendor.distlib.util.get_platform
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 10
    functionsReached:
    - pip._vendor.distlib.util.get_host_platform
    - <builtin>.int
    - <builtin>.hasattr
    - machine.replace
    - _osx_support.get_platform_osx
    - rel_re.match
    - distutils.sysconfig.get_config_vars
    - _aix_support.aix_platform
    - m.group
    - re.compile
    - os.environ.get
    - sysconfig.get_config_vars
    - os.uname
    - osname.lower
    - sys.version.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: __name__.rsplit
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - package
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 313
    functionName: pip._vendor.distlib.resources.finder
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 9
    functionsReached:
    - <builtin>.__import__
    - _finder_registry.get
    - <builtin>.getattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30eff8f7c0>
    argNames:
    - self
    - specification
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 424
    functionName: pip._vendor.distlib.scripts.ScriptMaker.make
    functionSourceFile: pip._vendor.distlib.scripts
    functionUses: 4
    functionsReached:
    - pip._vendor.distlib.scripts.ScriptMaker._fix_jython_executable
    - os.linesep.encode
    - _aix_support.aix_platform
    - os.rename
    - path.split
    - f.close
    - <builtin>.dict
    - rel_re.match
    - result.add
    - flags.split
    - pip._vendor.distlib.scripts.ScriptMaker._build_shebang
    - io.BytesIO
    - _executable.startswith
    - java.lang.System.getProperty
    - time.gmtime
    - zf.writestr
    - pip._vendor.distlib.util.get_host_platform
    - os.path.basename
    - sys.executable.startswith
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.distlib.util.get_export_entry
    - f.strip
    - f.seek
    - machine.replace
    - args.encode
    - pathname.split
    - pip._vendor.distlib.scripts.ScriptMaker._make_script
    - pip._vendor.distlib.scripts.ScriptMaker._get_script_text
    - os.path.join
    - os.path.splitext
    - filenames.append
    - pip._vendor.distlib.scripts.ScriptMaker._write_script
    - path.count
    - zipfile.ZipFile
    - pip._vendor.distlib.util.get_executable
    - os.uname
    - pip._vendor.distlib.resources.finder
    - struct.calcsize
    - m.groupdict
    - match.group
    - os.path.exists
    - f.read
    - pip._vendor.distlib.util.in_venv
    - <builtin>.isinstance
    - io.BytesIO.getvalue
    - <builtin>.__import__
    - _finder_registry.get
    - f.readline
    - paths.remove
    - shebang.endswith
    - os.environ.get
    - options.get
    - sys.executable.split
    - pip._vendor.distlib.scripts.ScriptMaker.get_script_filenames
    - fn.replace
    - pip._vendor.distlib.scripts.ScriptMaker._get_alternate_executable
    - sys.executable.encode
    - pip._vendor.distlib.util.convert_path
    - __name__.rsplit
    - entry.suffix.split
    - osname.lower
    - pip._vendor.distlib.util.get_platform
    - <builtin>.len
    - _osx_support.get_platform_osx
    - sysconfig.get_config_var
    - sysconfig.get_config_vars
    - FIRST_LINE_RE.match
    - pip._vendor.distlib.scripts.ScriptMaker._is_shell
    - <builtin>.int
    - os.remove
    - tokenize.detect_encoding
    - pip._vendor.distlib.scripts.ScriptMaker._get_launcher
    - <builtin>.open
    - <builtin>.getattr
    - sys.platform.startswith
    - pip._vendor.distlib.scripts.enquote_executable
    - sysconfig.get_path
    - <builtin>.type
    - logger.debug
    - sysconfig.is_python_build
    - distutils.sysconfig.get_config_vars
    - re.compile
    - pip._vendor.distlib.scripts.ScriptMaker._copy_script
    - sys.version.lower
    - e.startswith
    - os.fsdecode
    - <builtin>.set
    - m.group
    - ENTRY_RE.search
    - first_line.replace
    - pip._vendor.distlib.util.ExportEntry.__init__
    - fp.read
    - outname.endswith
    - pip._vendor.distlib.scripts.ScriptMaker._get_shebang
    - logger.info
    - sys.executable.lower
    - zipfile.ZipInfo
    - shebang.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filenames.extend
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.resources
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - types.ModuleType
    - <builtin>.str
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f790f460>
    argNames:
    - self
    - base
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 28
    functionName: pip._vendor.distlib.resources.ResourceCache.__init__
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - tempfile.mkdtemp
    - <builtin>.str
    - os.access
    - os.path.expandvars
    - pip._vendor.distlib.util.get_cache_base
    - os.path.join
    - os.path.isdir
    - os.path.expanduser
    - logger.warning
    - os.makedirs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30d33e5280>
    argNames:
    - suffix
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 772
    functionName: pip._vendor.distlib.util.get_cache_base
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 5
    functionsReached:
    - tempfile.mkdtemp
    - os.access
    - os.path.expandvars
    - os.path.isdir
    - os.path.join
    - os.path.expanduser
    - logger.warning
    - os.makedirs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - resource
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 34
    functionName: pip._vendor.distlib.resources.ResourceCache.is_stale
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 45
    functionName: pip._vendor.distlib.resources.ResourceCache.get
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 1
    functionsReached:
    - pip._vendor.distlib.util.path_to_cache_dir
    - os.path.exists
    - pip._vendor.distlib.resources.ResourceCache.is_stale
    - os.path.dirname
    - p.replace
    - resource.finder.get_cache_info
    - f.write
    - <builtin>.open
    - pip._vendor.distlib.util.Cache.prefix_to_dir
    - os.path.isdir
    - os.path.join
    - d.replace
    - os.path.abspath
    - os.path.splitdrive
    - os.makedirs
    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: resource.finder.get_cache_info
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - prefix
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1006
    functionName: pip._vendor.distlib.util.Cache.prefix_to_dir
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 4
    functionsReached:
    - pip._vendor.distlib.util.path_to_cache_dir
    - p.replace
    - d.replace
    - os.path.abspath
    - os.path.splitdrive
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - finder
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 72
    functionName: pip._vendor.distlib.resources.ResourceBase.__init__
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 2
    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: 85
    functionName: pip._vendor.distlib.resources.Resource.as_stream
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.resources.Resource
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.util.cached_property
    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: pip._vendor.distlib.util.cached_property
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 95
    functionName: pip._vendor.distlib.resources.Resource.file_path
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.resources.ResourceCache.is_stale
    - f.write
    - resource.finder.get_cache_info
    - pip._vendor.distlib.resources.ResourceCache.__init__
    - pip._vendor.distlib.util.path_to_cache_dir
    - <builtin>.str
    - pip._vendor.distlib.resources.ResourceCache.get
    - p.replace
    - os.path.expandvars
    - pip._vendor.distlib.util.get_cache_base
    - os.path.join
    - os.path.expanduser
    - os.makedirs
    - <builtin>.super
    - tempfile.mkdtemp
    - os.access
    - pip._vendor.distlib.util.Cache.prefix_to_dir
    - os.path.isdir
    - os.path.abspath
    - os.path.exists
    - os.path.dirname
    - <builtin>.open
    - d.replace
    - os.path.splitdrive
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 102
    functionName: pip._vendor.distlib.resources.Resource.bytes
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 106
    functionName: pip._vendor.distlib.resources.Resource.size
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.resources.ResourceContainer
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.util.cached_property
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 114
    functionName: pip._vendor.distlib.resources.ResourceContainer.resources
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.resources.ResourceFinder
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    - sys.platform.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - module
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 128
    functionName: pip._vendor.distlib.resources.ResourceFinder.__init__
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - os.path.dirname
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 133
    functionName: pip._vendor.distlib.resources.ResourceFinder._adjust_path
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 3
    functionsReached:
    - os.path.realpath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 136
    functionName: pip._vendor.distlib.resources.ResourceFinder._make_path
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - os.path.realpath
    - parts.insert
    - os.path.join
    - pip._vendor.distlib.resources.ResourceFinder._adjust_path
    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: parts.insert
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 148
    functionName: pip._vendor.distlib.resources.ResourceFinder._find
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 2
    functionsReached:
    - os.path.exists
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 151
    functionName: pip._vendor.distlib.resources.ResourceFinder.get_cache_info
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 154
    functionName: pip._vendor.distlib.resources.ResourceFinder.find
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - os.path.realpath
    - os.path.exists
    - pip._vendor.distlib.resources.ResourceFinder._make_path
    - pip._vendor.distlib.resources.ResourceBase.__init__
    - pip._vendor.distlib.resources.ResourceFinder._find
    - parts.insert
    - os.path.join
    - pip._vendor.distlib.resources.ResourceFinder._adjust_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 166
    functionName: pip._vendor.distlib.resources.ResourceFinder.get_stream
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - <builtin>.open
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 169
    functionName: pip._vendor.distlib.resources.ResourceFinder.get_bytes
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - f.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 173
    functionName: pip._vendor.distlib.resources.ResourceFinder.get_size
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - os.path.getsize
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 176
    functionName: pip._vendor.distlib.resources.ResourceFinder.get_resources
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - f.endswith
    - pip._vendor.distlib.resources.ResourceFinder.get_resources.allowed
    - os.listdir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 177
    functionName: pip._vendor.distlib.resources.ResourceFinder.get_resources.allowed
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 1
    functionsReached:
    - f.endswith
    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.endswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 182
    functionName: pip._vendor.distlib.resources.ResourceFinder.is_container
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 187
    functionName: pip._vendor.distlib.resources.ResourceFinder.iterator
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.resources.ResourceFinder.find
    - os.path.realpath
    - os.path.exists
    - pip._vendor.distlib.resources.ResourceFinder._make_path
    - todo.append
    - pip._vendor.distlib.resources.ResourceFinder._find
    - parts.insert
    - todo.pop
    - pip._vendor.distlib.resources.ResourceBase.__init__
    - os.path.join
    - pip._vendor.distlib.resources.ResourceFinder._adjust_path
    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: todo.pop
    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: todo.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - module
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 212
    functionName: pip._vendor.distlib.resources.ZipResourceFinder.__init__
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.len
    - <builtin>.sorted
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 223
    functionName: pip._vendor.distlib.resources.ZipResourceFinder._adjust_path
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 226
    functionName: pip._vendor.distlib.resources.ZipResourceFinder._find
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - logger.debug
    - bisect.bisect
    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: bisect.bisect
    functionSourceFile: bisect
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 244
    functionName: pip._vendor.distlib.resources.ZipResourceFinder.get_cache_info
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 249
    functionName: pip._vendor.distlib.resources.ZipResourceFinder.get_bytes
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 252
    functionName: pip._vendor.distlib.resources.ZipResourceFinder.get_stream
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.resources.ZipResourceFinder.get_bytes
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 255
    functionName: pip._vendor.distlib.resources.ZipResourceFinder.get_size
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - resource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 259
    functionName: pip._vendor.distlib.resources.ZipResourceFinder.get_resources
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - s.split
    - <builtin>.len
    - <builtin>.set
    - result.add
    - bisect.bisect
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 274
    functionName: pip._vendor.distlib.resources.ZipResourceFinder._is_directory
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - bisect.bisect
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - loader
    - finder_maker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 306
    functionName: pip._vendor.distlib.resources.register_finder
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 0
    functionsReached:
    - <builtin>.type
    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: _finder_registry.get
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 341
    functionName: pip._vendor.distlib.resources.finder_for_path
    functionSourceFile: pip._vendor.distlib.resources
    functionUses: 17
    functionsReached:
    - pkgutil.get_importer
    - _finder_registry.get
    - sys.path_importer_cache.get
    - os.path.join
    - <builtin>.type
    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.path_importer_cache.get
    functionSourceFile: sys
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.util
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - re.compile
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - marker_string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 56
    functionName: pip._vendor.distlib.util.parse_marker
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 22
    functionsReached:
    - MARKER_OP.match
    - m.end
    - m.groups
    - STRING_CHUNK.match
    - AND.match
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - OR.match
    - parts.append
    - pip._vendor.distlib.util.parse_marker.marker_var
    - pip._vendor.distlib.util.parse_marker.marker
    - IDENTIFIER.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - remaining
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: pip._vendor.distlib.util.parse_marker.marker_var
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 26
    functionsReached:
    - m.end
    - m.groups
    - STRING_CHUNK.match
    - parts.append
    - IDENTIFIER.match
    linkageType: pythonLinkage
    raised:
    - SyntaxError
    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: IDENTIFIER.match
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: m.groups
    functionSourceFile: <builtin>
    functionUses: 93
    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: STRING_CHUNK.match
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - remaining
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 103
    functionName: pip._vendor.distlib.util.parse_marker.marker_expr
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 25
    functionsReached:
    - MARKER_OP.match
    - m.end
    - m.groups
    - STRING_CHUNK.match
    - AND.match
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - parts.append
    - OR.match
    - pip._vendor.distlib.util.parse_marker.marker_var
    - pip._vendor.distlib.util.parse_marker.marker
    - IDENTIFIER.match
    linkageType: pythonLinkage
    raised:
    - SyntaxError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - remaining
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 133
    functionName: pip._vendor.distlib.util.parse_marker.marker
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 25
    functionsReached:
    - MARKER_OP.match
    - m.end
    - m.groups
    - STRING_CHUNK.match
    - AND.match
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - OR.match
    - parts.append
    - pip._vendor.distlib.util.parse_marker.marker_var
    - pip._vendor.distlib.util.parse_marker.marker
    - IDENTIFIER.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: MARKER_OP.match
    functionSourceFile: <builtin>
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - remaining
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 122
    functionName: pip._vendor.distlib.util.parse_marker.marker_and
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 25
    functionsReached:
    - MARKER_OP.match
    - m.end
    - m.groups
    - STRING_CHUNK.match
    - AND.match
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - pip._vendor.distlib.util.parse_marker.marker_and
    - parts.append
    - OR.match
    - pip._vendor.distlib.util.parse_marker.marker_var
    - pip._vendor.distlib.util.parse_marker.marker
    - IDENTIFIER.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: AND.match
    functionSourceFile: <builtin>
    functionUses: 26
    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: OR.match
    functionSourceFile: <builtin>
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 21
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 30
    ICount: 2
    IfCount: 21
    argCount: 1
    argDefaultValues: []
    argNames:
    - req
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 147
    functionName: pip._vendor.distlib.util.parse_requirement
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 13
    functionsReached:
    - remaining.find
    - urlparse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker_and
    - OR.match
    - pip._vendor.distlib.util.parse_marker.marker_var
    - m.end
    - types.SimpleNamespace
    - parts.append
    - IDENTIFIER.match
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - MARKER_OP.match
    - extras.append
    - versions.append
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - remaining.startswith
    - m.groups
    - COMPARE_OP.match
    - AND.match
    - NON_SPACE.match
    - VERSION_IDENTIFIER.match
    - urllib.parse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker
    - req.strip
    linkageType: pythonLinkage
    raised:
    - SyntaxError
    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.strip
    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: remaining.startswith
    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: remaining.find
    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: extras.append
    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: NON_SPACE.match
    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: urlparse.urlparse
    functionSourceFile: urlparse
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - ver_remaining
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 199
    functionName: pip._vendor.distlib.util.parse_requirement.get_versions
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 14
    functionsReached:
    - m.end
    - versions.append
    - m.groups
    - COMPARE_OP.match
    - VERSION_IDENTIFIER.match
    linkageType: pythonLinkage
    raised:
    - SyntaxError
    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: COMPARE_OP.match
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: VERSION_IDENTIFIER.match
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: types.SimpleNamespace
    functionSourceFile: types
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - resources_root
    - rules
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 280
    functionName: pip._vendor.distlib.util.get_resources_dests
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - RICH_GLOB.split
    - os.walk
    - path_glob.split
    - pip._vendor.distlib.util.get_resources_dests.get_rel_path
    - radical.lstrip
    - <builtin>.len
    - dest.replace
    - glob.iglob.replace
    - glob.iglob
    - glob.iglob.startswith
    - os.path.normpath
    - os.path.join
    - pip._vendor.distlib.util._iglob
    - set.split
    - _CHECK_RECURSIVE_GLOB.search
    - pip._vendor.distlib.util.iglob
    - _CHECK_MISMATCH_SET.search
    - destinations.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - root
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 283
    functionName: pip._vendor.distlib.util.get_resources_dests.get_rel_path
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - glob.iglob.replace
    - glob.iglob.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: glob.iglob.replace
    functionSourceFile: glob
    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: glob.iglob.startswith
    functionSourceFile: glob
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - path_glob
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1437
    functionName: pip._vendor.distlib.util.iglob
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - RICH_GLOB.split
    - os.walk
    - path_glob.split
    - radical.lstrip
    - <builtin>.len
    - glob.iglob
    - os.path.normpath
    - pip._vendor.distlib.util._iglob
    - set.split
    - _CHECK_RECURSIVE_GLOB.search
    - os.path.join
    - _CHECK_MISMATCH_SET.search
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: destinations.pop
    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: dest.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36bacd0>
    - <ast.Constant object at 0x7f30e36baca0>
    argNames:
    - prompt
    - allowed_chars
    - error_prompt
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 334
    functionName: pip._vendor.distlib.util.proceed
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - d
    - keys
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 350
    functionName: pip._vendor.distlib.util.extract_by_key
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 2
    functionsReached:
    - keys.split
    - <builtin>.isinstance
    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: keys.split
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - stream
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 360
    functionName: pip._vendor.distlib.util.read_exports
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - json.load
    - pip._vendor.distlib.util.get_export_entry
    - f.strip
    - codecs.getreader
    - cp.sections
    - io.StringIO.seek
    - textwrap.dedent
    - path.split
    - configparser.ConfigParser
    - entries.items
    - StringIO.StringIO
    - cp.items
    - io.StringIO
    - flags.split
    - ENTRY_RE.search
    - cp.read_file
    - path.count
    - cp.readfp
    - io.StringIO.read
    - pip._vendor.distlib.util.read_exports.read_stream
    - pip._vendor.distlib.util.ExportEntry.__init__
    - io.StringIO.close
    - result.items
    - m.groupdict
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: codecs.getreader
    functionSourceFile: codecs
    functionUses: 18
    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: io.StringIO.read
    functionSourceFile: io
    functionUses: 25
    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: StringIO.StringIO
    functionSourceFile: StringIO
    functionUses: 25
    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.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.StringIO.seek
    functionSourceFile: io
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cp
    - stream
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 380
    functionName: pip._vendor.distlib.util.read_exports.read_stream
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 2
    functionsReached:
    - cp.read_file
    - <builtin>.hasattr
    - cp.readfp
    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: cp.read_file
    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: cp.readfp
    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: io.StringIO.close
    functionSourceFile: io
    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: cp.sections
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cp.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - exports
    - stream
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 407
    functionName: pip._vendor.distlib.util.write_exports
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - cp.write
    - v.values
    - cp.add_section
    - cp.set
    - codecs.getwriter
    - configparser.ConfigParser
    - exports.items
    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: codecs.getwriter
    functionSourceFile: codecs
    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: exports.items
    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: cp.add_section
    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: v.values
    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: cp.set
    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: cp.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 427
    functionName: pip._vendor.distlib.util.tempdir
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - shutil.rmtree
    - tempfile.mkdtemp
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - d
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 436
    functionName: pip._vendor.distlib.util.chdir
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - os.chdir
    - os.getcwd
    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.chdir
    functionSourceFile: os
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3decd0>
    argNames:
    - seconds
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 446
    functionName: pip._vendor.distlib.util.socket_timeout
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - socket.getdefaulttimeout
    - socket.setdefaulttimeout
    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.setdefaulttimeout
    functionSourceFile: socket
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - func
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 457
    functionName: pip._vendor.distlib.util.cached_property.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3de550>
    argNames:
    - self
    - obj
    - cls
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 462
    functionName: pip._vendor.distlib.util.cached_property.__get__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - object.__setattr__
    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: object.__setattr__
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pathname.split
    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: paths.remove
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 505
    functionName: pip._vendor.distlib.util.FileOperator._init_record
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 8
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 510
    functionName: pip._vendor.distlib.util.FileOperator.record_as_written
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - source
    - target
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 514
    functionName: pip._vendor.distlib.util.FileOperator.newer
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 2
    functionsReached:
    - os.path.exists
    - os.stat
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3e9d00>
    argNames:
    - self
    - infile
    - outfile
    - check
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 534
    functionName: pip._vendor.distlib.util.FileOperator.copy_file
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.util.FileOperator.ensure_dir
    - pip._vendor.distlib.util.FileOperator.record_as_written
    - os.path.exists
    - os.path.isfile
    - os.path.islink
    - os.path.dirname
    - logger.info
    - os.mkdir
    - shutil.copyfile
    - os.path.abspath
    - os.path.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 592
    functionName: pip._vendor.distlib.util.FileOperator.ensure_dir
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 5
    functionsReached:
    - pip._vendor.distlib.util.FileOperator.ensure_dir
    - os.path.exists
    - logger.info
    - os.mkdir
    - os.path.abspath
    - os.path.split
    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: shutil.copyfile
    functionSourceFile: shutil
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3ebc40>
    argNames:
    - self
    - instream
    - outfile
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 551
    functionName: pip._vendor.distlib.util.FileOperator.copy_stream
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - pip._vendor.distlib.util.FileOperator.ensure_dir
    - outstream.close
    - pip._vendor.distlib.util.FileOperator.record_as_written
    - os.path.exists
    - os.path.dirname
    - logger.info
    - <builtin>.open
    - codecs.open
    - os.mkdir
    - os.path.isdir
    - os.path.abspath
    - os.path.split
    - shutil.copyfileobj
    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: codecs.open
    functionSourceFile: codecs
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: outstream.close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 566
    functionName: pip._vendor.distlib.util.FileOperator.write_binary_file
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - pip._vendor.distlib.util.FileOperator.ensure_dir
    - os.remove
    - pip._vendor.distlib.util.FileOperator.record_as_written
    - os.path.exists
    - os.path.dirname
    - f.write
    - logger.info
    - <builtin>.open
    - os.mkdir
    - os.path.abspath
    - os.path.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - path
    - data
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 575
    functionName: pip._vendor.distlib.util.FileOperator.write_text_file
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.util.FileOperator.ensure_dir
    - os.remove
    - pip._vendor.distlib.util.FileOperator.record_as_written
    - os.path.exists
    - pip._vendor.distlib.util.FileOperator.write_binary_file
    - os.path.dirname
    - f.write
    - logger.info
    - <builtin>.open
    - os.mkdir
    - os.path.abspath
    - os.path.split
    - data.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - bits
    - mask
    - files
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 578
    functionName: pip._vendor.distlib.util.FileOperator.set_mode
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 2
    functionsReached:
    - os.stat
    - os.chmod
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.distlib.util.FileOperator.<lambda1>
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - pip._vendor.distlib.util.FileOperator.set_mode
    - os.stat
    - os.chmod
    - logger.info
    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 0x7f30ce4144f0>
    - <ast.Constant object at 0x7f30ce4144c0>
    - <ast.Constant object at 0x7f30ce414490>
    - <ast.Constant object at 0x7f30ce414460>
    argNames:
    - self
    - path
    - optimize
    - force
    - prefix
    - hashed_invalidation
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 604
    functionName: pip._vendor.distlib.util.FileOperator.byte_compile
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - py_compile.compile
    - path.startswith
    - os.stat
    - pip._vendor.distlib.util.FileOperator.record_as_written
    - os.path.exists
    - <builtin>.len
    - logger.info
    - importlib.util.cache_from_source
    - pip._vendor.distlib.util.FileOperator.newer
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: py_compile.compile
    functionSourceFile: py_compile
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 6
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 629
    functionName: pip._vendor.distlib.util.FileOperator.ensure_removed
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - os.remove
    - os.path.exists
    - shutil.rmtree
    - os.path.islink
    - logger.debug
    - os.path.isdir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 650
    functionName: pip._vendor.distlib.util.FileOperator.is_writable
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - os.path.exists
    - os.access
    - os.path.dirname
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 662
    functionName: pip._vendor.distlib.util.FileOperator.commit
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - pip._vendor.distlib.util.FileOperator._init_record
    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: 2
    functionLinenumber: 672
    functionName: pip._vendor.distlib.util.FileOperator.rollback
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - os.remove
    - os.path.exists
    - os.listdir
    - pip._vendor.distlib.util.FileOperator._init_record
    - <builtin>.sorted
    - <builtin>.set
    - os.rmdir
    - os.path.join
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - module_name
    - dotted_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 691
    functionName: pip._vendor.distlib.util.resolve
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - dotted_path.split
    - <builtin>.getattr
    - <builtin>.__import__
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dotted_path.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - name
    - prefix
    - suffix
    - flags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 708
    functionName: pip._vendor.distlib.util.ExportEntry.__init__
    functionSourceFile: pip._vendor.distlib.util
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.util.ExportEntry
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.util.cached_property
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 715
    functionName: pip._vendor.distlib.util.ExportEntry.value
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - dotted_path.split
    - pip._vendor.distlib.util.resolve
    - <builtin>.__import__
    - <builtin>.getattr
    - parts.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 718
    functionName: pip._vendor.distlib.util.ExportEntry.__repr__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 722
    functionName: pip._vendor.distlib.util.ExportEntry.__eq__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    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: ENTRY_RE.search
    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: path.count
    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: f.strip
    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: flags.split
    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: os.path.expandvars
    functionSourceFile: os
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 813
    functionName: pip._vendor.distlib.util.path_to_cache_dir
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 5
    functionsReached:
    - os.path.abspath
    - os.path.splitdrive
    - p.replace
    - d.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: d.replace
    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: p.replace
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 830
    functionName: pip._vendor.distlib.util.ensure_slash
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 6
    functionsReached:
    - urllib.parse.urljoin.endswith
    - urlparse.urljoin.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin.endswith
    functionSourceFile: urllib
    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: urlparse.urljoin.endswith
    functionSourceFile: urlparse
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - netloc
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 836
    functionName: pip._vendor.distlib.util.parse_credentials
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - urllib.unquote
    - netloc.rsplit
    - urllib.parse.unquote
    - prefix.split
    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: prefix.split
    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: urllib.unquote
    functionSourceFile: urllib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 851
    functionName: pip._vendor.distlib.util.get_process_umask
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - os.umask
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - seq
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 857
    functionName: pip._vendor.distlib.util.is_string_sequence
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f694d580>
    argNames:
    - filename
    - project_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 874
    functionName: pip._vendor.distlib.util.split_filename
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - urllib.parse.unquote
    - m.end
    - m.start
    - <builtin>.len
    - re.match
    - urllib.unquote
    - m.group
    - PYTHON_VERSION.search
    - PROJECT_NAME_AND_VERSION.match
    - re.escape
    - urllib.unquote.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.unquote.replace
    functionSourceFile: urllib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: PYTHON_VERSION.search
    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: m.start
    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: PROJECT_NAME_AND_VERSION.match
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - p
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 904
    functionName: pip._vendor.distlib.util.parse_name_and_version
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 9
    functionsReached:
    - m.groupdict
    - NAME_VERSION_RE.match
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: NAME_VERSION_RE.match
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 6
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - requested
    - available
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 920
    functionName: pip._vendor.distlib.util.get_extras
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 7
    functionsReached:
    - requested.remove
    - <builtin>.set
    - result.remove
    - result.add
    - r.startswith
    - logger.warning
    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: requested.remove
    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: r.startswith
    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: result.remove
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 948
    functionName: pip._vendor.distlib.util._get_external_data
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 3
    functionsReached:
    - json.load
    - codecs.getreader
    - headers.get
    - urllib.request.urlopen.info
    - urllib.request.urlopen
    - logger.debug
    - ct.startswith
    - urllib2.urlopen
    - logger.exception
    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: urllib
    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: urllib2.urlopen
    functionSourceFile: urllib2
    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: urllib.request.urlopen.info
    functionSourceFile: urllib
    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: ct.startswith
    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: logger.exception
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 972
    functionName: pip._vendor.distlib.util.get_project_data
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - json.load
    - pip._vendor.distlib.util._get_external_data
    - urlparse.urljoin
    - codecs.getreader
    - headers.get
    - urllib.request.urlopen.info
    - logger.debug
    - urllib.request.urlopen
    - urllib.parse.urljoin
    - ct.startswith
    - urllib2.urlopen
    - logger.exception
    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: urlparse.urljoin
    functionSourceFile: urlparse
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - name
    - version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 979
    functionName: pip._vendor.distlib.util.get_package_data
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - json.load
    - pip._vendor.distlib.util._get_external_data
    - urlparse.urljoin
    - codecs.getreader
    - headers.get
    - urllib.request.urlopen.info
    - logger.debug
    - urllib.request.urlopen
    - urllib.parse.urljoin
    - ct.startswith
    - urllib2.urlopen
    - logger.exception
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - base
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 992
    functionName: pip._vendor.distlib.util.Cache.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 3
    functionsReached:
    - os.stat
    - os.path.normpath
    - os.path.isdir
    - os.path.abspath
    - logger.warning
    - os.makedirs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1012
    functionName: pip._vendor.distlib.util.Cache.clear
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - os.remove
    - os.path.isfile
    - shutil.rmtree
    - os.path.islink
    - not_removed.append
    - os.listdir
    - os.path.isdir
    - 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: not_removed.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1034
    functionName: pip._vendor.distlib.util.EventMixin.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6932f70>
    argNames:
    - self
    - event
    - subscriber
    - append
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1037
    functionName: pip._vendor.distlib.util.EventMixin.add
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - collections.deque
    - sq.append
    - sq.appendleft
    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: sq.append
    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: sq.appendleft
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - event
    - subscriber
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1057
    functionName: pip._vendor.distlib.util.EventMixin.remove
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1069
    functionName: pip._vendor.distlib.util.EventMixin.get_subscribers
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - event
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1076
    functionName: pip._vendor.distlib.util.EventMixin.publish
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - logger.exception
    - logger.debug
    - <builtin>.iter
    - result.append
    - pip._vendor.distlib.util.EventMixin.get_subscribers
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1105
    functionName: pip._vendor.distlib.util.Sequencer.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - node
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1110
    functionName: pip._vendor.distlib.util.Sequencer.add_node
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f6938d30>
    argNames:
    - self
    - node
    - edges
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1113
    functionName: pip._vendor.distlib.util.Sequencer.remove_node
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - succs.remove
    - pip._vendor.distlib.util.Sequencer.remove
    - preds.remove
    - <builtin>.set
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - pred
    - succ
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1134
    functionName: pip._vendor.distlib.util.Sequencer.remove
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - preds.remove
    - succs.remove
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - pred
    - succ
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1129
    functionName: pip._vendor.distlib.util.Sequencer.add
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - <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: preds.remove
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: succs.remove
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - step
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1147
    functionName: pip._vendor.distlib.util.Sequencer.is_step
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - final
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1151
    functionName: pip._vendor.distlib.util.Sequencer.get_steps
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - <builtin>.reversed
    - pip._vendor.distlib.util.Sequencer.is_step
    - seen.add
    - todo.append
    - <builtin>.set
    - todo.pop
    - todo.extend
    - result.remove
    - result.append
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: todo.extend
    functionSourceFile: <builtin>
    functionUses: 1
    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: 1177
    functionName: pip._vendor.distlib.util.Sequencer.strong_connections
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - connected_component.append
    - stack.pop
    - <builtin>.tuple
    - <builtin>.min
    - pip._vendor.distlib.util.Sequencer.strong_connections.strongconnect
    - stack.append
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - node
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1187
    functionName: pip._vendor.distlib.util.Sequencer.strong_connections.strongconnect
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - connected_component.append
    - stack.pop
    - <builtin>.tuple
    - <builtin>.min
    - pip._vendor.distlib.util.Sequencer.strong_connections.strongconnect
    - stack.append
    - result.append
    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: stack.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stack.pop
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: connected_component.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1229
    functionName: pip._vendor.distlib.util.Sequencer.dot
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 4
    IfCount: 11
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfbd5b50>
    - <ast.Constant object at 0x7f30dfbd5b20>
    argNames:
    - archive_filename
    - dest_dir
    - format
    - check
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1249
    functionName: pip._vendor.distlib.util.unarchive
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - path.decode
    - zipfile.ZipFile.getmembers
    - archive_filename.endswith
    - zipfile.ZipFile.namelist
    - zipfile.ZipFile
    - zipfile.ZipFile.close
    - <builtin>.len
    - zipfile.ZipFile.getnames
    - zipfile.ZipFile.extractall
    - p.startswith
    - pip._vendor.distlib.util.unarchive.check_path
    - tarinfo.name.decode
    - os.path.join
    - tarfile.open
    - os.path.abspath
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1251
    functionName: pip._vendor.distlib.util.unarchive.check_path
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - path.decode
    - p.startswith
    - os.path.join
    - os.path.abspath
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.startswith
    functionSourceFile: <builtin>
    functionUses: 74
    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: archive_filename.endswith
    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: zipfile.ZipFile.namelist
    functionSourceFile: zipfile
    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: zipfile.ZipFile.getnames
    functionSourceFile: zipfile
    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: zipfile.ZipFile.getmembers
    functionSourceFile: zipfile
    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: tarinfo.name.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - member
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1300
    functionName: pip._vendor.distlib.util.unarchive.extraction_filter
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - tarfile.tar_filter
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: tarfile.tar_filter
    functionSourceFile: tarfile
    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: zipfile.ZipFile.extractall
    functionSourceFile: zipfile
    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: zipfile.ZipFile.close
    functionSourceFile: zipfile
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - directory
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1317
    functionName: pip._vendor.distlib.util.zip_dir
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - os.walk
    - zf.write
    - zipfile.ZipFile
    - <builtin>.len
    - os.path.join
    - io.BytesIO
    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: zf.write
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dfbabc40>
    - <ast.Constant object at 0x7f30dfbabc10>
    argNames:
    - self
    - minval
    - maxval
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1341
    functionName: pip._vendor.distlib.util.Progress.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - curval
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1349
    functionName: pip._vendor.distlib.util.Progress.update
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 3
    functionsReached:
    - time.time
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - incr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1359
    functionName: pip._vendor.distlib.util.Progress.increment
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - time.time
    - pip._vendor.distlib.util.Progress.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1363
    functionName: pip._vendor.distlib.util.Progress.start
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - time.time
    - pip._vendor.distlib.util.Progress.update
    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: 1367
    functionName: pip._vendor.distlib.util.Progress.stop
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - time.time
    - pip._vendor.distlib.util.Progress.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1373
    functionName: pip._vendor.distlib.util.Progress.maximum
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1377
    functionName: pip._vendor.distlib.util.Progress.percentage
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - duration
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1387
    functionName: pip._vendor.distlib.util.Progress.format_duration
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - time.gmtime
    - time.strftime
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1397
    functionName: pip._vendor.distlib.util.Progress.ETA
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - <builtin>.float
    - time.gmtime
    - time.strftime
    - pip._vendor.distlib.util.Progress.format_duration
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1416
    functionName: pip._vendor.distlib.util.Progress.speed
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _CHECK_RECURSIVE_GLOB.search
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _CHECK_MISMATCH_SET.search
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - path_glob
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1448
    functionName: pip._vendor.distlib.util._iglob
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 2
    functionsReached:
    - RICH_GLOB.split
    - os.walk
    - path_glob.split
    - radical.lstrip
    - <builtin>.len
    - glob.iglob
    - os.path.normpath
    - set.split
    - pip._vendor.distlib.util._iglob
    - 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: RICH_GLOB.split
    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: set.split
    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: glob.iglob
    functionSourceFile: glob
    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: path_glob.split
    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: radical.lstrip
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 7
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1489
    functionName: pip._vendor.distlib.util.HTTPSConnection.connect
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - context.wrap_socket
    - context.load_verify_locations
    - ssl.match_hostname
    - context.load_cert_chain
    - logger.debug
    - <builtin>.getattr
    - socket.create_connection
    - httplib.HTTPSConnection._tunnel
    - ssl.SSLContext
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.create_connection
    functionSourceFile: socket
    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: httplib.HTTPSConnection._tunnel
    functionSourceFile: httplib
    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: context.load_cert_chain
    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: context.load_verify_locations
    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: context.wrap_socket
    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: ssl.match_hostname
    functionSourceFile: ssl
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d9303730>
    argNames:
    - self
    - ca_certs
    - check_domain
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1520
    functionName: pip._vendor.distlib.util.HTTPSHandler.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - urllib2.HTTPSHandler.__init__
    - urllib.request.HTTPSHandler.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib2.HTTPSHandler.__init__
    functionSourceFile: urllib2
    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: urllib.request.HTTPSHandler.__init__
    functionSourceFile: urllib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1525
    functionName: pip._vendor.distlib.util.HTTPSHandler._conn_maker
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - httplib.HTTPSConnection.__init__
    - http.client.HTTPSConnection.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: httplib.HTTPSConnection.__init__
    functionSourceFile: ''
    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: http.client.HTTPSConnection.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1541
    functionName: pip._vendor.distlib.util.HTTPSHandler.https_open
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - urllib2.HTTPSHandler.do_open
    - <builtin>.str
    linkageType: pythonLinkage
    raised:
    - CertificateError
    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: urllib2.HTTPSHandler.do_open
    functionSourceFile: urllib2
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1563
    functionName: pip._vendor.distlib.util.HTTPSOnlyHandler.http_open
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - URLError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d93099d0>
    argNames:
    - self
    - timeout
    - use_datetime
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1574
    functionName: pip._vendor.distlib.util.Transport.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 4
    functionsReached:
    - xmlrpc.client.Transport.__init__
    - xmlrpclib.Transport.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xmlrpc.client.Transport.__init__
    functionSourceFile: xmlrpc
    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: xmlrpclib.Transport.__init__
    functionSourceFile: xmlrpclib
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - host
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1578
    functionName: pip._vendor.distlib.util.Transport.make_connection
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - http.client.HTTPConnection
    - xmlrpc.client.Transport.get_host_info
    - httplib.HTTPConnection
    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: xmlrpc.client.Transport.get_host_info
    functionSourceFile: xmlrpc
    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: http.client.HTTPConnection
    functionSourceFile: http
    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: httplib.HTTPConnection
    functionSourceFile: httplib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d931a670>
    argNames:
    - self
    - timeout
    - use_datetime
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1590
    functionName: pip._vendor.distlib.util.SafeTransport.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 4
    functionsReached:
    - xmlrpc.client.SafeTransport.__init__
    - xmlrpclib.SafeTransport.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xmlrpc.client.SafeTransport.__init__
    functionSourceFile: xmlrpc
    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: xmlrpclib.SafeTransport.__init__
    functionSourceFile: xmlrpclib
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - host
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1594
    functionName: pip._vendor.distlib.util.SafeTransport.make_connection
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - httplib.HTTPSConnection
    - http.client.HTTPSConnection
    - xmlrpc.client.SafeTransport.get_host_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xmlrpc.client.SafeTransport.get_host_info
    functionSourceFile: xmlrpc
    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: httplib.HTTPSConnection
    functionSourceFile: httplib
    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: http.client.HTTPSConnection
    functionSourceFile: http
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - uri
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1608
    functionName: pip._vendor.distlib.util.ServerProxy.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 3
    functionsReached:
    - xmlrpc.client.ServerProxy.__init__
    - xmlrpclib.Transport.__init__
    - xmlrpc.client.Transport.__init__
    - xmlrpc.client.SafeTransport.__init__
    - kwargs.get
    - urlparse.urlparse
    - xmlrpclib.SafeTransport.__init__
    - pip._vendor.distlib.util.Transport.__init__
    - pip._vendor.distlib.util.SafeTransport.__init__
    - xmlrpclib.ServerProxy.__init__
    - urllib.parse.urlparse
    - kwargs.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xmlrpclib.ServerProxy.__init__
    functionSourceFile: xmlrpclib
    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: xmlrpc.client.ServerProxy.__init__
    functionSourceFile: xmlrpc
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - fn
    - mode
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1631
    functionName: pip._vendor.distlib.util._csv_open
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 14
    functionsReached:
    - <builtin>.open
    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: pip._vendor.distlib.util.CSVBase
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1649
    functionName: pip._vendor.distlib.util.CSVBase.__enter__
    functionSourceFile: pip._vendor.distlib.util
    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
    - exc_info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1652
    functionName: pip._vendor.distlib.util.CSVBase.__exit__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1658
    functionName: pip._vendor.distlib.util.CSVReader.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 7
    functionsReached:
    - <builtin>.open
    - csv.reader
    - pip._vendor.distlib.util._csv_open
    - codecs.getreader
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1669
    functionName: pip._vendor.distlib.util.CSVReader.__iter__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1672
    functionName: pip._vendor.distlib.util.CSVReader.next
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - item.decode
    - <builtin>.isinstance
    - pip._vendor.distlib.util.CSVReader.next
    - <builtin>.enumerate
    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: item.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - fn
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1685
    functionName: pip._vendor.distlib.util.CSVWriter.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 6
    functionsReached:
    - <builtin>.open
    - csv.writer
    - pip._vendor.distlib.util._csv_open
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - row
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1689
    functionName: pip._vendor.distlib.util.CSVWriter.writerow
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - r.append
    - item.encode
    - <builtin>.isinstance
    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: item.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.util.Configurator
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d92ee280>
    argNames:
    - self
    - config
    - base
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1710
    functionName: pip._vendor.distlib.util.Configurator.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - os.getcwd
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - config
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1714
    functionName: pip._vendor.distlib.util.Configurator.configure_custom
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 2
    functionsReached:
    - s.split
    - <builtin>.isinstance
    - pip._vendor.distlib.util.Configurator.configure_custom
    - config.pop
    - <builtin>.dict
    - logging.config.BaseConfigurator.importer
    - props.items
    - <builtin>.tuple
    - pip._vendor.distlib.compat.BaseConfigurator.convert
    - pip._vendor.distlib.compat.BaseConfigurator.resolve
    - logging.config.BaseConfigurator.CONVERT_PATTERN.match
    - logging.config.BaseConfigurator.value_converters.get
    - pip._vendor.distlib.util.Configurator.configure_custom.convert
    - name.pop
    - m.groupdict
    - <builtin>.setattr
    - <builtin>.callable
    - <builtin>.getattr
    - <builtin>.ValueError
    - sys.exc_info
    - logging.config.valid_ident
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - o
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1716
    functionName: pip._vendor.distlib.util.Configurator.configure_custom.convert
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 2
    functionsReached:
    - s.split
    - <builtin>.isinstance
    - pip._vendor.distlib.util.Configurator.configure_custom
    - config.pop
    - <builtin>.dict
    - logging.config.BaseConfigurator.importer
    - props.items
    - <builtin>.tuple
    - pip._vendor.distlib.compat.BaseConfigurator.convert
    - pip._vendor.distlib.compat.BaseConfigurator.resolve
    - logging.config.BaseConfigurator.CONVERT_PATTERN.match
    - logging.config.BaseConfigurator.value_converters.get
    - pip._vendor.distlib.util.Configurator.configure_custom.convert
    - name.pop
    - m.groupdict
    - <builtin>.setattr
    - <builtin>.callable
    - <builtin>.getattr
    - <builtin>.ValueError
    - sys.exc_info
    - logging.config.valid_ident
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1091
    functionName: pip._vendor.distlib.compat.BaseConfigurator.convert
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - m.groupdict
    - <builtin>.getattr
    - logging.config.BaseConfigurator.CONVERT_PATTERN.match
    - logging.config.BaseConfigurator.value_converters.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config.pop
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1029
    functionName: pip._vendor.distlib.compat.BaseConfigurator.resolve
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 3
    functionsReached:
    - s.split
    - name.pop
    - <builtin>.getattr
    - <builtin>.ValueError
    - sys.exc_info
    - logging.config.BaseConfigurator.importer
    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.config.valid_ident
    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: props.items
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1746
    functionName: pip._vendor.distlib.util.Configurator.__getitem__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - s.split
    - <builtin>.isinstance
    - pip._vendor.distlib.util.Configurator.configure_custom
    - config.pop
    - <builtin>.dict
    - logging.config.BaseConfigurator.importer
    - props.items
    - <builtin>.tuple
    - pip._vendor.distlib.compat.BaseConfigurator.convert
    - pip._vendor.distlib.compat.BaseConfigurator.resolve
    - logging.config.BaseConfigurator.CONVERT_PATTERN.match
    - logging.config.BaseConfigurator.value_converters.get
    - pip._vendor.distlib.util.Configurator.configure_custom.convert
    - name.pop
    - m.groupdict
    - <builtin>.setattr
    - <builtin>.callable
    - <builtin>.getattr
    - <builtin>.ValueError
    - sys.exc_info
    - logging.config.valid_ident
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1752
    functionName: pip._vendor.distlib.util.Configurator.inc_convert
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - json.load
    - codecs.open
    - os.path.join
    - os.path.isabs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1ba7520>
    - <ast.Constant object at 0x7f30f1ba7550>
    argNames:
    - self
    - verbose
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1766
    functionName: pip._vendor.distlib.util.SubprocessMixin.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - stream
    - context
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1770
    functionName: pip._vendor.distlib.util.SubprocessMixin.reader
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - sys.stderr.write
    - sys.stderr.flush
    - s.decode
    - stream.close
    - stream.readline
    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.stderr.flush
    functionSourceFile: sys
    functionUses: 11
    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: stream.close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - cmd
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1791
    functionName: pip._vendor.distlib.util.SubprocessMixin.run_command
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 0
    functionsReached:
    - t1.start
    - sys.stderr.write
    - p.wait
    - t1.join
    - threading.Thread
    - t2.join
    - t2.start
    - subprocess.Popen
    - dummy_threading.Thread
    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: threading.Thread
    functionSourceFile: threading
    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: dummy_threading.Thread
    functionSourceFile: dummy_threading
    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: t1.start
    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: t2.start
    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: p.wait
    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: t1.join
    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: t2.join
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1810
    functionName: pip._vendor.distlib.util.normalize_name
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 6
    functionsReached:
    - re.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1bbac10>
    - <ast.Constant object at 0x7f30f1bbac40>
    argNames:
    - self
    - fn
    - url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1832
    functionName: pip._vendor.distlib.util.PyPIRCFile.__init__
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 5
    functionsReached:
    - os.path.expanduser
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1838
    functionName: pip._vendor.distlib.util.PyPIRCFile.read
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 3
    functionsReached:
    - index_servers.split
    - server.strip
    - config.sections
    - os.path.exists
    - ConfigParser.RawConfigParser
    - config.get
    - configparser.RawConfigParser
    - config.read
    - config.has_option
    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: ConfigParser.RawConfigParser
    functionSourceFile: ConfigParser
    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: config.sections
    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: config.get
    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: server.strip
    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: index_servers.split
    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: config.has_option
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - username
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1898
    functionName: pip._vendor.distlib.util.PyPIRCFile.update
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 2
    functionsReached:
    - configparser.RawConfigParser
    - config.add_section
    - config.has_section
    - <builtin>.open
    - ConfigParser.RawConfigParser
    - config.set
    - config.read
    - config.write
    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: config.has_section
    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: config.add_section
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - index
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1911
    functionName: pip._vendor.distlib.util._load_pypirc
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 2
    functionsReached:
    - index_servers.split
    - server.strip
    - config.sections
    - config.read
    - os.path.exists
    - ConfigParser.RawConfigParser
    - pip._vendor.distlib.util.PyPIRCFile.__init__
    - pip._vendor.distlib.util.PyPIRCFile.read
    - os.path.join
    - configparser.RawConfigParser
    - config.get
    - os.path.expanduser
    - config.has_option
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - index
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1918
    functionName: pip._vendor.distlib.util._store_pypirc
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 1
    functionsReached:
    - config.add_section
    - config.read
    - ConfigParser.RawConfigParser
    - config.has_section
    - pip._vendor.distlib.util.PyPIRCFile.update
    - <builtin>.open
    - pip._vendor.distlib.util.PyPIRCFile.__init__
    - os.path.join
    - configparser.RawConfigParser
    - config.set
    - os.path.expanduser
    - config.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 1
    IfCount: 13
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1928
    functionName: pip._vendor.distlib.util.get_host_platform
    functionSourceFile: pip._vendor.distlib.util
    functionUses: 11
    functionsReached:
    - <builtin>.int
    - <builtin>.hasattr
    - machine.replace
    - _osx_support.get_platform_osx
    - rel_re.match
    - distutils.sysconfig.get_config_vars
    - _aix_support.aix_platform
    - m.group
    - re.compile
    - sysconfig.get_config_vars
    - os.uname
    - osname.lower
    - sys.version.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.version.lower
    functionSourceFile: sys
    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: osname.lower
    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: machine.replace
    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: _aix_support.aix_platform
    functionSourceFile: _aix_support
    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: rel_re.match
    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: distutils.sysconfig.get_config_vars
    functionSourceFile: distutils
    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: sysconfig.get_config_vars
    functionSourceFile: sysconfig
    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: _osx_support.get_platform_osx
    functionSourceFile: _osx_support
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.compat
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - sys.getfilesystemencoding
    - HTMLParser.HTMLParser
    - re.compile
    - html.parser.HTMLParser
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 30
    functionName: pip._vendor.distlib.compat.quote
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - types.SimpleNamespace.name.encode
    - <builtin>.isinstance
    - urllib.quote
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: types.SimpleNamespace.name.encode
    functionSourceFile: types
    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: urllib.quote
    functionSourceFile: urllib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36c4040>
    argNames:
    - dn
    - hostname
    - max_wildcards
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 96
    functionName: pip._vendor.distlib.compat._dnsname_match
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 1
    functionsReached:
    - leftmost.count
    - pats.append
    - pat.match
    - hostname.startswith
    - re.compile
    - re.escape
    - leftmost.startswith
    - hostname.lower
    - dn.split
    - dn.lower
    linkageType: pythonLinkage
    raised:
    - CertificateError
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 3
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - cert
    - hostname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 145
    functionName: pip._vendor.distlib.compat.match_hostname
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - leftmost.count
    - pats.append
    - pat.match
    - cert.get
    - <builtin>.len
    - hostname.startswith
    - re.compile
    - re.escape
    - leftmost.startswith
    - dnsnames.append
    - hostname.lower
    - pip._vendor.distlib.compat._dnsname_match
    - dn.split
    - dn.lower
    linkageType: pythonLinkage
    raised:
    - ValueError
    - CertificateError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 197
    functionName: pip._vendor.distlib.compat.Container.__init__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - types.SimpleNamespace.__dict__.update
    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: types.SimpleNamespace.__dict__.update
    functionSourceFile: types
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 3
    IfCount: 9
    argCount: 3
    argDefaultValues:
    - <ast.BinOp object at 0x7f30fa5b94f0>
    - <ast.Constant object at 0x7f30fa5b9520>
    argNames:
    - cmd
    - mode
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 205
    functionName: pip._vendor.distlib.compat.which
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - path.insert
    - <builtin>.any
    - pip._vendor.distlib.compat.which._access_check
    - ext.lower
    - os.path.normcase
    - os.path.exists
    - seen.add
    - os.access
    - os.path.dirname
    - <builtin>.set
    - os.path.join
    - os.path.isdir
    - path.split
    - cmd.lower
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - fn
    - mode
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 219
    functionName: pip._vendor.distlib.compat.which._access_check
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 1
    functionsReached:
    - os.path.exists
    - os.access
    - os.path.isdir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.insert
    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: cmd.lower
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - base
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 280
    functionName: pip._vendor.distlib.compat.ZipExtFile.__init__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 1
    functionsReached:
    - zipfile.ZipExtFile.__dict__.update
    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: zipfile.ZipExtFile.__dict__.update
    functionSourceFile: zipfile
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 283
    functionName: pip._vendor.distlib.compat.ZipExtFile.__enter__
    functionSourceFile: pip._vendor.distlib.compat
    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
    - exc_info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 286
    functionName: pip._vendor.distlib.compat.ZipExtFile.__exit__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - zipfile.ZipExtFile.close
    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: zipfile.ZipExtFile.close
    functionSourceFile: zipfile
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 292
    functionName: pip._vendor.distlib.compat.ZipFile.__enter__
    functionSourceFile: pip._vendor.distlib.compat
    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
    - exc_info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 295
    functionName: pip._vendor.distlib.compat.ZipFile.__exit__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - zipfile.ZipFile.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 299
    functionName: pip._vendor.distlib.compat.ZipFile.open
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - zipfile.ZipExtFile.__dict__.update
    - zipfile.ZipFile.open
    - pip._vendor.distlib.compat.ZipExtFile.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: zipfile.ZipFile.open
    functionSourceFile: zipfile
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 308
    functionName: pip._vendor.distlib.compat.python_implementation
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - sys.version.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.version.startswith
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 326
    functionName: pip._vendor.distlib.compat.callable
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 346
    functionName: pip._vendor.distlib.compat.fsencode
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - filename.encode
    - <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: filename.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 355
    functionName: pip._vendor.distlib.compat.fsdecode
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - sys.executable.decode
    - <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: sys.executable.decode
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - orig_enc
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 372
    functionName: pip._vendor.distlib.compat._get_normal_name
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 2
    functionsReached:
    - enc.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: enc.startswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - readline
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 383
    functionName: pip._vendor.distlib.compat.detect_encoding
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.compat.detect_encoding.read_or_stop
    - codecs.lookup
    - cookie_re.findall
    - line.decode
    - enc.startswith
    - pip._vendor.distlib.compat._get_normal_name
    - pip._vendor.distlib.compat.detect_encoding.find_cookie
    - first.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 408
    functionName: pip._vendor.distlib.compat.detect_encoding.read_or_stop
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 414
    functionName: pip._vendor.distlib.compat.detect_encoding.find_cookie
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 1
    functionsReached:
    - codecs.lookup
    - cookie_re.findall
    - line.decode
    - enc.startswith
    - pip._vendor.distlib.compat._get_normal_name
    linkageType: pythonLinkage
    raised:
    - SyntaxError
    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.decode
    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: cookie_re.findall
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: first.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: HTMLParser.HTMLParser
    functionSourceFile: HTMLParser
    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: html.parser.HTMLParser
    functionSourceFile: html
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30e318f6a0>
    argNames:
    - fillvalue
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 495
    functionName: pip._vendor.distlib.compat._recursive_repr
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - user_function
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 501
    functionName: pip._vendor.distlib.compat._recursive_repr.decorating_function
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 1
    functionsReached:
    - <builtin>.set
    - <builtin>.getattr
    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: 1
    functionLinenumber: 504
    functionName: pip._vendor.distlib.compat._recursive_repr.decorating_function.wrapper
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - repr_running.add
    - repr_running.discard
    - <builtin>.id
    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: repr_running.add
    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: repr_running.discard
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - maps
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 538
    functionName: pip._vendor.distlib.compat.ChainMap.__init__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 545
    functionName: pip._vendor.distlib.compat.ChainMap.__missing__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 548
    functionName: pip._vendor.distlib.compat.ChainMap.__getitem__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - collections.ChainMap.__missing__
    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.ChainMap.__missing__
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd3ebb20>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 558
    functionName: pip._vendor.distlib.compat.ChainMap.get
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 561
    functionName: pip._vendor.distlib.compat.ChainMap.__len__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 565
    functionName: pip._vendor.distlib.compat.ChainMap.__iter__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 568
    functionName: pip._vendor.distlib.compat.ChainMap.__contains__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 571
    functionName: pip._vendor.distlib.compat.ChainMap.__bool__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: reprlib.recursive_repr
    functionSourceFile: reprlib
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.distlib.compat.ChainMap
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - pip._vendor.distlib.compat._recursive_repr.decorating_function
    - <builtin>.getattr
    - reprlib.recursive_repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 575
    functionName: pip._vendor.distlib.compat.ChainMap.__repr__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - iterable
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 580
    functionName: pip._vendor.distlib.compat.ChainMap.fromkeys
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - collections.ChainMap
    - dict.fromkeys
    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.ChainMap
    functionSourceFile: collections
    functionUses: 1
    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: 584
    functionName: pip._vendor.distlib.compat.ChainMap.copy
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - collections.ChainMap.__class__
    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.ChainMap.__class__
    functionSourceFile: collections
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 590
    functionName: pip._vendor.distlib.compat.ChainMap.new_child
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - collections.ChainMap.__class__
    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: 595
    functionName: pip._vendor.distlib.compat.ChainMap.parents
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - collections.ChainMap.__class__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 599
    functionName: pip._vendor.distlib.compat.ChainMap.__setitem__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 602
    functionName: pip._vendor.distlib.compat.ChainMap.__delitem__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    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: 609
    functionName: pip._vendor.distlib.compat.ChainMap.popitem
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 616
    functionName: pip._vendor.distlib.compat.ChainMap.pop
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 624
    functionName: pip._vendor.distlib.compat.ChainMap.clear
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd3f7790>
    argNames:
    - path
    - debug_override
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 633
    functionName: pip._vendor.distlib.compat.cache_from_source
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - path.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 673
    functionName: pip._vendor.distlib.compat.OrderedDict.__init__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - collections.OrderedDict.__update
    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: collections.OrderedDict.__update
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Attribute object at 0x7f30fd3fa100>
    argNames:
    - self
    - key
    - value
    - dict_setitem
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 690
    functionName: pip._vendor.distlib.compat.OrderedDict.__setitem__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7f30fd3fd850>
    argNames:
    - self
    - key
    - dict_delitem
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 700
    functionName: pip._vendor.distlib.compat.OrderedDict.__delitem__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - collections.OrderedDict.__map.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.OrderedDict.__map.pop
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 709
    functionName: pip._vendor.distlib.compat.OrderedDict.__iter__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 717
    functionName: pip._vendor.distlib.compat.OrderedDict.__reversed__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 725
    functionName: pip._vendor.distlib.compat.OrderedDict.clear
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - dict.clear
    - collections.OrderedDict.__map.clear
    - collections.OrderedDict.__map.itervalues
    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.__map.itervalues
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.OrderedDict.__map.clear
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dict.clear
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd403cd0>
    argNames:
    - self
    - last
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 737
    functionName: pip._vendor.distlib.compat.OrderedDict.popitem
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - dict.pop
    linkageType: pythonLinkage
    raised:
    - KeyError
    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: dict.pop
    functionSourceFile: <builtin>
    functionUses: 2
    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: 762
    functionName: pip._vendor.distlib.compat.OrderedDict.keys
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.list
    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: 766
    functionName: pip._vendor.distlib.compat.OrderedDict.values
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 770
    functionName: pip._vendor.distlib.compat.OrderedDict.items
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 774
    functionName: pip._vendor.distlib.compat.OrderedDict.iterkeys
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 778
    functionName: pip._vendor.distlib.compat.OrderedDict.itervalues
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 783
    functionName: pip._vendor.distlib.compat.OrderedDict.iteritems
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwds
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 788
    functionName: pip._vendor.distlib.compat.OrderedDict.update
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - other.keys
    - kwds.items
    - <builtin>.hasattr
    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: other.keys
    functionSourceFile: <builtin>
    functionUses: 32
    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: kwds.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.compat.OrderedDict
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.object
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30fd4156d0>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 823
    functionName: pip._vendor.distlib.compat.OrderedDict.pop
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd427f70>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 836
    functionName: pip._vendor.distlib.compat.OrderedDict.setdefault
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd427ac0>
    argNames:
    - self
    - _repr_running
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 843
    functionName: pip._vendor.distlib.compat.OrderedDict.__repr__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - dummy_thread.get_ident
    - <builtin>.id
    - thread.get_ident
    - collections.OrderedDict.items
    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: dummy_thread.get_ident
    functionSourceFile: dummy_thread
    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: thread.get_ident
    functionSourceFile: thread
    functionUses: 1
    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: 1
    functionLinenumber: 858
    functionName: pip._vendor.distlib.compat.OrderedDict.__reduce__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.vars
    - collections.OrderedDict
    - inst_dict.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inst_dict.pop
    functionSourceFile: <builtin>
    functionUses: 1
    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: 868
    functionName: pip._vendor.distlib.compat.OrderedDict.copy
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - collections.OrderedDict.__class__
    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.__class__
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd4231c0>
    argNames:
    - cls
    - iterable
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 873
    functionName: pip._vendor.distlib.compat.OrderedDict.fromkeys
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - collections.OrderedDict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 883
    functionName: pip._vendor.distlib.compat.OrderedDict.__eq__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - dict.__eq__
    - other.items
    - collections.OrderedDict.items
    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: dict.__eq__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 893
    functionName: pip._vendor.distlib.compat.OrderedDict.__ne__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 898
    functionName: pip._vendor.distlib.compat.OrderedDict.viewkeys
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - _abcoll.KeysView
    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: _abcoll.KeysView
    functionSourceFile: _abcoll
    functionUses: 1
    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: 902
    functionName: pip._vendor.distlib.compat.OrderedDict.viewvalues
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - _abcoll.ValuesView
    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: _abcoll.ValuesView
    functionSourceFile: _abcoll
    functionUses: 1
    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: 906
    functionName: pip._vendor.distlib.compat.OrderedDict.viewitems
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - _abcoll.ItemsView
    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: _abcoll.ItemsView
    functionSourceFile: _abcoll
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 916
    functionName: pip._vendor.distlib.compat.valid_ident
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - IDENTIFIER.match
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 934
    functionName: pip._vendor.distlib.compat.ConvertingDict.__getitem__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - logging.config.BaseConfigurator.convert
    - dict.__getitem__
    - <builtin>.type
    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: dict.__getitem__
    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: logging.config.BaseConfigurator.convert
    functionSourceFile: logging
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ded5dcd0>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 946
    functionName: pip._vendor.distlib.compat.ConvertingDict.get
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - logging.config.BaseConfigurator.convert
    - dict.get
    - <builtin>.type
    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: dict.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ded5d370>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 958
    functionName: pip._vendor.distlib.compat.pop
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - dict.pop
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 971
    functionName: pip._vendor.distlib.compat.ConvertingList.__getitem__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - logging.config.BaseConfigurator.convert
    - list.__getitem__
    - <builtin>.type
    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: list.__getitem__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7f30ded3b130>
    argNames:
    - self
    - idx
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 983
    functionName: pip._vendor.distlib.compat.ConvertingList.pop
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - logging.config.BaseConfigurator.convert
    - list.pop
    - <builtin>.type
    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: list.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 995
    functionName: pip._vendor.distlib.compat.ConvertingTuple.__getitem__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - logging.config.BaseConfigurator.convert
    - tuple.__getitem__
    - <builtin>.type
    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: tuple.__getitem__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.compat.BaseConfigurator
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - config
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1025
    functionName: pip._vendor.distlib.compat.BaseConfigurator.__init__
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.pop
    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.config.BaseConfigurator.importer
    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: <builtin>.ValueError
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1052
    functionName: pip._vendor.distlib.compat.BaseConfigurator.ext_convert
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - logging.config.BaseConfigurator.resolve
    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.config.BaseConfigurator.resolve
    functionSourceFile: logging
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1056
    functionName: pip._vendor.distlib.compat.BaseConfigurator.cfg_convert
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - logging.config.BaseConfigurator.DOT_PATTERN.match
    - <builtin>.int
    - m.end
    - m.groups
    - logging.config.BaseConfigurator.WORD_PATTERN.match
    - logging.config.BaseConfigurator.INDEX_PATTERN.match
    - logging.config.BaseConfigurator.DIGIT_PATTERN.match
    linkageType: pythonLinkage
    raised:
    - ValueError
    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.config.BaseConfigurator.WORD_PATTERN.match
    functionSourceFile: logging
    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: logging.config.BaseConfigurator.DOT_PATTERN.match
    functionSourceFile: logging
    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: logging.config.BaseConfigurator.INDEX_PATTERN.match
    functionSourceFile: logging
    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: logging.config.BaseConfigurator.DIGIT_PATTERN.match
    functionSourceFile: logging
    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: logging.config.BaseConfigurator.CONVERT_PATTERN.match
    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: logging.config.BaseConfigurator.value_converters.get
    functionSourceFile: logging
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - config
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1120
    functionName: pip._vendor.distlib.compat.BaseConfigurator.configure_custom
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - logging.config.BaseConfigurator.resolve
    - <builtin>.isinstance
    - props.items
    - <builtin>.setattr
    - pip._vendor.distlib.compat.callable
    - config.pop
    - <builtin>.dict
    - logging.config.valid_ident
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1134
    functionName: pip._vendor.distlib.compat.BaseConfigurator.as_tuple
    functionSourceFile: pip._vendor.distlib.compat
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib
    functionSourceFile: pip._vendor.distlib
    functionUses: 0
    functionsReached:
    - logger.addHandler
    - logging.getLogger
    - logging.NullHandler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 22
    functionName: pip._vendor.distlib.NullHandler.handle
    functionSourceFile: pip._vendor.distlib
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 25
    functionName: pip._vendor.distlib.NullHandler.emit
    functionSourceFile: pip._vendor.distlib
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 28
    functionName: pip._vendor.distlib.NullHandler.createLock
    functionSourceFile: pip._vendor.distlib
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.operations.build.metadata_legacy
    functionSourceFile: pip._internal.operations.build.metadata_legacy
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - directory
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 21
    functionName: pip._internal.operations.build.metadata_legacy._find_egg_info
    functionSourceFile: pip._internal.operations.build.metadata_legacy
    functionUses: 2
    functionsReached:
    - f.endswith
    - <builtin>.len
    - os.listdir
    - os.path.join
    linkageType: pythonLinkage
    raised:
    - InstallationError
    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: pip._internal.operations.build
    functionSourceFile: pip._internal.operations.build
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._internal
    functionSourceFile: pip._internal
    functionUses: 0
    functionsReached:
    - logging.setLoggerClass
    - logging.addLevelName
    - pip._internal.utils._log.init_logging
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30e580a790>
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 10
    functionName: pip._internal.main
    functionSourceFile: pip._internal
    functionUses: 0
    functionsReached:
    - pip._internal.cli.main_parser.create_main_parser
    - pathlib.Path
    - typing.cast.Environment.default
    - difflib.get_close_matches
    - pip._internal.cli.main_parser.identify_python_interpreter
    - optparse.OptionGroup
    - optparse.OptionGroup.add_option
    - warnings.filterwarnings
    - pip._internal.metadata.get_default_environment
    - <builtin>.str
    - warnings.simplefilter
    - commands_dict.keys
    - sys.exit
    - pip._internal.metadata.select_backend
    - os.access
    - subprocess.run
    - os.path.basename
    - pip._internal.locations.base.get_major_minor_version
    - optparse.OptionParser.disable_interspersed_args
    - os.path.split
    - shutil.get_terminal_size
    - sys.stdout.write
    - pip._internal.cli.autocompletion.autocomplete
    - name.lower
    - pip._internal.utils.misc.get_pip_version
    - pip._internal.utils.deprecation.install_warning_logger
    - optparse.OptionParser.add_option_group
    - pip._internal.cli.main_parser.parse_command
    - source.is_dir
    - os.path.join
    - pip._internal.commands.create_command
    - opt.metavar.split
    - <builtin>.super
    - current.lower
    - os.path.isdir
    - os.path.abspath
    - pip._internal.build_env.get_runnable_pip
    - itertools.chain.from_iterable
    - importlib.import_module
    - pip._internal.cli.parser.ConfigOptionParser.__init__
    - msg.append
    - os.path.normcase
    - os.path.exists
    - pip._internal.configuration.Configuration.__init__
    - os.path.dirname
    - <builtin>.bool
    - pip._internal.utils.entrypoints._wrapper
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.cli.autocompletion.get_path_completion_type
    - opts.append
    - command.main
    - cmd_args.remove
    - x.startswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.utils.misc.get_prog
    - os.path.isfile
    - <builtin>.len
    - typing.cast
    - pip._internal.cli.parser.PrettyHelpFormatter.__init__
    - <builtin>.int
    - os.listdir
    - x.split
    - <builtin>.getattr
    - contextlib.suppress
    - dist.canonical_name.startswith
    - val.lower
    - k.startswith
    - logger.debug
    - pip._internal.cli.autocompletion.auto_complete_paths
    - env.iter_installed_distributions
    - pip._internal.commands.get_similar_commands
    - os.fsdecode
    - pip._internal.cli.cmdoptions.make_option_group
    - optparse.OptionParser.print_help
    - pip_cmd.extend
    - locale.setlocale
    - optparse.OptionParser.parse_args
    - pip._internal.utils.misc.strtobool
    - sys.stderr.write
    - current.startswith
    - commands_dict.items
    - <builtin>.print
    - pip._internal.cli.main.main
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.req.req_file
    functionSourceFile: pip._internal.req.req_file
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - re.compile
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30e93906a0>
    - <ast.Constant object at 0x7f30e9390670>
    argNames:
    - self
    - requirement
    - is_editable
    - comes_from
    - constraint
    - options
    - line_source
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 90
    functionName: pip._internal.req.req_file.ParsedRequirement.__init__
    functionSourceFile: pip._internal.req.req_file
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - filename
    - lineno
    - args
    - opts
    - constraint
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 108
    functionName: pip._internal.req.req_file.ParsedLine.__init__
    functionSourceFile: pip._internal.req.req_file
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - finder
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 391
    functionName: pip._internal.req.req_file.get_line_parser
    functionSourceFile: ''
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - session
    - line_parser
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 322
    functionName: pip._internal.req.req_file.RequirementsFileParser.__init__
    functionSourceFile: ''
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - filename
    - constraint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 330
    functionName: pip._internal.req.req_file.RequirementsFileParser.parse
    functionSourceFile: pip._internal.req.req_file
    functionUses: 8
    functionsReached:
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - parser.get_default_values
    - optparse.OptionParser
    - pip._vendor.requests.models.PreparedRequest.copy
    - <builtin>.dict
    - parser.parse_args
    - string_network.split
    - urllib.parse.urlparse.netloc.split
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - password.encode
    - output.pop
    - merged_setting.items
    - pip._internal.req.req_file.get_file_content
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - urllib.parse.urlparse._replace
    - scheme.lower
    - urllib.parse.quote
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.decode
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - urllib.request.getproxies.get
    - no_proxy.replace
    - ZONE_ID_RE.search
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - urllib.parse.quote.upper
    - <builtin>.chr
    - pip._vendor.requests.sessions.merge_setting
    - f.read
    - cookie.value.startswith
    - pip._vendor.requests.utils.set_environ
    - <builtin>.max
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - <builtin>.isinstance
    - validator.match
    - ENV_VAR_RE.findall
    - path.endswith
    - s.encode
    - collections.abc.MutableMapping.upper
    - pip._vendor.requests.cookies.merge_cookies
    - pip._internal.req.req_file.join_lines
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - args.append
    - urllib.parse.urljoin.lower
    - history.insert
    - request_hooks.get
    - pip._vendor.requests.hooks.dispatch_hook
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - <builtin>.hex
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - <builtin>.open
    - urllib.parse.unquote
    - result.groups
    - IPV4_RE.match
    - method.upper
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - authority.rpartition
    - kwargs.setdefault
    - pip._internal.network.utils.raise_for_status
    - copy.copy
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - hooks.items
    - pip._internal.req.req_file.RequirementsFileParser._parse_and_recurse
    - prefix.lower
    - http.cookiejar.Cookie
    - k.encode
    - collections.abc.MutableMapping.encode
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - pip._internal.req.req_file.build_parser
    - socket.inet_ntoa
    - SCHEME_RE.search
    - <builtin>.str
    - locale.getpreferredencoding
    - os.path.expanduser
    - pip._vendor.requests.utils._validate_header_part
    - key.upper
    - PERCENT_RE.subn
    - urllib.request.getproxies
    - collections.OrderedDict
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - urllib.parse.urlparse
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.requests.models.Request.__init__
    - data.startswith
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - pip._internal.req.req_file.preprocess
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.get_cookie_header
    - pip._vendor.requests.sessions.Session.get_adapter
    - pip._internal.req.req_file.get_line_parser.parse_line
    - <builtin>.iter
    - pip._internal.req.req_file.ignore_comments
    - pip._vendor.requests.utils.resolve_proxies
    - proxies.get
    - urllib.parse.urlencode.seek
    - v.encode
    - pip._vendor.requests.compat.MutableMapping.__init__
    - <builtin>.bool
    - line.replace
    - HTTPError.__init__
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - data.decode
    - new_line.append
    - hooks.get
    - <builtin>.any
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - pip._vendor.requests.utils.get_environ_proxies
    - urllib.request.proxy_bypass
    - urllib.parse.quote.seek
    - result.append
    - <builtin>.type
    - token.startswith
    - d.items
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - history.pop
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.auth._basic_auth_str
    - <builtin>.set
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - <builtin>.next
    - pip._internal.req.req_file.RequirementsFileParser._parse_file
    - zone_id.startswith
    - kwargs.get
    - new_proxies.setdefault
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - os.urandom
    - byte.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - urllib.parse.quote.tell
    - binascii.hexlify
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.parse.urljoin.seek
    - string_network.count
    - u_string.encode
    - os.path.basename
    - field.render_headers
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.quote.lstrip
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.urllib3.util.url.parse_url
    - <builtin>.enumerate
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - COMMENT_RE.match
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - path.startswith
    - output.insert
    - d.iteritems
    - new_jar.set_cookie
    - match.span
    - netrc.netrc.authenticators
    - os.path.dirname
    - urllib.parse.urlencode
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - <builtin>.range
    - socket.inet_aton
    - io.BytesIO.getvalue
    - pip._internal.req.req_file.expand_env_variables
    - send_kwargs.update
    - line.split
    - os.environ.get
    - shlex.split
    - http.cookiejar.CookieJar.set_policy
    - pip._internal.req.req_file.ParsedLine.__init__
    - pip._vendor.requests.cookies.MockRequest.__init__
    - net.split
    - ENCODING_RE.search
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - s.decode
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.check_header_validity
    - parser.add_option
    - uri_bytes.count
    - http.cookiejar.CookieJar.extract_cookies
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - collections.OrderedDict.values
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.getattr
    - pip._vendor.urllib3.filepost.iter_field_objects
    - http.cookiejar.CookieJar.__init__
    - data.split
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - urllib.parse.urlencode.fileno
    - output.append
    - COMMENT_RE.sub
    - urllib.parse.urljoin.upper
    - netrc.netrc
    - hist.append
    - line.endswith
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - os.getenv
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - sys.getdefaultencoding
    - boundary.decode
    - fp.read
    - collections.abc.MutableMapping.lower
    - pip._vendor.requests.utils.requote_uri
    - collections.namedtuple.__init__
    - cookie.value.replace
    - h.isalnum
    - urllib.parse.urlparse.hostname.endswith
    - urllib.parse.quote.split
    - urllib.parse.quote.encode
    - path.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - pip._internal.utils.encoding.auto_decode
    - collections.abc.MutableMapping.get
    - result.update
    - pip._vendor.requests.sessions.merge_hooks
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - pip._vendor.requests.sessions.Session.request
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - pip._vendor.urllib3.fields.guess_content_type
    - content.splitlines
    - <builtin>.hasattr
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - name.lower
    - pip._vendor.requests.utils.dotted_netmask
    - urllib.request.getproxies.items
    - encoded_component.extend
    - line.strip
    - urllib.parse.urljoin.split
    - DEFAULT_PORTS.get
    - os.path.join
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.idna.encode
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - urllib.parse.urlunparse
    - collections.OrderedDict.items
    - resp.reason.decode
    - os.path.exists
    - warnings.warn
    - base64.b64encode.strip
    - <builtin>.bytearray
    - field.decode
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - options.pop
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - os.fstat
    - resp.close
    - pip._vendor.requests.models.PreparedRequest.prepare
    - pip._vendor.requests.utils.unquote_unreserved
    - <builtin>.len
    - pip._vendor.requests.utils.rewind_body
    - pip._vendor.urllib3.packages.six.iteritems
    - json.dumps
    - pip._internal.req.req_file.break_args_options
    - collections.abc.MutableMapping.setdefault
    - time.perf_counter
    - <builtin>.ord
    - splitstr.decode
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._internal.utils.urls.get_url_scheme
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - urllib.parse.urlparse.geturl
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - url.split
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - merged_setting.update
    - pip._vendor.requests.sessions.Session.get
    - pip._vendor.urllib3.packages.six.raise_from
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - urllib.parse.urljoin.startswith
    - pip._vendor.requests.sessions.Session.send
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b871c0>
    - <ast.Constant object at 0x7f30d6b87dc0>
    - <ast.Constant object at 0x7f30d6b87880>
    argNames:
    - line
    - options
    - finder
    - session
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 277
    functionName: pip._internal.req.req_file.handle_line
    functionSourceFile: pip._internal.req.req_file
    functionUses: 8
    functionsReached:
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.network.session.PipSession.update_index_urls
    - pip._internal.req.req_file.handle_option_line
    - netloc.count
    - pip._vendor.requests.sessions.Session.mount
    - pip._internal.utils.misc.parse_netloc
    - os.path.join
    - pip._internal.req.req_file.handle_requirement_line
    - index_urls.extend
    - collections.OrderedDict.pop
    - <builtin>.len
    - find_links.append
    - finder.set_prefer_binary
    - pip._internal.utils.misc.build_url_from_netloc
    - os.path.abspath
    - finder.set_allow_all_prereleases
    - options.features_enabled.extend
    - os.path.exists
    - os.path.dirname
    - logger.info
    - pip._internal.req.req_file.ParsedRequirement.__init__
    - pip._internal.network.session.PipSession.add_trusted_host
    - urllib.parse.urlparse
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - content
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 161
    functionName: pip._internal.req.req_file.preprocess
    functionSourceFile: pip._internal.req.req_file
    functionUses: 11
    functionsReached:
    - pip._internal.req.req_file.join_lines
    - os.getenv
    - line.strip
    - pip._internal.req.req_file.ignore_comments
    - content.splitlines
    - <builtin>.enumerate
    - line.replace
    - line.endswith
    - new_line.append
    - COMMENT_RE.match
    - pip._internal.req.req_file.expand_env_variables
    - ENV_VAR_RE.findall
    - COMMENT_RE.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - lines_enum
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 460
    functionName: pip._internal.req.req_file.join_lines
    functionSourceFile: pip._internal.req.req_file
    functionUses: 12
    functionsReached:
    - line.endswith
    - COMMENT_RE.match
    - new_line.append
    - line.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - lines_enum
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 491
    functionName: pip._internal.req.req_file.ignore_comments
    functionSourceFile: pip._internal.req.req_file
    functionUses: 12
    functionsReached:
    - COMMENT_RE.sub
    - line.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - lines_enum
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 502
    functionName: pip._internal.req.req_file.expand_env_variables
    functionSourceFile: pip._internal.req.req_file
    functionUses: 12
    functionsReached:
    - ENV_VAR_RE.findall
    - line.replace
    - os.getenv
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b5c10>
    argNames:
    - line
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 173
    functionName: pip._internal.req.req_file.handle_requirement_line
    functionSourceFile: pip._internal.req.req_file
    functionUses: 9
    functionsReached:
    - pip._internal.req.req_file.ParsedRequirement.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 8
    IfCount: 14
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36c4490>
    - <ast.Constant object at 0x7f30e36c4fa0>
    - <ast.Constant object at 0x7f30e36c45e0>
    argNames:
    - opts
    - filename
    - lineno
    - finder
    - options
    - session
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 207
    functionName: pip._internal.req.req_file.handle_option_line
    functionSourceFile: pip._internal.req.req_file
    functionUses: 9
    functionsReached:
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.network.session.PipSession.update_index_urls
    - netloc.count
    - pip._vendor.requests.sessions.Session.mount
    - pip._internal.utils.misc.parse_netloc
    - os.path.join
    - index_urls.extend
    - collections.OrderedDict.pop
    - <builtin>.len
    - find_links.append
    - finder.set_prefer_binary
    - pip._internal.utils.misc.build_url_from_netloc
    - os.path.abspath
    - finder.set_allow_all_prereleases
    - options.features_enabled.extend
    - os.path.exists
    - os.path.dirname
    - logger.info
    - pip._internal.network.session.PipSession.add_trusted_host
    - urllib.parse.urlparse
    - logger.warning
    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: options.features_enabled.extend
    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: index_urls.extend
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: find_links.append
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: finder.set_allow_all_prereleases
    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: finder.set_prefer_binary
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - filename
    - constraint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 336
    functionName: pip._internal.req.req_file.RequirementsFileParser._parse_and_recurse
    functionSourceFile: pip._internal.req.req_file
    functionUses: 9
    functionsReached:
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - parser.get_default_values
    - optparse.OptionParser
    - pip._vendor.requests.models.PreparedRequest.copy
    - <builtin>.dict
    - parser.parse_args
    - string_network.split
    - urllib.parse.urlparse.netloc.split
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - password.encode
    - output.pop
    - merged_setting.items
    - pip._internal.req.req_file.get_file_content
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - scheme.lower
    - urllib.parse.urlparse._replace
    - urllib.parse.quote
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.decode
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - urllib.request.getproxies.get
    - no_proxy.replace
    - ZONE_ID_RE.search
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - urllib.parse.quote.upper
    - <builtin>.chr
    - pip._vendor.requests.sessions.merge_setting
    - f.read
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.max
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - <builtin>.isinstance
    - validator.match
    - ENV_VAR_RE.findall
    - path.endswith
    - s.encode
    - collections.abc.MutableMapping.upper
    - pip._vendor.requests.cookies.merge_cookies
    - pip._internal.req.req_file.join_lines
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - args.append
    - urllib.parse.urljoin.lower
    - request_hooks.get
    - history.insert
    - pip._vendor.requests.hooks.dispatch_hook
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - <builtin>.hex
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - <builtin>.open
    - urllib.parse.unquote
    - result.groups
    - IPV4_RE.match
    - method.upper
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - authority.rpartition
    - kwargs.setdefault
    - pip._internal.network.utils.raise_for_status
    - copy.copy
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - hooks.items
    - pip._internal.req.req_file.RequirementsFileParser._parse_and_recurse
    - prefix.lower
    - http.cookiejar.Cookie
    - k.encode
    - collections.abc.MutableMapping.encode
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - pip._internal.req.req_file.build_parser
    - socket.inet_ntoa
    - SCHEME_RE.search
    - <builtin>.str
    - locale.getpreferredencoding
    - os.path.expanduser
    - pip._vendor.requests.utils._validate_header_part
    - key.upper
    - PERCENT_RE.subn
    - urllib.request.getproxies
    - collections.OrderedDict
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - urllib.parse.urlparse
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.requests.models.Request.__init__
    - data.startswith
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - pip._internal.req.req_file.preprocess
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.get_cookie_header
    - pip._vendor.requests.sessions.Session.get_adapter
    - pip._internal.req.req_file.get_line_parser.parse_line
    - <builtin>.iter
    - pip._internal.req.req_file.ignore_comments
    - pip._vendor.requests.utils.resolve_proxies
    - proxies.get
    - urllib.parse.urlencode.seek
    - v.encode
    - pip._vendor.requests.compat.MutableMapping.__init__
    - <builtin>.bool
    - line.replace
    - HTTPError.__init__
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - data.decode
    - new_line.append
    - hooks.get
    - <builtin>.any
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - pip._vendor.requests.utils.get_environ_proxies
    - urllib.request.proxy_bypass
    - urllib.parse.quote.seek
    - result.append
    - <builtin>.type
    - token.startswith
    - d.items
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - history.pop
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.auth._basic_auth_str
    - <builtin>.set
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - <builtin>.next
    - pip._internal.req.req_file.RequirementsFileParser._parse_file
    - zone_id.startswith
    - kwargs.get
    - new_proxies.setdefault
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - os.urandom
    - byte.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - urllib.parse.quote.tell
    - binascii.hexlify
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.parse.urljoin.seek
    - string_network.count
    - u_string.encode
    - os.path.basename
    - field.render_headers
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.quote.lstrip
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.urllib3.util.url.parse_url
    - <builtin>.enumerate
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - COMMENT_RE.match
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - path.startswith
    - output.insert
    - d.iteritems
    - new_jar.set_cookie
    - netrc.netrc.authenticators
    - match.span
    - urllib.parse.urlencode
    - os.path.dirname
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - <builtin>.range
    - socket.inet_aton
    - io.BytesIO.getvalue
    - pip._internal.req.req_file.expand_env_variables
    - send_kwargs.update
    - os.environ.get
    - line.split
    - shlex.split
    - http.cookiejar.CookieJar.set_policy
    - pip._internal.req.req_file.ParsedLine.__init__
    - pip._vendor.requests.cookies.MockRequest.__init__
    - net.split
    - ENCODING_RE.search
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - s.decode
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.check_header_validity
    - parser.add_option
    - uri_bytes.count
    - http.cookiejar.CookieJar.extract_cookies
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - collections.OrderedDict.values
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.getattr
    - pip._vendor.urllib3.filepost.iter_field_objects
    - http.cookiejar.CookieJar.__init__
    - data.split
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - urllib.parse.urlencode.fileno
    - output.append
    - COMMENT_RE.sub
    - urllib.parse.urljoin.upper
    - netrc.netrc
    - hist.append
    - line.endswith
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - os.getenv
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - sys.getdefaultencoding
    - boundary.decode
    - fp.read
    - collections.abc.MutableMapping.lower
    - pip._vendor.requests.utils.requote_uri
    - collections.namedtuple.__init__
    - cookie.value.replace
    - h.isalnum
    - urllib.parse.urlparse.hostname.endswith
    - urllib.parse.quote.split
    - urllib.parse.quote.encode
    - path.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - pip._internal.utils.encoding.auto_decode
    - collections.abc.MutableMapping.get
    - result.update
    - pip._vendor.requests.sessions.merge_hooks
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - pip._vendor.requests.sessions.Session.request
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.requests.utils.should_bypass_proxies
    - session_hooks.get
    - adapter.send
    - pip._vendor.urllib3.fields.guess_content_type
    - content.splitlines
    - <builtin>.hasattr
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - name.lower
    - pip._vendor.requests.utils.dotted_netmask
    - urllib.request.getproxies.items
    - encoded_component.extend
    - line.strip
    - urllib.parse.urljoin.split
    - DEFAULT_PORTS.get
    - os.path.join
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.idna.encode
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - urllib.parse.urlunparse
    - collections.OrderedDict.items
    - resp.reason.decode
    - os.path.exists
    - warnings.warn
    - base64.b64encode.strip
    - <builtin>.bytearray
    - field.decode
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - options.pop
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - os.fstat
    - resp.close
    - pip._vendor.requests.models.PreparedRequest.prepare
    - pip._vendor.requests.utils.unquote_unreserved
    - <builtin>.len
    - pip._vendor.requests.utils.rewind_body
    - pip._vendor.urllib3.packages.six.iteritems
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._internal.req.req_file.break_args_options
    - time.perf_counter
    - <builtin>.ord
    - splitstr.decode
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._internal.utils.urls.get_url_scheme
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - urllib.parse.urlparse.geturl
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - url.split
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - merged_setting.update
    - pip._vendor.requests.sessions.Session.get
    - pip._vendor.urllib3.packages.six.raise_from
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - urllib.parse.urljoin.startswith
    - pip._vendor.requests.sessions.Session.send
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - filename
    - constraint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 367
    functionName: pip._internal.req.req_file.RequirementsFileParser._parse_file
    functionSourceFile: pip._internal.req.req_file
    functionUses: 10
    functionsReached:
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - parser.get_default_values
    - optparse.OptionParser
    - pip._vendor.requests.models.PreparedRequest.copy
    - <builtin>.dict
    - parser.parse_args
    - string_network.split
    - urllib.parse.urlparse.netloc.split
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - password.encode
    - output.pop
    - merged_setting.items
    - pip._internal.req.req_file.get_file_content
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - urllib.parse.urlparse._replace
    - scheme.lower
    - urllib.parse.quote
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.decode
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - urllib.request.getproxies.get
    - no_proxy.replace
    - ZONE_ID_RE.search
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - urllib.parse.quote.upper
    - <builtin>.chr
    - pip._vendor.requests.sessions.merge_setting
    - pip._vendor.requests.utils.set_environ
    - f.read
    - cookie.value.startswith
    - <builtin>.max
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - <builtin>.isinstance
    - validator.match
    - ENV_VAR_RE.findall
    - path.endswith
    - s.encode
    - collections.abc.MutableMapping.upper
    - pip._vendor.requests.cookies.merge_cookies
    - pip._internal.req.req_file.join_lines
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - args.append
    - urllib.parse.urljoin.lower
    - history.insert
    - request_hooks.get
    - pip._vendor.requests.hooks.dispatch_hook
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - <builtin>.hex
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - <builtin>.open
    - urllib.parse.unquote
    - result.groups
    - IPV4_RE.match
    - method.upper
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - authority.rpartition
    - kwargs.setdefault
    - pip._internal.network.utils.raise_for_status
    - copy.copy
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - hooks.items
    - prefix.lower
    - http.cookiejar.Cookie
    - k.encode
    - collections.abc.MutableMapping.encode
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - pip._internal.req.req_file.build_parser
    - socket.inet_ntoa
    - SCHEME_RE.search
    - <builtin>.str
    - locale.getpreferredencoding
    - os.path.expanduser
    - pip._vendor.requests.utils._validate_header_part
    - key.upper
    - PERCENT_RE.subn
    - urllib.request.getproxies
    - collections.OrderedDict
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - urllib.parse.urlparse
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.requests.models.Request.__init__
    - data.startswith
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - pip._internal.req.req_file.preprocess
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.get_cookie_header
    - pip._vendor.requests.sessions.Session.get_adapter
    - pip._internal.req.req_file.get_line_parser.parse_line
    - <builtin>.iter
    - pip._internal.req.req_file.ignore_comments
    - pip._vendor.requests.utils.resolve_proxies
    - proxies.get
    - urllib.parse.urlencode.seek
    - v.encode
    - pip._vendor.requests.compat.MutableMapping.__init__
    - <builtin>.bool
    - line.replace
    - HTTPError.__init__
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - data.decode
    - new_line.append
    - hooks.get
    - <builtin>.any
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - pip._vendor.requests.utils.get_environ_proxies
    - urllib.request.proxy_bypass
    - urllib.parse.quote.seek
    - result.append
    - <builtin>.type
    - token.startswith
    - d.items
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - history.pop
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.auth._basic_auth_str
    - <builtin>.set
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - <builtin>.next
    - zone_id.startswith
    - kwargs.get
    - new_proxies.setdefault
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - os.urandom
    - byte.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - urllib.parse.quote.tell
    - binascii.hexlify
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.parse.urljoin.seek
    - string_network.count
    - u_string.encode
    - os.path.basename
    - field.render_headers
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.quote.lstrip
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.urllib3.util.url.parse_url
    - <builtin>.enumerate
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - COMMENT_RE.match
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - path.startswith
    - output.insert
    - d.iteritems
    - new_jar.set_cookie
    - match.span
    - netrc.netrc.authenticators
    - urllib.parse.urlencode
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - <builtin>.range
    - socket.inet_aton
    - io.BytesIO.getvalue
    - pip._internal.req.req_file.expand_env_variables
    - send_kwargs.update
    - line.split
    - os.environ.get
    - shlex.split
    - http.cookiejar.CookieJar.set_policy
    - pip._internal.req.req_file.ParsedLine.__init__
    - pip._vendor.requests.cookies.MockRequest.__init__
    - net.split
    - ENCODING_RE.search
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - s.decode
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.check_header_validity
    - parser.add_option
    - uri_bytes.count
    - http.cookiejar.CookieJar.extract_cookies
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - collections.OrderedDict.values
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.getattr
    - pip._vendor.urllib3.filepost.iter_field_objects
    - http.cookiejar.CookieJar.__init__
    - data.split
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - urllib.parse.urlencode.fileno
    - output.append
    - COMMENT_RE.sub
    - urllib.parse.urljoin.upper
    - netrc.netrc
    - hist.append
    - line.endswith
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - os.getenv
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - sys.getdefaultencoding
    - boundary.decode
    - fp.read
    - collections.abc.MutableMapping.lower
    - pip._vendor.requests.utils.requote_uri
    - collections.namedtuple.__init__
    - cookie.value.replace
    - h.isalnum
    - urllib.parse.urlparse.hostname.endswith
    - urllib.parse.quote.split
    - urllib.parse.quote.encode
    - path.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - pip._internal.utils.encoding.auto_decode
    - collections.abc.MutableMapping.get
    - result.update
    - pip._vendor.requests.sessions.merge_hooks
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - pip._vendor.requests.sessions.Session.request
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - pip._vendor.urllib3.fields.guess_content_type
    - content.splitlines
    - <builtin>.hasattr
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - name.lower
    - pip._vendor.requests.utils.dotted_netmask
    - urllib.request.getproxies.items
    - encoded_component.extend
    - line.strip
    - urllib.parse.urljoin.split
    - DEFAULT_PORTS.get
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.idna.encode
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - urllib.parse.urlunparse
    - collections.OrderedDict.items
    - resp.reason.decode
    - os.path.exists
    - warnings.warn
    - base64.b64encode.strip
    - <builtin>.bytearray
    - field.decode
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - options.pop
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - os.fstat
    - resp.close
    - pip._vendor.requests.models.PreparedRequest.prepare
    - pip._vendor.requests.utils.unquote_unreserved
    - <builtin>.len
    - pip._vendor.requests.utils.rewind_body
    - pip._vendor.urllib3.packages.six.iteritems
    - json.dumps
    - pip._internal.req.req_file.break_args_options
    - collections.abc.MutableMapping.setdefault
    - time.perf_counter
    - <builtin>.ord
    - splitstr.decode
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._internal.utils.urls.get_url_scheme
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - urllib.parse.urlparse.geturl
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - url.split
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - merged_setting.update
    - pip._vendor.requests.sessions.Session.get
    - pip._vendor.urllib3.packages.six.raise_from
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - urllib.parse.urljoin.startswith
    - pip._vendor.requests.sessions.Session.send
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - io.BytesIO
    linkageType: pythonLinkage
    raised:
    - RequirementsFileParseError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - session
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 529
    functionName: pip._internal.req.req_file.get_file_content
    functionSourceFile: pip._internal.req.req_file
    functionUses: 11
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - h.isalnum
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - path.split
    - socket.inet_ntoa
    - <builtin>.dict
    - urllib.parse.quote.split
    - urllib.parse.quote.startswith
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - SCHEME_RE.search
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - byte.decode
    - locale.getpreferredencoding
    - pip._internal.utils.encoding.auto_decode
    - collections.abc.MutableMapping.get
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - result.update
    - urllib.parse.quote.tell
    - password.encode
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - os.path.expanduser
    - pip._vendor.requests.sessions.merge_hooks
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - merged_setting.items
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - pip._vendor.requests.sessions.Session.request
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.request.getproxies
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - u_string.encode
    - string_network.count
    - urllib.parse.urlparse._replace
    - scheme.lower
    - os.path.basename
    - urllib.parse.urljoin.seek
    - collections.OrderedDict
    - pip._vendor.urllib3.fields.guess_content_type
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.pop
    - pip._vendor.urllib3.packages.six.b
    - urllib.parse.urljoin
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.startswith
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - collections.abc.MutableMapping.decode
    - <builtin>.hasattr
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - base64.b64encode
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._vendor.requests.utils.dotted_netmask
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.models.Request.__init__
    - data.startswith
    - urllib.request.getproxies.items
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - no_proxy.replace
    - encoded_component.extend
    - pip._vendor.urllib3.util.url.parse_url
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - ZONE_ID_RE.search
    - urllib.parse.urljoin.split
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - DEFAULT_PORTS.get
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - path.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - urllib.parse.urlunparse
    - output.insert
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - cookie.value.startswith
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - d.iteritems
    - resp.reason.decode
    - urllib.parse.quote.upper
    - match.span
    - netrc.netrc.authenticators
    - <builtin>.chr
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.requests.sessions.merge_setting
    - proxies.get
    - base64.b64encode.strip
    - f.read
    - pip._vendor.requests.utils.set_environ
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - field.decode
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - validator.match
    - v.encode
    - <builtin>.bool
    - socket.inet_aton
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - HTTPError.__init__
    - os.fstat
    - send_kwargs.update
    - os.environ.get
    - path.endswith
    - http.cookiejar.CookieJar.set_policy
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - pip._vendor.requests.cookies.MockRequest.__init__
    - net.split
    - data.decode
    - resp.close
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - ENCODING_RE.search
    - hooks.get
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - request_hooks.get
    - s.decode
    - urllib.parse.urljoin.lower
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - uri_bytes.count
    - <builtin>.ord
    - <builtin>.hex
    - http.cookiejar.CookieJar.extract_cookies
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - pip._vendor.requests.cookies.MockResponse.__init__
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - pip._vendor.urllib3.util.url._normalize_host
    - collections.OrderedDict.values
    - splitstr.decode
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - <builtin>.open
    - <builtin>.getattr
    - urllib.request.proxy_bypass
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - pip._internal.utils.urls.get_url_scheme
    - urllib.parse.unquote
    - <builtin>.type
    - data.split
    - result.groups
    - d.items
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - IPV4_RE.match
    - method.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - urllib.parse.urlparse.geturl
    - output.append
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - history.pop
    - netrc.netrc
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - kwargs.setdefault
    - url.split
    - pip._vendor.requests.auth._basic_auth_str
    - pip._internal.network.utils.raise_for_status
    - hist.append
    - copy.copy
    - resp.raw.read
    - <builtin>.set
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.sessions.Session.get
    - merged_setting.update
    - pip._vendor.urllib3.packages.six.raise_from
    - _HOST_PORT_RE.match
    - IPV6_ADDRZ_RE.match
    - urllib.parse.quote.decode
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - sys.getdefaultencoding
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - hooks.items
    - cookie.value.endswith
    - boundary.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - fp.read
    - collections.abc.MutableMapping.lower
    - <builtin>.next
    - urllib.parse.urljoin.startswith
    - zone_id.startswith
    - prefix.lower
    - http.cookiejar.Cookie
    - pip._vendor.requests.utils.requote_uri
    - kwargs.get
    - new_proxies.setdefault
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 392
    functionName: pip._internal.req.req_file.get_line_parser.parse_line
    functionSourceFile: pip._internal.req.req_file
    functionUses: 11
    functionsReached:
    - shlex.split
    - token.startswith
    - parser.add_option
    - options.pop
    - args.append
    - parser.parse_args
    - parser.get_default_values
    - optparse.OptionParser
    - pip._internal.req.req_file.build_parser
    - pip._internal.req.req_file.break_args_options
    - line.split
    linkageType: pythonLinkage
    raised:
    - OptionParsingError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 437
    functionName: pip._internal.req.req_file.build_parser
    functionSourceFile: pip._internal.req.req_file
    functionUses: 12
    functionsReached:
    - parser.add_option
    - optparse.OptionParser
    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.get_default_values
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 415
    functionName: pip._internal.req.req_file.break_args_options
    functionSourceFile: pip._internal.req.req_file
    functionUses: 12
    functionsReached:
    - token.startswith
    - args.append
    - options.pop
    - line.split
    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: shlex.split
    functionSourceFile: shlex
    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: token.startswith
    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: options.pop
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - msg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 433
    functionName: pip._internal.req.req_file.OptionParsingError.__init__
    functionSourceFile: pip._internal.req.req_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: optparse.OptionParser
    functionSourceFile: optparse
    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: parser.add_option
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - msg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 450
    functionName: pip._internal.req.req_file.build_parser.parser_exit
    functionSourceFile: pip._internal.req.req_file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - OptionParsingError
    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: COMMENT_RE.match
    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: new_line.append
    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: COMMENT_RE.sub
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ENV_VAR_RE.findall
    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: line.replace
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 20
    functionName: pip._internal.utils.encoding.auto_decode
    functionSourceFile: pip._internal.utils.encoding
    functionUses: 12
    functionsReached:
    - data.split
    - result.groups
    - sys.getdefaultencoding
    - data.decode
    - <builtin>.len
    - locale.getpreferredencoding
    - ENCODING_RE.search
    - data.startswith
    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: pip._internal.cli
    functionSourceFile: pip._internal.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.utils.encoding
    functionSourceFile: pip._internal.utils.encoding
    functionUses: 0
    functionsReached:
    - re.compile
    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: ENCODING_RE.search
    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: sys.getdefaultencoding
    functionSourceFile: sys
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: -1
    functionName: pip.__main__
    functionSourceFile: pip.__main__
    functionUses: 0
    functionsReached:
    - pip._internal.cli.main_parser.create_main_parser
    - pathlib.Path
    - typing.cast.Environment.default
    - difflib.get_close_matches
    - pip._internal.cli.main_parser.identify_python_interpreter
    - optparse.OptionGroup
    - sys.path.pop
    - optparse.OptionGroup.add_option
    - warnings.filterwarnings
    - pip._internal.metadata.get_default_environment
    - <builtin>.str
    - warnings.simplefilter
    - commands_dict.keys
    - sys.exit
    - pip._internal.metadata.select_backend
    - os.access
    - os.getcwd
    - subprocess.run
    - os.path.basename
    - pip._internal.locations.base.get_major_minor_version
    - optparse.OptionParser.disable_interspersed_args
    - os.path.split
    - shutil.get_terminal_size
    - sys.stdout.write
    - pip._internal.cli.autocompletion.autocomplete
    - sys.path.insert
    - name.lower
    - pip._internal.utils.misc.get_pip_version
    - pip._internal.utils.deprecation.install_warning_logger
    - optparse.OptionParser.add_option_group
    - pip._internal.cli.main_parser.parse_command
    - source.is_dir
    - os.path.join
    - pip._internal.commands.create_command
    - opt.metavar.split
    - <builtin>.super
    - current.lower
    - os.path.isdir
    - os.path.abspath
    - pip._internal.build_env.get_runnable_pip
    - itertools.chain.from_iterable
    - importlib.import_module
    - pip._internal.cli.parser.ConfigOptionParser.__init__
    - msg.append
    - os.path.normcase
    - os.path.exists
    - pip._internal.configuration.Configuration.__init__
    - os.path.dirname
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.cli.autocompletion.get_path_completion_type
    - opts.append
    - command.main
    - cmd_args.remove
    - x.startswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.utils.misc.get_prog
    - os.path.isfile
    - <builtin>.len
    - typing.cast
    - pip._internal.cli.parser.PrettyHelpFormatter.__init__
    - <builtin>.int
    - os.listdir
    - x.split
    - <builtin>.getattr
    - contextlib.suppress
    - dist.canonical_name.startswith
    - val.lower
    - k.startswith
    - logger.debug
    - pip._internal.cli.autocompletion.auto_complete_paths
    - env.iter_installed_distributions
    - pip._internal.commands.get_similar_commands
    - os.fsdecode
    - pip._internal.cli.cmdoptions.make_option_group
    - optparse.OptionParser.print_help
    - pip_cmd.extend
    - locale.setlocale
    - optparse.OptionParser.parse_args
    - pip._internal.utils.misc.strtobool
    - sys.stderr.write
    - current.startswith
    - commands_dict.items
    - <builtin>.print
    - pip._internal.cli.main.main
    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.path.pop
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip.__pip-runner__
    functionSourceFile: pip.__pip-runner__
    functionUses: 0
    functionsReached:
    - sys.meta_path.insert
    - os.path.dirname
    - runpy.run_module
    linkageType: pythonLinkage
    raised:
    - SystemExit
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 15
    functionName: pip.__pip-runner__.version_str
    functionSourceFile: pip.__pip-runner__
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9933160>
    - <ast.Constant object at 0x7f30f9933100>
    argNames:
    - self
    - fullname
    - path
    - target
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 38
    functionName: pip.__pip-runner__.PipImportRedirectingFinder.find_spec
    functionSourceFile: pip.__pip-runner__
    functionUses: 0
    functionsReached:
    - importlib.machinery.PathFinder.find_spec
    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: importlib.machinery.PathFinder.find_spec
    functionSourceFile: importlib
    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: sys.meta_path.insert
    functionSourceFile: sys
    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: runpy.run_module
    functionSourceFile: runpy
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.self_outdated_check
    functionSourceFile: pip._internal.self_outdated_check
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - datetime.timedelta
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - key
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: pip._internal.self_outdated_check._get_statefile_name
    functionSourceFile: pip._internal.self_outdated_check
    functionUses: 3
    functionsReached:
    - hashlib.sha224
    - key.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.encode
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - isodate
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: pip._internal.self_outdated_check._convert_date
    functionSourceFile: pip._internal.self_outdated_check
    functionUses: 4
    functionsReached:
    - datetime.datetime.fromisoformat
    - isodate.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: isodate.replace
    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: datetime.datetime.fromisoformat
    functionSourceFile: datetime
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cache_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 52
    functionName: pip._internal.self_outdated_check.SelfCheckState.__init__
    functionSourceFile: pip._internal.self_outdated_check
    functionUses: 2
    functionsReached:
    - json.load
    - pip._internal.self_outdated_check._get_statefile_name
    - <builtin>.open
    - hashlib.sha224
    - os.path.join
    - key.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 70
    functionName: pip._internal.self_outdated_check.SelfCheckState.key
    functionSourceFile: pip._internal.self_outdated_check
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - current_time
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 73
    functionName: pip._internal.self_outdated_check.SelfCheckState.get
    functionSourceFile: pip._internal.self_outdated_check
    functionUses: 3
    functionsReached:
    - datetime.datetime.fromisoformat
    - pip._internal.self_outdated_check._convert_date
    - isodate.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - pypi_version
    - current_time
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 92
    functionName: pip._internal.self_outdated_check.SelfCheckState.set
    functionSourceFile: pip._internal.self_outdated_check
    functionUses: 3
    functionsReached:
    - f.write
    - os.path.lexists
    - os.fstat
    - text.encode
    - pip._internal.utils.filesystem.adjacent_tmp_file
    - os.open
    - os.path.isabs
    - typing.cast.fileno
    - pip._internal.utils.compat.get_path_uid
    - os.makedirs
    - os.close
    - current_time.isoformat
    - typing.cast.flush
    - os.path.islink
    - os.access
    - os.geteuid
    - json.dumps
    - pip._internal.utils.filesystem.check_path_owner
    - typing.cast
    - tempfile.NamedTemporaryFile
    - os.stat
    - os.fsync
    - os.path.basename
    - <builtin>.hasattr
    - os.path.dirname
    - pip._internal.utils.misc.ensure_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: current_time.isoformat
    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: text.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 132
    functionName: pip._internal.self_outdated_check.UpgradePrompt.__rich__
    functionSourceFile: pip._internal.self_outdated_check
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.utils.entrypoints.get_best_invocation_for_this_python
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - os.environ.get
    - os.path.samefile
    - pip._vendor.rich.console.Group.__init__
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - os.path.join
    - style_definition.strip
    - color_match.groups
    - pip._internal.utils.entrypoints.get_best_invocation_for_this_pip
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.markup.render
    - pip._vendor.rich.style.Style.__init__._make_color
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - <builtin>.next
    - tag_text.partition
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - shutil.which
    - <builtin>.int
    - os.path.basename
    - os.path.exists
    - os.path.normcase
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - pkg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 152
    functionName: pip._internal.self_outdated_check.was_installed_by_pip
    functionSourceFile: pip._internal.self_outdated_check
    functionUses: 3
    functionsReached:
    - val.lower
    - pip._internal.metadata.get_default_environment
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._internal.metadata.select_backend
    - pip._internal.metadata._should_use_importlib_metadata
    - <builtin>.getattr
    - typing.cast
    - contextlib.suppress
    - pip._internal.utils.misc.strtobool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - session
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 162
    functionName: pip._internal.self_outdated_check._get_current_remote_pip_version
    functionSourceFile: pip._internal.self_outdated_check
    functionUses: 0
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.utils.misc._get_netloc
    - built_find_links.append
    - pip._internal.index.package_finder.PackageFinder.create
    - pip._internal.utils.misc.normalize_version_info
    - pip._internal.index.package_finder.PackageFinder.__init__
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.compat.has_tls
    - logger.debug
    - link.startswith
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - pip._internal.utils.misc._redact_netloc
    - <builtin>.str
    - itertools.chain
    - finder.find_best_candidate
    - <builtin>.set
    - os.path.realpath
    - os.path.expanduser
    - pip._internal.utils.misc.split_auth_from_netloc
    - pip._internal.models.target_python.TargetPython.__init__
    - auth.split
    - pip._internal.models.format_control.FormatControl.__init__
    - <builtin>.len
    - <builtin>.map
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - typing.cast
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - pip._internal.index.collector.LinkCollector.create
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.models.search_scope.SearchScope.create
    - os.path.exists
    - os.path.normcase
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - pip._internal.index.collector.LinkCollector.__init__
    - urllib.parse.urlparse
    - logger.warning
    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: finder.find_best_candidate
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - state
    - current_time
    - local_version
    - get_remote_version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 190
    functionName: pip._internal.self_outdated_check._self_version_check_logic
    functionSourceFile: pip._internal.self_outdated_check
    functionUses: 2
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - typing.cast.Environment.default
    - <builtin>.bool
    - f.write
    - pip._internal.metadata._should_use_importlib_metadata
    - logger.debug
    - os.path.lexists
    - os.fstat
    - pip._vendor.packaging.version.parse
    - part.startswith
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - pip._internal.metadata.get_default_environment
    - text.encode
    - pip._internal.utils.filesystem.adjacent_tmp_file
    - os.open
    - letter.lower
    - typing.cast.fileno
    - os.path.isabs
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - os.makedirs
    - pip._internal.utils.compat.get_path_uid
    - os.close
    - pip._internal.self_outdated_check.SelfCheckState.set
    - current_time.isoformat
    - typing.cast.flush
    - pip._internal.metadata.select_backend
    - os.path.islink
    - os.access
    - pip._vendor.packaging.version._parse_local_version
    - os.geteuid
    - isodate.replace
    - json.dumps
    - pip._internal.utils.filesystem.check_path_owner
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - pip._internal.self_outdated_check._convert_date
    - tempfile.NamedTemporaryFile
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - os.stat
    - os.fsync
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.reversed
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    - <builtin>.hasattr
    - os.path.dirname
    - pip._internal.self_outdated_check.SelfCheckState.get
    - warnings.warn
    - datetime.datetime.fromisoformat
    - _legacy_version_replacement_map.get
    - pip._internal.self_outdated_check.was_installed_by_pip
    - <builtin>.getattr
    - pip._vendor.packaging.version._legacy_cmpkey
    - contextlib.suppress
    - pip._internal.utils.misc.ensure_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - session
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 224
    functionName: pip._internal.self_outdated_check.pip_self_version_check
    functionSourceFile: pip._internal.self_outdated_check
    functionUses: 1
    functionsReached:
    - typing.cast.Environment.default
    - os.path.lexists
    - itertools.dropwhile
    - <builtin>.str
    - pip._internal.metadata.get_default_environment
    - pip._internal.utils.filesystem.adjacent_tmp_file
    - <builtin>.tuple
    - pip._internal.metadata.select_backend
    - os.access
    - tempfile.NamedTemporaryFile
    - os.stat
    - pip._internal.self_outdated_check._get_statefile_name
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - logger.warning
    - <builtin>.hasattr
    - part.startswith
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - pip._internal.self_outdated_check._self_version_check_logic
    - pip._internal.self_outdated_check.SelfCheckState.set
    - match.group
    - os.path.dirname
    - warnings.warn
    - key.encode
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.utils.misc.ensure_dir
    - <builtin>.isinstance
    - datetime.datetime.now
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.self_outdated_check.SelfCheckState.__init__
    - os.fstat
    - version.lower
    - part.zfill
    - text.encode
    - os.path.isabs
    - <builtin>.list
    - os.makedirs
    - pip._internal.utils.compat.get_path_uid
    - os.close
    - typing.cast.flush
    - os.geteuid
    - json.dumps
    - pip._internal.utils.filesystem.check_path_owner
    - typing.cast
    - parts.pop
    - os.fsync
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - _legacy_version_replacement_map.get
    - pip._internal.self_outdated_check.SelfCheckState.get
    - <builtin>.open
    - pip._internal.self_outdated_check.was_installed_by_pip
    - <builtin>.getattr
    - contextlib.suppress
    - json.load
    - val.lower
    - f.write
    - logger.debug
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - os.open
    - letter.lower
    - typing.cast.fileno
    - current_time.isoformat
    - os.path.islink
    - pip._vendor.packaging.version._parse_local_version
    - hashlib.sha224
    - isodate.replace
    - pip._internal.utils.misc.strtobool
    - pip._internal.self_outdated_check._convert_date
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - functools.partial
    - datetime.datetime.fromisoformat
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a70a0>
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 4
    functionName: pip._internal.main.main
    functionSourceFile: pip._internal.main
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.cache
    functionSourceFile: pip._internal.cache
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - d
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 26
    functionName: pip._internal.cache._hash_dict
    functionSourceFile: pip._internal.cache
    functionUses: 13
    functionsReached:
    - json.dumps
    - hashlib.sha224
    - s.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cache_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 38
    functionName: pip._internal.cache.Cache.__init__
    functionSourceFile: pip._internal.cache
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - os.path.isabs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - link
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 43
    functionName: pip._internal.cache.Cache._get_cache_path_parts
    functionSourceFile: pip._internal.cache
    functionUses: 12
    functionsReached:
    - pip._vendor.packaging.tags.interpreter_version
    - pip._internal.cache._hash_dict
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.str
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.map
    - s.encode
    - sysconfig.get_config_var
    - logger.debug
    - hashlib.sha224
    - pip._vendor.packaging.tags._version_nodot
    - json.dumps
    - pip._vendor.packaging.tags._get_config_var
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - link
    - canonical_package_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 76
    functionName: pip._internal.cache.Cache._get_candidates
    functionSourceFile: pip._internal.cache
    functionUses: 3
    functionsReached:
    - pip._vendor.packaging.tags.interpreter_name
    - logger.debug
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.cache.Cache.get_path_for_link
    - <builtin>.str
    - s.encode
    - pip._internal.cache.SimpleWheelCache.get_path_for_link
    - os.path.join
    - pip._vendor.packaging.tags._get_config_var
    - pip._internal.cache.WheelCache.get_path_for_link
    - pip._internal.cache._hash_dict
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - sysconfig.get_config_var
    - hashlib.sha224
    - os.path.isdir
    - pip._internal.cache.Cache._get_cache_path_parts
    - json.dumps
    - pip._vendor.packaging.tags.interpreter_version
    - os.listdir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - link
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 220
    functionName: pip._internal.cache.WheelCache.get_path_for_link
    functionSourceFile: pip._internal.cache
    functionUses: 9
    functionsReached:
    - pip._vendor.packaging.tags.interpreter_version
    - pip._internal.cache._hash_dict
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.str
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.map
    - s.encode
    - sysconfig.get_config_var
    - logger.debug
    - hashlib.sha224
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.cache.SimpleWheelCache.get_path_for_link
    - os.path.join
    - pip._internal.cache.Cache._get_cache_path_parts
    - json.dumps
    - pip._vendor.packaging.tags._get_config_var
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - link
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 108
    functionName: pip._internal.cache.SimpleWheelCache.get_path_for_link
    functionSourceFile: pip._internal.cache
    functionUses: 11
    functionsReached:
    - pip._vendor.packaging.tags.interpreter_version
    - pip._internal.cache._hash_dict
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.str
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.map
    - s.encode
    - sysconfig.get_config_var
    - logger.debug
    - hashlib.sha224
    - pip._vendor.packaging.tags._version_nodot
    - os.path.join
    - pip._internal.cache.Cache._get_cache_path_parts
    - json.dumps
    - pip._vendor.packaging.tags._get_config_var
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - link
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 86
    functionName: pip._internal.cache.Cache.get_path_for_link
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - link
    - package_name
    - supported_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 90
    functionName: pip._internal.cache.Cache.get
    functionSourceFile: pip._internal.cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cache_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 105
    functionName: pip._internal.cache.SimpleWheelCache.__init__
    functionSourceFile: pip._internal.cache
    functionUses: 4
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - link
    - package_name
    - supported_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 128
    functionName: pip._internal.cache.SimpleWheelCache.get
    functionSourceFile: pip._internal.cache
    functionUses: 2
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - <builtin>.str
    - pip._internal.cache.SimpleWheelCache.get_path_for_link
    - <builtin>.tuple
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - os.path.normpath
    - pip._internal.cache.Cache._get_cache_path_parts
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.urljoin
    - abi.lower
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - wheel_info.group
    - part.startswith
    - candidates.append
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - <builtin>.enumerate
    - parts.append
    - os.path.join
    - <builtin>.min
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.super
    - pip._internal.cache.WheelCache.get_path_for_link
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._internal.models.wheel.Wheel.support_index_min
    - os.path.isdir
    - os.path.abspath
    - match.group
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.isinstance
    - pip._internal.cache.Cache._get_candidates
    - pip._vendor.packaging.tags.interpreter_name
    - link_hash.as_dict
    - version.lower
    - part.zfill
    - s.encode
    - <builtin>.list
    - pip._internal.models.link.Link._egg_fragment
    - sysconfig.get_config_var
    - json.dumps
    - typing.cast
    - parts.pop
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - os.listdir
    - _legacy_version_replacement_map.get
    - interpreter.lower
    - format_str.format
    - logger.debug
    - pip._vendor.packaging.version.parse
    - pip._internal.cache.Cache.get_path_for_link
    - _legacy_version_component_re.split
    - letter.lower
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.cache._hash_dict
    - pip._internal.utils.deprecation.deprecated
    - hashlib.sha224
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.packaging.tags.interpreter_version
    - <builtin>.reversed
    - pip._vendor.packaging.tags.Tag.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 175
    functionName: pip._internal.cache.EphemWheelCache.__init__
    functionSourceFile: pip._internal.cache
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - tempfile.mkdtemp
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - logger.debug
    - os.mkdir
    - os.path.join
    - _tempdir_manager.enter_context
    - os.path.realpath
    - os.path.split
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - link
    - persistent
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 185
    functionName: pip._internal.cache.CacheEntry.__init__
    functionSourceFile: pip._internal.cache
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - pathlib.Path
    - pip._internal.models.direct_url.VcsInfo._from_dict
    - pathlib.Path.parent.read_text
    - pip._internal.models.direct_url.DirInfo.__init__
    - pip._internal.models.direct_url.DirectUrl.from_dict
    - json.loads
    - pip._internal.models.direct_url.DirInfo._from_dict
    - pathlib.Path.parent.exists
    - pip._internal.models.direct_url.DirectUrl.__init__
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - pip._internal.models.direct_url._get
    - <builtin>.len
    - pip._internal.models.direct_url._get_required
    - pip._internal.models.direct_url._exactly_one_of
    - pip._internal.models.direct_url.DirectUrl.from_json
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.models.direct_url.ArchiveInfo._from_dict
    - logger.warning
    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: pathlib.Path.parent.exists
    functionSourceFile: pathlib
    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: pathlib.Path.parent.read_text
    functionSourceFile: pathlib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cache_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 215
    functionName: pip._internal.cache.WheelCache.__init__
    functionSourceFile: pip._internal.cache
    functionUses: 3
    functionsReached:
    - <builtin>.super
    - pip._internal.cache.EphemWheelCache.__init__
    - pip._internal.cache.SimpleWheelCache.__init__
    - tempfile.mkdtemp
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - logger.debug
    - os.mkdir
    - os.path.join
    - _tempdir_manager.enter_context
    - os.path.realpath
    - os.path.split
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - link
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 223
    functionName: pip._internal.cache.WheelCache.get_ephem_path_for_link
    functionSourceFile: pip._internal.cache
    functionUses: 5
    functionsReached:
    - pip._vendor.packaging.tags.interpreter_version
    - pip._internal.cache._hash_dict
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.str
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.map
    - s.encode
    - sysconfig.get_config_var
    - logger.debug
    - hashlib.sha224
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.cache.SimpleWheelCache.get_path_for_link
    - os.path.join
    - pip._internal.cache.Cache._get_cache_path_parts
    - json.dumps
    - pip._vendor.packaging.tags._get_config_var
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - link
    - package_name
    - supported_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 226
    functionName: pip._internal.cache.WheelCache.get
    functionSourceFile: pip._internal.cache
    functionUses: 0
    functionsReached:
    - pip._internal.cache.SimpleWheelCache.get
    - pathlib.Path
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.models.direct_url.VcsInfo._from_dict
    - pathlib.Path.parent.read_text
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - <builtin>.str
    - pip._internal.cache.SimpleWheelCache.get_path_for_link
    - <builtin>.tuple
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - os.path.normpath
    - pip._internal.cache.Cache._get_cache_path_parts
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.urljoin
    - pip._internal.models.direct_url.ArchiveInfo._from_dict
    - abi.lower
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - wheel_info.group
    - part.startswith
    - candidates.append
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - <builtin>.enumerate
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - os.path.join
    - <builtin>.min
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.super
    - pip._internal.cache.WheelCache.get_path_for_link
    - INTERPRETER_SHORT_NAMES.get
    - pip._internal.cache.WheelCache.get_cache_entry
    - <builtin>.map
    - pip._internal.models.direct_url._get_required
    - pip._internal.models.wheel.Wheel.support_index_min
    - os.path.isdir
    - os.path.abspath
    - match.group
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.isinstance
    - pip._internal.cache.Cache._get_candidates
    - pip._vendor.packaging.tags.interpreter_name
    - link_hash.as_dict
    - version.lower
    - part.zfill
    - pip._internal.cache.CacheEntry.__init__
    - pathlib.Path.parent.exists
    - s.encode
    - <builtin>.list
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.models.direct_url._get
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._internal.models.direct_url._exactly_one_of
    - json.dumps
    - typing.cast
    - parts.pop
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - os.listdir
    - _legacy_version_replacement_map.get
    - interpreter.lower
    - format_str.format
    - logger.debug
    - pip._vendor.packaging.version.parse
    - pip._internal.cache.Cache.get_path_for_link
    - _legacy_version_component_re.split
    - pip._internal.models.direct_url.DirectUrl.from_dict
    - json.loads
    - pip._internal.models.direct_url.DirInfo._from_dict
    - letter.lower
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.cache._hash_dict
    - pip._internal.utils.deprecation.deprecated
    - hashlib.sha224
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.packaging.tags.interpreter_version
    - <builtin>.reversed
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.models.direct_url.DirectUrl.from_json
    - pip._internal.models.direct_url.VcsInfo.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - link
    - package_name
    - supported_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 237
    functionName: pip._internal.cache.WheelCache.get_cache_entry
    functionSourceFile: pip._internal.cache
    functionUses: 1
    functionsReached:
    - pip._internal.cache.SimpleWheelCache.get
    - pathlib.Path
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.models.direct_url.VcsInfo._from_dict
    - pathlib.Path.parent.read_text
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - <builtin>.str
    - pip._internal.cache.SimpleWheelCache.get_path_for_link
    - <builtin>.tuple
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - os.path.normpath
    - pip._internal.cache.Cache._get_cache_path_parts
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.urljoin
    - pip._internal.models.direct_url.ArchiveInfo._from_dict
    - abi.lower
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - wheel_info.group
    - part.startswith
    - candidates.append
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - <builtin>.enumerate
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - os.path.join
    - <builtin>.min
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.super
    - pip._internal.cache.WheelCache.get_path_for_link
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._internal.models.direct_url._get_required
    - pip._internal.models.wheel.Wheel.support_index_min
    - os.path.isdir
    - os.path.abspath
    - match.group
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.isinstance
    - pip._internal.cache.Cache._get_candidates
    - pip._vendor.packaging.tags.interpreter_name
    - link_hash.as_dict
    - version.lower
    - part.zfill
    - pip._internal.cache.CacheEntry.__init__
    - pathlib.Path.parent.exists
    - s.encode
    - <builtin>.list
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.models.direct_url._get
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._internal.models.direct_url._exactly_one_of
    - json.dumps
    - typing.cast
    - parts.pop
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - os.listdir
    - _legacy_version_replacement_map.get
    - interpreter.lower
    - format_str.format
    - logger.debug
    - pip._vendor.packaging.version.parse
    - pip._internal.cache.Cache.get_path_for_link
    - _legacy_version_component_re.split
    - pip._internal.models.direct_url.DirectUrl.from_dict
    - json.loads
    - pip._internal.models.direct_url.DirInfo._from_dict
    - letter.lower
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.cache._hash_dict
    - pip._internal.utils.deprecation.deprecated
    - hashlib.sha224
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.packaging.tags.interpreter_version
    - <builtin>.reversed
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.models.direct_url.DirectUrl.from_json
    - pip._internal.models.direct_url.VcsInfo.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cache_dir
    - download_info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 266
    functionName: pip._internal.cache.WheelCache.record_download_origin
    functionSourceFile: pip._internal.cache
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - pathlib.Path
    - pathlib.Path.read_text
    - pathlib.Path.write_text
    - pip._internal.models.direct_url.VcsInfo._from_dict
    - pip._internal.models.direct_url.DirInfo.__init__
    - pip._internal.models.direct_url.DirectUrl.from_dict
    - json.loads
    - download_info.to_json
    - pip._internal.models.direct_url.DirInfo._from_dict
    - pip._internal.models.direct_url.DirectUrl.__init__
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - pip._internal.models.direct_url._get
    - <builtin>.len
    - pip._internal.models.direct_url._get_required
    - pip._internal.models.direct_url._exactly_one_of
    - pathlib.Path.exists
    - pip._internal.models.direct_url.DirectUrl.from_json
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.models.direct_url.ArchiveInfo._from_dict
    - logger.warning
    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: download_info.to_json
    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: pathlib.Path.write_text
    functionSourceFile: pathlib
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.wheel_builder
    functionSourceFile: pip._internal.wheel_builder
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: pip._internal.wheel_builder._contains_egg_info
    functionSourceFile: pip._internal.wheel_builder
    functionUses: 6
    functionsReached:
    - <builtin>.bool
    - _egg_info_re.search
    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: _egg_info_re.search
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - req
    - need_wheel
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 45
    functionName: pip._internal.wheel_builder._should_build
    functionSourceFile: pip._internal.wheel_builder
    functionUses: 5
    functionsReached:
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - req
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 78
    functionName: pip._internal.wheel_builder.should_build_for_wheel_command
    functionSourceFile: pip._internal.wheel_builder
    functionUses: 2
    functionsReached:
    - pip._internal.wheel_builder._should_build
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - req
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 84
    functionName: pip._internal.wheel_builder.should_build_for_install_command
    functionSourceFile: pip._internal.wheel_builder
    functionUses: 2
    functionsReached:
    - pip._internal.wheel_builder._should_build
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - req
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 90
    functionName: pip._internal.wheel_builder._should_cache
    functionSourceFile: pip._internal.wheel_builder
    functionUses: 5
    functionsReached:
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - req.link.splitext
    - <builtin>.bool
    - vcs_backend.is_immutable_rev_checkout
    - pip._internal.wheel_builder._contains_egg_info
    - _egg_info_re.search
    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: vcs_backend.is_immutable_rev_checkout
    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.link.splitext
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - req
    - wheel_cache
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 122
    functionName: pip._internal.wheel_builder._get_cache_dir
    functionSourceFile: pip._internal.wheel_builder
    functionUses: 4
    functionsReached:
    - req.link.splitext
    - <builtin>.bool
    - pip._vendor.packaging.tags.interpreter_name
    - logger.debug
    - pip._vendor.packaging.tags._version_nodot
    - _egg_info_re.search
    - <builtin>.str
    - s.encode
    - pip._internal.cache.SimpleWheelCache.get_path_for_link
    - os.path.join
    - pip._internal.wheel_builder._contains_egg_info
    - pip._vendor.packaging.tags._get_config_var
    - pip._internal.cache.WheelCache.get_path_for_link
    - pip._internal.cache._hash_dict
    - INTERPRETER_SHORT_NAMES.get
    - vcs_backend.is_immutable_rev_checkout
    - <builtin>.map
    - sysconfig.get_config_var
    - hashlib.sha224
    - pip._internal.cache.Cache._get_cache_path_parts
    - json.dumps
    - pip._internal.cache.WheelCache.get_ephem_path_for_link
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._internal.wheel_builder._should_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - req
    - wheel_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 138
    functionName: pip._internal.wheel_builder._verify_one
    functionSourceFile: pip._internal.wheel_builder
    functionUses: 5
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - interpreter.lower
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.models.wheel.Wheel.__init__
    - wheel_info.group
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - <builtin>.str
    - typing.cast.Distribution.from_wheel
    - pip._internal.metadata.get_wheel_distribution
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.hash
    - platform.lower
    - re.sub
    - pip._internal.metadata.select_backend
    - pip._vendor.packaging.utils.canonicalize_version
    - pip._vendor.packaging.version._parse_local_version
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - os.path.basename
    - pip._vendor.packaging.tags.Tag.__init__
    - match.group
    - part.isdigit
    - <builtin>.getattr
    - abi.lower
    - contextlib.suppress
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    - InvalidWheelFilename
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 6
    argDefaultValues: []
    argNames:
    - req
    - output_dir
    - verify
    - build_options
    - global_options
    - editable
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 167
    functionName: pip._internal.wheel_builder._build_one
    functionSourceFile: pip._internal.wheel_builder
    functionUses: 4
    functionsReached:
    - <builtin>.sum
    - pip._internal.models.wheel.Wheel.__init__
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - <builtin>.str
    - pip._internal.utils.temp_dir.TempDirectory._create
    - err.splitlines
    - <builtin>.tuple
    - os.path.realpath
    - spinner.finish
    - pip._internal.utils.misc.read_chunks
    - <builtin>.hash
    - subprocess.Popen
    - re.sub
    - typing.cast.verbose
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - pip._internal.utils.setuptools_build.make_setuptools_bdist_wheel_args
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.basename
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - backend.build_editable
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._internal.wheel_builder._verify_one
    - abi.lower
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - os.path.split
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - pip._internal.wheel_builder._clean_one_legacy
    - marshal.dumps
    - wheel_info.group
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - pip._internal.operations.build.wheel_legacy.format_command_result
    - time.time
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - parts.append
    - os.path.join
    - proc.stdout.readline
    - pip._vendor.packaging.version.Version.__init__
    - command_output.endswith
    - logger.error
    - part.lower
    - env.pop
    - <builtin>.super
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - logger.getEffectiveLevel
    - match.group
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - pip._internal.utils.misc.ensure_dir
    - <builtin>.range
    - wheel_hash.hexdigest
    - <builtin>.isinstance
    - <builtin>.bool
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._internal.metadata._should_use_importlib_metadata
    - h.update
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - backend.build_wheel
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - file.read
    - pip._internal.operations.build.wheel_editable.build_wheel_editable
    - pip._internal.cli.spinners.hidden_cursor
    - color_match.groups
    - _SETUPTOOLS_SHIM.format
    - <builtin>.list
    - os.makedirs
    - sys.stdout.isatty
    - tempfile.mkdtemp
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - os.mkdir
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - pip._internal.utils.subprocess.call_subprocess
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - typing.cast.warning
    - backend.subprocess_runner
    - <builtin>.int
    - part.isdigit
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - os.listdir
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - contextlib.suppress
    - pip._internal.operations.build.wheel.build_wheel_pep517
    - val.lower
    - typing.cast.getEffectiveLevel
    - interpreter.lower
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - logger.debug
    - pip._internal.wheel_builder._build_one_inside_env
    - _tempdir_manager.enter_context
    - pip._internal.utils.setuptools_build.make_setuptools_clean_args
    - plain_text.replace
    - style.strip
    - typing.cast.Distribution.from_wheel
    - shutil.move
    - itertools.combinations_with_replacement
    - pip._internal.metadata.get_wheel_distribution
    - pip._vendor.rich.markup._parse
    - letter.lower
    - variants.get
    - style_definition.split
    - pip._internal.operations.build.wheel_legacy.get_legacy_build_wheel_path
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - platform.lower
    - pip._internal.operations.build.wheel_legacy.build_wheel_legacy
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._vendor.packaging.utils.canonicalize_version
    - pip._vendor.packaging.version._parse_local_version
    - pip._vendor.rich.markup.render
    - hashlib.sha256
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - pip._internal.utils.misc.strtobool
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.tags.Tag.__init__
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - pip._internal.utils.misc.hash_file
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 7
    IfCount: 6
    argCount: 5
    argDefaultValues: []
    argNames:
    - req
    - output_dir
    - build_options
    - global_options
    - editable
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 205
    functionName: pip._internal.wheel_builder._build_one_inside_env
    functionSourceFile: pip._internal.wheel_builder
    functionUses: 5
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - pip._internal.utils.temp_dir.TempDirectory._create
    - err.splitlines
    - os.path.realpath
    - spinner.finish
    - pip._internal.utils.misc.read_chunks
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._internal.utils.setuptools_build.make_setuptools_bdist_wheel_args
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.basename
    - backend.build_editable
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - os.path.split
    - logger.warning
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - pip._internal.wheel_builder._clean_one_legacy
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - pip._internal.operations.build.wheel_legacy.format_command_result
    - time.time
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - proc.stdout.readline
    - command_output.endswith
    - logger.error
    - env.pop
    - <builtin>.super
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.range
    - wheel_hash.hexdigest
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - h.update
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - backend.build_wheel
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - file.read
    - pip._internal.operations.build.wheel_editable.build_wheel_editable
    - pip._internal.cli.spinners.hidden_cursor
    - color_match.groups
    - _SETUPTOOLS_SHIM.format
    - sys.stdout.isatty
    - tempfile.mkdtemp
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - os.mkdir
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - backend.subprocess_runner
    - <builtin>.int
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - os.listdir
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - pip._internal.operations.build.wheel.build_wheel_pep517
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - logger.debug
    - _tempdir_manager.enter_context
    - pip._internal.utils.setuptools_build.make_setuptools_clean_args
    - plain_text.replace
    - style.strip
    - shutil.move
    - itertools.combinations_with_replacement
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - pip._internal.operations.build.wheel_legacy.get_legacy_build_wheel_path
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - pip._internal.operations.build.wheel_legacy.build_wheel_legacy
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._vendor.rich.markup.render
    - hashlib.sha256
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - pip._internal.utils.misc.hash_file
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - name
    - backend
    - metadata_directory
    - tempd
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 12
    functionName: pip._internal.operations.build.wheel_editable.build_wheel_editable
    functionSourceFile: pip._internal.operations.build.wheel_editable
    functionUses: 6
    functionsReached:
    - backend.subprocess_runner
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - backend.build_editable
    - logger.debug
    - os.path.join
    - logger.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - name
    - backend
    - metadata_directory
    - tempd
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 12
    functionName: pip._internal.operations.build.wheel.build_wheel_pep517
    functionSourceFile: pip._internal.operations.build.wheel
    functionUses: 6
    functionsReached:
    - backend.subprocess_runner
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - backend.build_wheel
    - logger.debug
    - os.path.join
    - logger.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - name
    - setup_py_path
    - source_dir
    - global_options
    - build_options
    - tempd
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 59
    functionName: pip._internal.operations.build.wheel_legacy.build_wheel_legacy
    functionSourceFile: pip._internal.operations.build.wheel_legacy
    functionUses: 6
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._internal.utils.setuptools_build.make_setuptools_bdist_wheel_args
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - logger.warning
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.operations.build.wheel_legacy.format_command_result
    - time.time
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - os.path.join
    - command_output.endswith
    - proc.stdout.readline
    - logger.error
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - logger.getEffectiveLevel
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.cli.spinners.hidden_cursor
    - color_match.groups
    - _SETUPTOOLS_SHIM.format
    - sys.stdout.isatty
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - os.listdir
    - all_output.append
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - logger.debug
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - pip._internal.operations.build.wheel_legacy.get_legacy_build_wheel_path
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wheel_hash.hexdigest
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - req
    - global_options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 276
    functionName: pip._internal.wheel_builder._clean_one_legacy
    functionSourceFile: pip._internal.wheel_builder
    functionUses: 6
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - typing.cast.error
    - match.groups
    - <builtin>.str
    - err.splitlines
    - spinner.finish
    - <builtin>.hash
    - subprocess.Popen
    - typing.cast.verbose
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - proc.stdout.readline
    - logger.error
    - abc.ABC.background_color.lower
    - <builtin>.super
    - env.pop
    - ast.literal_eval
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - color_match.groups
    - _SETUPTOOLS_SHIM.format
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.markup.escape
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - pip._internal.utils.subprocess.call_subprocess
    - typing.cast.warning
    - <builtin>.int
    - all_output.append
    - style_stack.append
    - <builtin>.all
    - color_rgb.split
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - pip._internal.utils.setuptools_build.make_setuptools_clean_args
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - os.environ.copy
    - style_definition.strip
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - logger.info
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 7
    IfCount: 5
    argCount: 5
    argDefaultValues: []
    argNames:
    - requirements
    - wheel_cache
    - verify
    - build_options
    - global_options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 293
    functionName: pip._internal.wheel_builder.build
    functionSourceFile: pip._internal.wheel_builder
    functionUses: 3
    functionsReached:
    - pathlib.Path
    - pip._internal.models.link.Link.__init__
    - req.link.splitext
    - <builtin>.sum
    - pip._internal.utils.urls.path_to_url
    - pathlib.Path.read_text
    - pip._internal.models.wheel.Wheel.__init__
    - operator.attrgetter
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - pip._internal.models.direct_url.VcsInfo._from_dict
    - pip._vendor.rich.style.Style.null
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.models.direct_url.DirInfo.__init__
    - build_failures.append
    - match.groups
    - typing.cast.error
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._internal.cache.WheelCache.record_download_origin
    - <builtin>.str
    - pip._internal.utils.temp_dir.TempDirectory._create
    - err.splitlines
    - pip._internal.cache.SimpleWheelCache.get_path_for_link
    - <builtin>.tuple
    - os.path.realpath
    - spinner.finish
    - pip._internal.utils.misc.read_chunks
    - pip._internal.wheel_builder._contains_egg_info
    - <builtin>.hash
    - pip._internal.utils.logging.indent_log
    - subprocess.Popen
    - typing.cast.verbose
    - re.sub
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - pip._internal.utils.setuptools_build.make_setuptools_bdist_wheel_args
    - pip._vendor.rich.style.Style.__init__._make_color
    - os.path.normpath
    - pip._internal.cache.Cache._get_cache_path_parts
    - pip._internal.cache.WheelCache.get_ephem_path_for_link
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - backend.build_editable
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - urllib.parse.urljoin
    - pip._internal.models.direct_url.ArchiveInfo._from_dict
    - pip._internal.wheel_builder._verify_one
    - abi.lower
    - pip._vendor.rich.control.strip_control_codes
    - proc.wait
    - os.path.split
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - sys.stdout.write
    - proc.communicate
    - tag.name.startswith
    - RE_TAGS.finditer
    - pip._internal.wheel_builder._clean_one_legacy
    - marshal.dumps
    - wheel_info.group
    - part.startswith
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.operations.build.wheel_legacy.format_command_result
    - time.time
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - command_output.endswith
    - pip._vendor.packaging.version.Version.__init__
    - proc.stdout.readline
    - logger.error
    - part.lower
    - env.pop
    - <builtin>.super
    - abc.ABC.background_color.lower
    - pip._internal.cache.WheelCache.get_path_for_link
    - INTERPRETER_SHORT_NAMES.get
    - ast.literal_eval
    - <builtin>.map
    - pip._internal.models.direct_url._get_required
    - env.update
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - os.path.abspath
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.utils.logging.get_indentation
    - match.span
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - logger.getEffectiveLevel
    - match.group
    - warnings.warn
    - RE_COLOR.match
    - proc.stdout.close
    - typing.cast.critical
    - shlex.quote
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.utils.misc.ensure_dir
    - <builtin>.range
    - wheel_hash.hexdigest
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._vendor.packaging.tags.interpreter_name
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._internal.metadata._should_use_importlib_metadata
    - link_hash.as_dict
    - pathlib.Path.write_text
    - h.update
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - version.lower
    - part.zfill
    - line.rstrip
    - spinner.spin
    - STYLE_ATTRIBUTES.get
    - backend.build_wheel
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - s.encode
    - proc.stdin.close
    - pip._internal.utils.subprocess.reveal_command_args
    - out.splitlines
    - pip._internal.wheel_builder._get_cache_dir
    - pip._internal.operations.build.wheel_editable.build_wheel_editable
    - file.read
    - pip._internal.cli.spinners.hidden_cursor
    - color_match.groups
    - _SETUPTOOLS_SHIM.format
    - <builtin>.list
    - os.makedirs
    - sys.stdout.isatty
    - tempfile.mkdtemp
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.models.direct_url._get
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - sysconfig.get_config_var
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._vendor.rich.markup.escape
    - os.mkdir
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - json.dumps
    - pip._internal.models.direct_url._exactly_one_of
    - typing.cast
    - pip._internal.utils.subprocess.call_subprocess
    - pathlib.Path.exists
    - parts.pop
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - backend.subprocess_runner
    - typing.cast.warning
    - <builtin>.int
    - part.isdigit
    - urllib.parse.urlsplit
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - os.listdir
    - all_output.append
    - _legacy_version_replacement_map.get
    - style_stack.append
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - <builtin>.open
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - pip._internal.wheel_builder._should_cache
    - contextlib.suppress
    - pip._internal.operations.build.wheel.build_wheel_pep517
    - val.lower
    - typing.cast.getEffectiveLevel
    - interpreter.lower
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - format_str.format
    - logger.debug
    - pip._internal.wheel_builder._build_one_inside_env
    - _tempdir_manager.enter_context
    - pip._internal.utils.setuptools_build.make_setuptools_clean_args
    - pip._vendor.packaging.version.parse
    - plain_text.replace
    - _legacy_version_component_re.split
    - _egg_info_re.search
    - pip._internal.models.direct_url.DirectUrl.from_dict
    - json.loads
    - typing.cast.Distribution.from_wheel
    - download_info.to_json
    - shutil.move
    - pip._internal.models.direct_url.DirInfo._from_dict
    - style.strip
    - itertools.combinations_with_replacement
    - pip._internal.metadata.get_wheel_distribution
    - pip._vendor.rich.markup._parse
    - letter.lower
    - variants.get
    - style_definition.split
    - pip._internal.operations.build.wheel_legacy.get_legacy_build_wheel_path
    - os.environ.copy
    - itertools.cycle
    - style_definition.strip
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.operations.build.wheel_legacy.build_wheel_legacy
    - pip._internal.cache._hash_dict
    - open_tag.name.startswith
    - pip._internal.utils.subprocess.format_command_args
    - vcs_backend.is_immutable_rev_checkout
    - typing.NamedTuple.__init__
    - random.randint
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._vendor.packaging.utils.canonicalize_version
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.wheel_builder._build_one
    - hashlib.sha224
    - pip._vendor.rich.markup.render
    - hashlib.sha256
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - pip._internal.utils.misc.strtobool
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - <builtin>.reversed
    - pip._vendor.packaging.tags.interpreter_version
    - build_successes.append
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.models.direct_url.DirectUrl.from_json
    - logger.info
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.utils.misc.hash_file
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: build_successes.append
    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: build_failures.append
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.operations.build.wheel_legacy
    functionSourceFile: pip._internal.operations.build.wheel_legacy
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - command_args
    - command_output
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 12
    functionName: pip._internal.operations.build.wheel_legacy.format_command_result
    functionSourceFile: pip._internal.operations.build.wheel_legacy
    functionUses: 8
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    - pip._internal.utils.subprocess.format_command_args
    - logger.getEffectiveLevel
    - command_output.endswith
    - shlex.quote
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: command_output.endswith
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - names
    - temp_dir
    - name
    - command_args
    - command_output
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 32
    functionName: pip._internal.operations.build.wheel_legacy.get_legacy_build_wheel_path
    functionSourceFile: pip._internal.operations.build.wheel_legacy
    functionUses: 7
    functionsReached:
    - pip._internal.operations.build.wheel_legacy.format_command_result
    - <builtin>.isinstance
    - <builtin>.str
    - pip._internal.utils.subprocess.format_command_args
    - logger.getEffectiveLevel
    - <builtin>.len
    - <builtin>.sorted
    - os.path.join
    - command_output.endswith
    - shlex.quote
    - logger.warning
    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: pip._internal.operations.build.wheel_editable
    functionSourceFile: pip._internal.operations.build.wheel_editable
    functionUses: 0
    functionsReached:
    - logging.getLogger
    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: backend.subprocess_runner
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: backend.build_editable
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.operations.build.wheel
    functionSourceFile: pip._internal.operations.build.wheel
    functionUses: 0
    functionsReached:
    - logging.getLogger
    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: backend.build_wheel
    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: pip._internal.utils.direct_url_helpers
    functionSourceFile: pip._internal.utils.direct_url_helpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - direct_url
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 9
    functionName: pip._internal.utils.direct_url_helpers.direct_url_as_pep440_direct_reference
    functionSourceFile: pip._internal.utils.direct_url_helpers
    functionUses: 3
    functionsReached:
    - fragments.append
    - <builtin>.isinstance
    - direct_url.validate
    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: direct_url.validate
    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: fragments.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - source_dir
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 32
    functionName: pip._internal.utils.direct_url_helpers.direct_url_for_editable
    functionSourceFile: pip._internal.utils.direct_url_helpers
    functionUses: 1
    functionsReached:
    - urllib.request.pathname2url
    - pip._internal.utils.urls.path_to_url
    - os.path.abspath
    - pip._internal.models.direct_url.DirectUrl.__init__
    - urllib.parse.urljoin
    - os.path.normpath
    - pip._internal.models.direct_url.DirInfo.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b89a90>
    - <ast.Constant object at 0x7f30d6b87700>
    argNames:
    - link
    - source_dir
    - link_is_in_wheel_cache
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 39
    functionName: pip._internal.utils.direct_url_helpers.direct_url_from_link
    functionSourceFile: pip._internal.utils.direct_url_helpers
    functionUses: 23
    functionsReached:
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - link.is_existing_dir
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - vcs_backend.get_url_rev_and_auth
    - pip._internal.models.direct_url.DirectUrl.__init__
    - pip._internal.models.direct_url.VcsInfo.__init__
    - vcs_backend.get_revision
    - pip._internal.models.direct_url.DirInfo.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: vcs_backend.get_url_rev_and_auth
    functionSourceFile: <builtin>
    functionUses: 24
    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: vcs_backend.get_revision
    functionSourceFile: <builtin>
    functionUses: 24
    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: link.is_existing_dir
    functionSourceFile: <builtin>
    functionUses: 26
    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: pip._internal.utils.datetime
    functionSourceFile: pip._internal.utils.datetime
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - year
    - month
    - day
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 7
    functionName: pip._internal.utils.datetime.today_is_later_than
    functionSourceFile: pip._internal.utils.datetime
    functionUses: 0
    functionsReached:
    - datetime.date
    - datetime.date.today
    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: pip._internal.cli.progress_bars
    functionSourceFile: pip._internal.cli.progress_bars
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - iterable
    - bar_type
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 22
    functionName: pip._internal.cli.progress_bars._rich_progress_bar
    functionSourceFile: pip._internal.cli.progress_bars
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.progress.SpinnerColumn.__init__
    - <builtin>.sum
    - threading.RLock
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - <builtin>.str
    - <builtin>.float
    - <builtin>.hash
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - pip._vendor.rich.live.Live.refresh
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.table.Table.grid
    - tag.name.startswith
    - pip._vendor.rich.progress.Progress.get_default_columns
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._vendor.rich.live.Live.__init__
    - table.add_row
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - abc.ABC.background_color.lower
    - <builtin>.super
    - pip._vendor.rich.progress.ProgressColumn.__init__
    - ast.literal_eval
    - pip._vendor.rich.progress.Progress.get_renderables
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._internal.utils.logging.get_indentation
    - match.span
    - warnings.warn
    - RE_COLOR.match
    - pip._vendor.rich.progress.TaskProgressColumn.__init__
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.progress.Progress.update
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._vendor.rich.live.Live.get_renderable
    - pip._vendor.rich.console.Group.__init__
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.progress.Progress.__init__
    - pip._vendor.rich.progress.Progress.add_task
    - color_match.groups
    - <builtin>.list
    - pip._vendor.rich.progress.BarColumn.__init__
    - pip._vendor.rich.spinner.Spinner.__init__
    - ipywidgets.Output
    - _progress.append
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NewType
    - typing.cast
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.progress.DownloadColumn.__init__
    - <builtin>.getattr
    - <builtin>.all
    - color_rgb.split
    - pip._vendor.rich.progress.Progress.start_task
    - plain_text.replace
    - style.strip
    - pip._vendor.rich.progress.Progress.get_renderable
    - pip._vendor.rich.markup._parse
    - pip._vendor.rich.progress.Progress.refresh
    - variants.get
    - style_definition.split
    - style_definition.strip
    - task._reset
    - open_tag.name.startswith
    - task.fields.update
    - typing.NamedTuple.__init__
    - random.randint
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.markup.render
    - pip._vendor.rich.progress.TextColumn.__init__
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - column.format
    - <builtin>.reversed
    - _column.get_table_column
    - pip._vendor.rich.live_render.LiveRender.__init__
    - IPython.display.display
    - get_console
    - style_stack.pop
    - pip._vendor.rich.progress.TimeRemainingColumn.__init__
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30ec3b2970>
    - <ast.Constant object at 0x7f30ec3b2940>
    - <ast.Constant object at 0x7f30ec3b2910>
    - <ast.Constant object at 0x7f30ec3b28e0>
    - <ast.Constant object at 0x7f30ec3b28b0>
    argNames:
    - self
    - text_format
    - style
    - justify
    - markup
    - highlighter
    - table_column
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 607
    functionName: pip._vendor.rich.progress.TextColumn.__init__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 7
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30ec3b0e80>
    - <ast.Constant object at 0x7f30ec3b0e50>
    - <ast.Constant object at 0x7f30ec3b0e20>
    - <ast.Constant object at 0x7f30ec3b0df0>
    - <ast.Constant object at 0x7f30ec3b0dc0>
    argNames:
    - self
    - spinner_name
    - style
    - speed
    - finished_text
    - table_column
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 564
    functionName: pip._vendor.rich.progress.SpinnerColumn.__init__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.spinner.Spinner.__init__
    - <builtin>.super
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - typing.cast
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30ec3c50a0>
    argNames:
    - self
    - table_column
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 500
    functionName: pip._vendor.rich.progress.ProgressColumn.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30ec3bc2e0>
    - <ast.Constant object at 0x7f30ec3bc2b0>
    - <ast.Constant object at 0x7f30ec3bc280>
    - <ast.Constant object at 0x7f30ec3bc250>
    - <ast.Constant object at 0x7f30ec3bc220>
    - <ast.Constant object at 0x7f30ec3bc1f0>
    argNames:
    - self
    - bar_width
    - style
    - complete_style
    - finished_style
    - pulse_style
    - table_column
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 645
    functionName: pip._vendor.rich.progress.BarColumn.__init__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 7
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa660070>
    - <ast.Constant object at 0x7f30fa660040>
    argNames:
    - self
    - binary_units
    - table_column
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 861
    functionName: pip._vendor.rich.progress.DownloadColumn.__init__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 3
    functionsReached:
    - <builtin>.super
    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 0x7f30fa666a90>
    - <ast.Constant object at 0x7f30fa666a60>
    - <ast.Constant object at 0x7f30fa666a30>
    argNames:
    - self
    - compact
    - elapsed_when_finished
    - table_column
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 772
    functionName: pip._vendor.rich.progress.TimeRemainingColumn.__init__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 7
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 12
    argDefaultValues: []
    argNames:
    - self
    - columns
    - console
    - auto_refresh
    - refresh_per_second
    - speed_estimate_period
    - transient
    - redirect_stdout
    - redirect_stderr
    - get_time
    - disable
    - expand
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1066
    functionName: pip._vendor.rich.progress.Progress.__init__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 5
    functionsReached:
    - pip._vendor.rich.progress.TaskProgressColumn.__init__
    - <builtin>.isinstance
    - threading.RLock
    - pip._vendor.rich.progress.Progress.get_default_columns
    - pip._vendor.rich.live.Live.get_renderable
    - pip._vendor.rich.console.Group.__init__
    - pip._vendor.rich.live.Live.__init__
    - pip._vendor.rich.progress.Progress.get_renderable
    - table.add_row
    - pip._vendor.rich.table.Table.add_column
    - <builtin>.list
    - pip._vendor.rich.progress.BarColumn.__init__
    - <builtin>.super
    - <builtin>.len
    - pip._vendor.rich.progress.Progress.get_renderables
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - pip._vendor.rich.progress.TextColumn.__init__
    - typing.NewType
    - typing.cast
    - column.format
    - _column.get_table_column
    - pip._vendor.rich.live_render.LiveRender.__init__
    - get_console
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.progress.TimeRemainingColumn.__init__
    - pip._vendor.rich.table.Table.grid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30eac4f340>
    - <ast.Constant object at 0x7f30eac4f310>
    - <ast.Constant object at 0x7f30eac4f2e0>
    - <ast.Constant object at 0x7f30eac4f2b0>
    argNames:
    - self
    - description
    - start
    - total
    - completed
    - visible
    - fields
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1584
    functionName: pip._vendor.rich.progress.Progress.add_task
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 7
    functionsReached:
    - ipywidgets.Output
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.int
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - IPython.display.display
    - pip._vendor.rich.progress.Progress.refresh
    - ipywidgets.Output.clear_output
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.progress.Progress.start_task
    - typing.NewType
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 6
    IfCount: 8
    argCount: 9
    argDefaultValues: []
    argNames:
    - self
    - task_id
    - total
    - completed
    - advance
    - description
    - visible
    - refresh
    - fields
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1401
    functionName: pip._vendor.rich.progress.Progress.update
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 9
    functionsReached:
    - ipywidgets.Output
    - task._reset
    - pip._vendor.rich.live.Live.refresh
    - _progress.append
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - task.fields.update
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.progress.Progress.refresh
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - bar_type
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 58
    functionName: pip._internal.cli.progress_bars.get_download_progress_renderer
    functionSourceFile: pip._internal.cli.progress_bars
    functionUses: 3
    functionsReached:
    - functools.partial
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: -1
    functionName: pip._vendor.rich.progress
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.progress.SpinnerColumn.__init__
    - <builtin>.sum
    - threading.RLock
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - time.sleep
    - match.groups
    - abc.ABC.title
    - <builtin>.str
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - columns.isdigit
    - pip._vendor.rich.table.Table.grid
    - <builtin>.hasattr
    - tag.name.startswith
    - pip._vendor.rich.progress.Progress.get_default_columns
    - RE_TAGS.finditer
    - marshal.dumps
    - pip._vendor.rich.live.Live.__init__
    - table.add_row
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - term.rpartition
    - abc.ABC.background_color.lower
    - <builtin>.super
    - pip._vendor.rich.progress.ProgressColumn.__init__
    - ast.literal_eval
    - pip._vendor.rich.progress.Progress.get_renderables
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.theme.ThemeStack.__init__
    - importlib.metadata.entry_points
    - match.span
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - pip._vendor.rich.table.Table.add_row.add_cell
    - importlib_metadata.entry_points
    - pip._vendor.rich.console.detect_legacy_windows
    - lines.isdigit
    - pip._vendor.rich.progress.TaskProgressColumn.__init__
    - <builtin>.isinstance
    - typing.TypeVar
    - <builtin>.__import__
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - <builtin>.bool
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._vendor.rich.live.Live.get_renderable
    - pip._vendor.rich.console.Group.__init__
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - pip._vendor.rich.progress.Progress.__init__
    - color_match.groups
    - <builtin>.list
    - pip._vendor.rich.progress.BarColumn.__init__
    - pip._vendor.rich.spinner.Spinner.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.NewType
    - typing.cast
    - <builtin>.ord
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich.syntax.Syntax.get_theme
    - column._cells.append
    - plain_text.replace
    - pip._vendor.rich.syntax.Syntax.__init__
    - threading.local.__init__
    - style.strip
    - pip._vendor.rich.progress.Progress.get_renderable
    - pip._vendor.rich.markup._parse
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - variants.get
    - style_definition.split
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - typing.overload
    - itertools.cycle
    - style_definition.strip
    - os.getenv
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - random.randint
    - pip._vendor.rich.markup.render
    - pip._vendor.rich.progress.TextColumn.__init__
    - sys.getwindowsversion
    - tag_text.partition
    - <builtin>.next
    - pip._vendor.rich.console.Console._detect_color_system
    - pip._vendor.rich._win32_console.GetConsoleMode
    - RE_HANDLER.match
    - column.format
    - <builtin>.reversed
    - _column.get_table_column
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.live_render.LiveRender.__init__
    - get_console
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.pygments.plugin.iter_entry_points
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - pip._vendor.rich.progress.TimeRemainingColumn.__init__
    - pip._vendor.rich.rule.Rule.__init__
    - entrypoint.load
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - progress
    - task_id
    - update_period
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: pip._vendor.rich.progress._TrackThread.__init__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 2
    functionsReached:
    - <builtin>.super
    - threading.Event
    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: 75
    functionName: pip._vendor.rich.progress._TrackThread.run
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - ipywidgets.Output
    - task._reset
    - pip._vendor.rich.live.Live.refresh
    - _progress.append
    - task.fields.update
    - typing.NamedTuple.__init__
    - <builtin>.isinstance
    - <builtin>.len
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.progress.Progress.refresh
    - pip._vendor.rich.progress.Progress.advance
    - IPython.display.display
    - pip._vendor.rich.control.Control.__init__
    - warnings.warn
    - threading.Event.wait
    - pip._vendor.rich.progress.Progress.update
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30eac43910>
    argNames:
    - self
    - task_id
    - advance
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1501
    functionName: pip._vendor.rich.progress.Progress.advance
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 8
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - _progress.append
    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: 89
    functionName: pip._vendor.rich.progress._TrackThread.__enter__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - threading.Thread.start
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 93
    functionName: pip._vendor.rich.progress._TrackThread.__exit__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - threading.Event.set
    - threading.Thread.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: threading.Thread.join
    functionSourceFile: threading
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 15
    argDefaultValues:
    - <ast.Constant object at 0x7f30f19d47c0>
    - <ast.Constant object at 0x7f30f19d4790>
    - <ast.Constant object at 0x7f30f19d4760>
    - <ast.Constant object at 0x7f30f19d4730>
    - <ast.Constant object at 0x7f30f19d4700>
    - <ast.Constant object at 0x7f30f19d46d0>
    - <ast.Constant object at 0x7f30f19d46a0>
    - <ast.Constant object at 0x7f30f19d4670>
    - <ast.Constant object at 0x7f30f19d4640>
    - <ast.Constant object at 0x7f30f19d4610>
    - <ast.Constant object at 0x7f30f19d45e0>
    - <ast.Constant object at 0x7f30f19d45b0>
    - <ast.Constant object at 0x7f30f19d4580>
    - <ast.Constant object at 0x7f30f19d4550>
    argNames:
    - sequence
    - description
    - total
    - auto_refresh
    - console
    - transient
    - get_time
    - refresh_per_second
    - style
    - complete_style
    - finished_style
    - pulse_style
    - update_period
    - disable
    - show_speed
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 103
    functionName: pip._vendor.rich.progress.track
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.progress.TaskProgressColumn.__init__
    - <builtin>.isinstance
    - threading.RLock
    - pip._vendor.rich.progress.Progress.get_default_columns
    - pip._vendor.rich.progress.Progress.advance
    - pip._vendor.rich.progress.Progress.update
    - pip._vendor.rich.progress.Progress.start_task
    - pip._vendor.rich.live.Live.get_renderable
    - pip._vendor.rich.console.Group.__init__
    - pip._vendor.rich.live.Live.__init__
    - pip._vendor.rich.progress.Progress.get_renderable
    - table.add_row
    - pip._vendor.rich.progress.Progress.refresh
    - <builtin>.float
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.progress.Progress.__init__
    - pip._vendor.rich.progress.Progress.track
    - pip._vendor.rich.progress.Progress.add_task
    - <builtin>.list
    - pip._vendor.rich.progress.BarColumn.__init__
    - <builtin>.super
    - ipywidgets.Output
    - task._reset
    - operator.length_hint
    - _progress.append
    - typing.NamedTuple.__init__
    - task.fields.update
    - <builtin>.len
    - pip._vendor.rich.progress.Progress.get_renderables
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - pip._vendor.rich.progress.TextColumn.__init__
    - typing.NewType
    - typing.cast
    - columns.extend
    - column.format
    - threading.Event
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.int
    - _column.get_table_column
    - pip._vendor.rich.progress._TrackThread.__init__
    - pip._vendor.rich.live_render.LiveRender.__init__
    - IPython.display.display
    - warnings.warn
    - get_console
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.progress.TimeRemainingColumn.__init__
    - pip._vendor.rich.table.Table.grid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa6480d0>
    - <ast.Constant object at 0x7f30fa6480a0>
    - <ast.Constant object at 0x7f30fa648070>
    - <ast.Constant object at 0x7f30fa648040>
    - <ast.Constant object at 0x7f30fa652fd0>
    - <ast.Constant object at 0x7f30fa652fa0>
    - <ast.Constant object at 0x7f30fa652f70>
    - <ast.Constant object at 0x7f30fa652f40>
    argNames:
    - self
    - text_format
    - text_format_no_percentage
    - style
    - justify
    - markup
    - highlighter
    - table_column
    - show_speed
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 702
    functionName: pip._vendor.rich.progress.TaskProgressColumn.__init__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 7
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: columns.extend
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9158ee0>
    - <ast.Constant object at 0x7f30f9158eb0>
    - <ast.Constant object at 0x7f30f9158e80>
    - <ast.Constant object at 0x7f30f9158e50>
    argNames:
    - self
    - sequence
    - total
    - task_id
    - description
    - update_period
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1180
    functionName: pip._vendor.rich.progress.Progress.track
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.progress.Progress.advance
    - pip._vendor.rich.progress.Progress.update
    - pip._vendor.rich.progress.Progress.start_task
    - pip._vendor.rich.progress.Progress.refresh
    - <builtin>.float
    - pip._vendor.rich.progress.Progress.add_task
    - <builtin>.super
    - ipywidgets.Output
    - task._reset
    - operator.length_hint
    - _progress.append
    - typing.NamedTuple.__init__
    - task.fields.update
    - <builtin>.len
    - ipywidgets.Output.clear_output
    - typing.NewType
    - threading.Event
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.int
    - pip._vendor.rich.progress._TrackThread.__init__
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd810ee0>
    argNames:
    - self
    - handle
    - progress
    - task
    - close_handle
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 176
    functionName: pip._vendor.rich.progress._Reader.__init__
    functionSourceFile: pip._vendor.rich.progress
    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: 0
    functionLinenumber: 189
    functionName: pip._vendor.rich.progress._Reader.__enter__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 193
    functionName: pip._vendor.rich.progress._Reader.__exit__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.progress._Reader.close
    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: 0
    functionLinenumber: 256
    functionName: pip._vendor.rich.progress._Reader.close
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 201
    functionName: pip._vendor.rich.progress._Reader.__iter__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 204
    functionName: pip._vendor.rich.progress._Reader.__next__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - _progress.append
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.progress.Progress.advance
    - <builtin>.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 210
    functionName: pip._vendor.rich.progress._Reader.closed
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 213
    functionName: pip._vendor.rich.progress._Reader.fileno
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 216
    functionName: pip._vendor.rich.progress._Reader.isatty
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 220
    functionName: pip._vendor.rich.progress._Reader.mode
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 224
    functionName: pip._vendor.rich.progress._Reader.name
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 227
    functionName: pip._vendor.rich.progress._Reader.readable
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 230
    functionName: pip._vendor.rich.progress._Reader.seekable
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 233
    functionName: pip._vendor.rich.progress._Reader.writable
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7f30e26a8a30>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 236
    functionName: pip._vendor.rich.progress._Reader.read
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - _progress.append
    - pip._vendor.rich.progress.Progress.advance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - b
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 241
    functionName: pip._vendor.rich.progress._Reader.readinto
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - _progress.append
    - pip._vendor.rich.progress.Progress.advance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7f30d6b87730>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 246
    functionName: pip._vendor.rich.progress._Reader.readline
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.len
    - _progress.append
    - pip._vendor.rich.progress.Progress.advance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7f30d6b87970>
    argNames:
    - self
    - hint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 251
    functionName: pip._vendor.rich.progress._Reader.readlines
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - _progress.append
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - <builtin>.len
    - <builtin>.map
    - pip._vendor.rich.progress.Progress.advance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4ab78b0>
    argNames:
    - self
    - offset
    - whence
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 261
    functionName: pip._vendor.rich.progress._Reader.seek
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - ipywidgets.Output
    - task._reset
    - pip._vendor.rich.live.Live.refresh
    - _progress.append
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - task.fields.update
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.progress.Progress.refresh
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.progress.Progress.update
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 266
    functionName: pip._vendor.rich.progress._Reader.tell
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 269
    functionName: pip._vendor.rich.progress._Reader.write
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - UnsupportedOperation
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - progress
    - reader
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 276
    functionName: pip._vendor.rich.progress._ReadContext.__init__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 2
    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: 6
    functionLinenumber: 280
    functionName: pip._vendor.rich.progress._ReadContext.__enter__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.live.Live.stop
    - <builtin>.isinstance
    - pip._vendor.rich.file_proxy.FileProxy.__init__
    - pip._vendor.rich.live.Live.start
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.live.Live._enable_redirect_io
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - pip._vendor.rich.progress.Progress.start
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.live._RefreshThread.__init__
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    - ipywidgets.Output
    - <builtin>.super
    - typing.NamedTuple.__init__
    - ipywidgets.Output.clear_output
    - ipywidgets.Output.close
    - typing.cast
    - pip._vendor.rich.ansi.AnsiDecoder.__init__
    - threading.Thread.start
    - threading.Event
    - pip._vendor.rich.live.Live.refresh
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    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: 1157
    functionName: pip._vendor.rich.progress.Progress.start
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 2
    functionsReached:
    - pip._vendor.rich.live.Live.stop
    - <builtin>.isinstance
    - pip._vendor.rich.file_proxy.FileProxy.__init__
    - pip._vendor.rich.live.Live.start
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.live.Live._enable_redirect_io
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.live._RefreshThread.__init__
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    - ipywidgets.Output
    - <builtin>.super
    - typing.NamedTuple.__init__
    - ipywidgets.Output.clear_output
    - ipywidgets.Output.close
    - typing.cast
    - pip._vendor.rich.ansi.AnsiDecoder.__init__
    - threading.Thread.start
    - threading.Event
    - pip._vendor.rich.live.Live.refresh
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 284
    functionName: pip._vendor.rich.progress._ReadContext.__exit__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.progress.Progress.stop
    - ipywidgets.Output
    - pip._vendor.rich.live.Live.stop
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.isinstance
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - typing.NamedTuple.__init__
    - IPython.display.display
    - warnings.warn
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.control.Control.__init__
    - typing.cast
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    - ipywidgets.Output.close
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1162
    functionName: pip._vendor.rich.progress.Progress.stop
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 2
    functionsReached:
    - ipywidgets.Output
    - pip._vendor.rich.live.Live.stop
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.isinstance
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - typing.NamedTuple.__init__
    - IPython.display.display
    - warnings.warn
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.control.Control.__init__
    - typing.cast
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    - ipywidgets.Output.close
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 13
    argDefaultValues: []
    argNames:
    - file
    - total
    - description
    - auto_refresh
    - console
    - transient
    - get_time
    - refresh_per_second
    - style
    - complete_style
    - finished_style
    - pulse_style
    - disable
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 294
    functionName: pip._vendor.rich.progress.wrap_file
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.progress.TaskProgressColumn.__init__
    - <builtin>.isinstance
    - threading.RLock
    - pip._vendor.rich.progress.Progress.get_default_columns
    - pip._vendor.rich.progress.Progress.update
    - pip._vendor.rich.progress.Progress.start_task
    - pip._vendor.rich.progress._ReadContext.__init__
    - pip._vendor.rich.live.Live.get_renderable
    - pip._vendor.rich.console.Group.__init__
    - pip._vendor.rich.live.Live.__init__
    - pip._vendor.rich.progress.Progress.get_renderable
    - table.add_row
    - pip._vendor.rich.progress.Progress.refresh
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.progress.Progress.__init__
    - pip._vendor.rich.progress.Progress.add_task
    - <builtin>.list
    - pip._vendor.rich.progress.BarColumn.__init__
    - <builtin>.super
    - ipywidgets.Output
    - task._reset
    - _progress.append
    - task.fields.update
    - typing.NamedTuple.__init__
    - pip._vendor.rich.progress._Reader.__init__
    - <builtin>.len
    - pip._vendor.rich.progress.Progress.get_renderables
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.progress.Progress.wrap_file
    - pip._vendor.rich.progress.TextColumn.__init__
    - typing.NewType
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - typing.cast
    - columns.extend
    - column.format
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.int
    - _column.get_table_column
    - pip._vendor.rich.live_render.LiveRender.__init__
    - IPython.display.display
    - warnings.warn
    - get_console
    - pip._vendor.rich.progress.DownloadColumn.__init__
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.progress.TimeRemainingColumn.__init__
    - pip._vendor.rich.table.Table.grid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f915b9d0>
    argNames:
    - self
    - file
    - total
    - task_id
    - description
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1221
    functionName: pip._vendor.rich.progress.Progress.wrap_file
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.progress.Progress.update
    - pip._vendor.rich.progress.Progress.start_task
    - pip._vendor.rich.progress.Progress.refresh
    - pip._vendor.rich.progress.Progress.add_task
    - ipywidgets.Output
    - task._reset
    - _progress.append
    - task.fields.update
    - typing.NamedTuple.__init__
    - pip._vendor.rich.progress._Reader.__init__
    - ipywidgets.Output.clear_output
    - typing.NewType
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.int
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 18
    argDefaultValues:
    - <ast.Constant object at 0x7f30ec3c46d0>
    - <ast.UnaryOp object at 0x7f30ec3c46a0>
    - <ast.Constant object at 0x7f30ec3c4640>
    - <ast.Constant object at 0x7f30ec3c4610>
    - <ast.Constant object at 0x7f30ec3c45e0>
    argNames:
    - file
    - mode
    - buffering
    - encoding
    - errors
    - newline
    - total
    - description
    - auto_refresh
    - console
    - transient
    - get_time
    - refresh_per_second
    - style
    - complete_style
    - finished_style
    - pulse_style
    - disable
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 409
    functionName: pip._vendor.rich.progress.open
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.progress.TaskProgressColumn.__init__
    - <builtin>.isinstance
    - threading.RLock
    - pip._vendor.rich.progress.Progress.get_default_columns
    - pip._vendor.rich.progress.Progress.update
    - pip._vendor.rich.progress.Progress.start_task
    - io.open
    - pip._vendor.rich.progress._ReadContext.__init__
    - pip._vendor.rich.live.Live.get_renderable
    - pip._vendor.rich.console.Group.__init__
    - pip._vendor.rich.live.Live.__init__
    - pip._vendor.rich.progress.Progress.get_renderable
    - table.add_row
    - pip._vendor.rich.progress.Progress.refresh
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.progress.Progress.__init__
    - pip._vendor.rich.progress.Progress.add_task
    - io.TextIOWrapper
    - <builtin>.list
    - pip._vendor.rich.progress.BarColumn.__init__
    - <builtin>.super
    - ipywidgets.Output
    - task._reset
    - _progress.append
    - task.fields.update
    - typing.NamedTuple.__init__
    - pip._vendor.rich.progress._Reader.__init__
    - <builtin>.len
    - pip._vendor.rich.progress.Progress.get_renderables
    - <builtin>.sorted
    - pip._vendor.rich.table.Table.__init__
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - pip._vendor.rich.progress.TextColumn.__init__
    - typing.NewType
    - typing.cast
    - columns.extend
    - column.format
    - pip._vendor.rich.progress.Progress.open
    - os.stat
    - pip._vendor.rich.live.Live.refresh
    - _column.get_table_column
    - <builtin>.int
    - pip._vendor.rich.live_render.LiveRender.__init__
    - IPython.display.display
    - warnings.warn
    - get_console
    - pip._vendor.rich.progress.DownloadColumn.__init__
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.progress.TimeRemainingColumn.__init__
    - pip._vendor.rich.table.Table.grid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 3
    IfCount: 8
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f30eac2ed60>
    - <ast.UnaryOp object at 0x7f30eac2ed30>
    - <ast.Constant object at 0x7f30eac2ecd0>
    - <ast.Constant object at 0x7f30eac2eca0>
    - <ast.Constant object at 0x7f30eac2ec70>
    argNames:
    - self
    - file
    - mode
    - buffering
    - encoding
    - errors
    - newline
    - total
    - task_id
    - description
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1295
    functionName: pip._vendor.rich.progress.Progress.open
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.progress.Progress.update
    - pip._vendor.rich.progress.Progress.start_task
    - io.open
    - pip._vendor.rich.progress.Progress.refresh
    - pip._vendor.rich.progress.Progress.add_task
    - io.TextIOWrapper
    - ipywidgets.Output
    - task._reset
    - _progress.append
    - task.fields.update
    - typing.NamedTuple.__init__
    - pip._vendor.rich.progress._Reader.__init__
    - <builtin>.sorted
    - ipywidgets.Output.clear_output
    - typing.NewType
    - os.stat
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.int
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: 505
    functionName: pip._vendor.rich.progress.ProgressColumn.get_table_column
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 509
    functionName: pip._vendor.rich.progress.ProgressColumn.__call__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - operator.attrgetter
    - text_format.format
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - match.groups
    - <builtin>.str
    - <builtin>.hash
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.filesize.decimal
    - text.apply_meta
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.table.Table.grid
    - tag.name.startswith
    - RE_TAGS.finditer
    - marshal.dumps
    - table.add_row
    - <builtin>.enumerate
    - datetime.timedelta
    - open_tag.parameters.strip
    - task.get_time
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - match.span
    - pip._vendor.rich.progress.BarColumn.render
    - RE_COLOR.match
    - <builtin>.divmod
    - <builtin>.max
    - <builtin>.isinstance
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.from_markup
    - ANSI_COLOR_NAMES.get
    - pip._vendor.rich.progress.TextColumn.render
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.table.Table.add_column
    - color_match.groups
    - <builtin>.list
    - pip._vendor.rich.progress.TaskProgressColumn.render_speed
    - pip._vendor.rich.progress.ProgressColumn.render
    - pip._vendor.rich.progress.TimeRemainingColumn.render
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - pip._vendor.rich.filesize.pick_unit_and_suffix
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.progress.DownloadColumn.render
    - <builtin>.all
    - color_rgb.split
    - pip._vendor.rich.text.Text.assemble
    - pip._vendor.rich.progress.TransferSpeedColumn.render
    - pip._vendor.rich.progress.FileSizeColumn.render
    - plain_text.replace
    - pip._vendor.rich.progress.TaskProgressColumn.render
    - style.strip
    - pip._vendor.rich.markup._parse
    - variants.get
    - style_definition.split
    - style_definition.strip
    - pip._vendor.rich.progress_bar.ProgressBar.__init__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - random.randint
    - pip._vendor.rich.markup.render
    - pip._vendor.rich.spinner.Spinner.render
    - <builtin>.next
    - tag_text.partition
    - pip._vendor.rich.progress.TimeElapsedColumn.render
    - RE_HANDLER.match
    - pip._vendor.rich.filesize._to_str
    - <builtin>.reversed
    - pip._vendor.rich.progress.SpinnerColumn.render
    - style_stack.pop
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: task.get_time
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 623
    functionName: pip._vendor.rich.progress.TextColumn.render
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 533
    functionName: pip._vendor.rich.progress.ProgressColumn.render
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 782
    functionName: pip._vendor.rich.progress.TimeRemainingColumn.render
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    functionsReached:
    - <builtin>.int
    - <builtin>.len
    - <builtin>.divmod
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 595
    functionName: pip._vendor.rich.progress.SpinnerColumn.render
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.text.Text.assemble
    - <builtin>.isinstance
    - <builtin>.int
    - pip._vendor.rich.padding.Padding.unpack
    - <builtin>.len
    - table.add_row
    - text.apply_meta
    - pip._vendor.rich.table.Table.__init__
    - task.get_time
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.spinner.Spinner.render
    - pip._vendor.rich.control.strip_control_codes
    - typing.cast
    - <builtin>.list
    - pip._vendor.rich.table.Table.grid
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 906
    functionName: pip._vendor.rich.progress.TransferSpeedColumn.render
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.filesize._to_str
    - <builtin>.int
    - <builtin>.len
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.enumerate
    - pip._vendor.rich.filesize.decimal
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 661
    functionName: pip._vendor.rich.progress.BarColumn.render
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    functionsReached:
    - <builtin>.max
    - task.get_time
    - pip._vendor.rich.progress_bar.ProgressBar.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 812
    functionName: pip._vendor.rich.progress.FileSizeColumn.render
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    functionsReached:
    - pip._vendor.rich.filesize._to_str
    - <builtin>.int
    - <builtin>.len
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.enumerate
    - pip._vendor.rich.filesize.decimal
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 867
    functionName: pip._vendor.rich.progress.DownloadColumn.render
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    functionsReached:
    - <builtin>.int
    - <builtin>.len
    - <builtin>.enumerate
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.filesize.pick_unit_and_suffix
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 679
    functionName: pip._vendor.rich.progress.TimeElapsedColumn.render
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    functionsReached:
    - <builtin>.int
    - <builtin>.str
    - <builtin>.len
    - datetime.timedelta
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 745
    functionName: pip._vendor.rich.progress.TaskProgressColumn.render
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - text_format.format
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.progress.TaskProgressColumn.render_speed
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - pip._vendor.rich.filesize.pick_unit_and_suffix
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.progress.ProgressColumn
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ec3d3790>
    argNames:
    - self
    - renderable
    - table_column
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 544
    functionName: pip._vendor.rich.progress.RenderableColumn.__init__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 550
    functionName: pip._vendor.rich.progress.RenderableColumn.render
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    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 0x7f30ec3b05b0>
    - <ast.Constant object at 0x7f30ec3b0580>
    argNames:
    - self
    - spinner_name
    - spinner_style
    - speed
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 580
    functionName: pip._vendor.rich.progress.SpinnerColumn.set_spinner
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.spinner.Spinner.__init__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - typing.cast
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f30eb747a00>
    - <ast.Constant object at 0x7f30eb7479d0>
    - <ast.Constant object at 0x7f30eb7479a0>
    - <ast.Constant object at 0x7f30eb747970>
    - <ast.Constant object at 0x7f30eb747940>
    - <ast.Constant object at 0x7f30eb747910>
    - <ast.Constant object at 0x7f30eb7478e0>
    - <ast.Constant object at 0x7f30eb7478b0>
    - <ast.Constant object at 0x7f30eb747880>
    argNames:
    - self
    - total
    - completed
    - width
    - pulse
    - style
    - complete_style
    - finished_style
    - pulse_style
    - animation_time
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 33
    functionName: pip._vendor.rich.progress_bar.ProgressBar.__init__
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - speed
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 726
    functionName: pip._vendor.rich.progress.TaskProgressColumn.render_speed
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 2
    functionsReached:
    - <builtin>.int
    - <builtin>.len
    - <builtin>.enumerate
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.filesize.pick_unit_and_suffix
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - size
    - suffixes
    - base
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: pip._vendor.rich.filesize.pick_unit_and_suffix
    functionSourceFile: pip._vendor.rich.filesize
    functionUses: 4
    functionsReached:
    - <builtin>.enumerate
    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_format.format
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - size
    - precision
    - separator
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 53
    functionName: pip._vendor.rich.filesize.decimal
    functionSourceFile: pip._vendor.rich.filesize
    functionUses: 4
    functionsReached:
    - pip._vendor.rich.filesize._to_str
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 821
    functionName: pip._vendor.rich.progress.TotalFileSizeColumn.render
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.filesize._to_str
    - <builtin>.int
    - <builtin>.len
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.enumerate
    - pip._vendor.rich.filesize.decimal
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa65d040>
    - <ast.Constant object at 0x7f30fa660fd0>
    argNames:
    - self
    - separator
    - table_column
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 839
    functionName: pip._vendor.rich.progress.MofNCompleteColumn.__init__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 843
    functionName: pip._vendor.rich.progress.MofNCompleteColumn.render
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - <builtin>.str
    - <builtin>.len
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.progress.Task
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - dataclasses.field
    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: pip._vendor.rich.progress.Task.<lambda1>
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - collections.deque
    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: 972
    functionName: pip._vendor.rich.progress.Task.get_time
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 1
    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: 977
    functionName: pip._vendor.rich.progress.Task.started
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    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: 0
    functionLinenumber: 982
    functionName: pip._vendor.rich.progress.Task.remaining
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    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: 1
    functionLinenumber: 989
    functionName: pip._vendor.rich.progress.Task.elapsed
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.progress.Task.get_time
    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: 998
    functionName: pip._vendor.rich.progress.Task.finished
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    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: 1
    functionLinenumber: 1003
    functionName: pip._vendor.rich.progress.Task.percentage
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1012
    functionName: pip._vendor.rich.progress.Task.speed
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - <builtin>.sum
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1030
    functionName: pip._vendor.rich.progress.Task.time_remaining
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - math.ceil
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1043
    functionName: pip._vendor.rich.progress.Task._reset
    functionSourceFile: pip._vendor.rich.progress
    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:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1103
    functionName: pip._vendor.rich.progress.Progress.get_default_columns
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 6
    functionsReached:
    - <builtin>.super
    - pip._vendor.rich.progress.TaskProgressColumn.__init__
    - pip._vendor.rich.progress.TextColumn.__init__
    - pip._vendor.rich.progress.TimeRemainingColumn.__init__
    - pip._vendor.rich.progress.BarColumn.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1134
    functionName: pip._vendor.rich.progress.Progress.console
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1138
    functionName: pip._vendor.rich.progress.Progress.tasks
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - <builtin>.list
    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: 1144
    functionName: pip._vendor.rich.progress.Progress.task_ids
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - <builtin>.list
    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: 1
    functionLinenumber: 1150
    functionName: pip._vendor.rich.progress.Progress.finished
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - <builtin>.all
    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: 6
    functionLinenumber: 1168
    functionName: pip._vendor.rich.progress.Progress.__enter__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.live.Live.stop
    - <builtin>.isinstance
    - pip._vendor.rich.file_proxy.FileProxy.__init__
    - pip._vendor.rich.live.Live.start
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.live.Live._enable_redirect_io
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - pip._vendor.rich.progress.Progress.start
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.live._RefreshThread.__init__
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    - ipywidgets.Output
    - <builtin>.super
    - typing.NamedTuple.__init__
    - ipywidgets.Output.clear_output
    - ipywidgets.Output.close
    - typing.cast
    - pip._vendor.rich.ansi.AnsiDecoder.__init__
    - threading.Thread.start
    - threading.Event
    - pip._vendor.rich.live.Live.refresh
    - IPython.display.display
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1172
    functionName: pip._vendor.rich.progress.Progress.__exit__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.progress.Progress.stop
    - ipywidgets.Output
    - pip._vendor.rich.live.Live.stop
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.isinstance
    - pip._vendor.rich.live_render.LiveRender.restore_cursor
    - typing.NamedTuple.__init__
    - IPython.display.display
    - warnings.warn
    - ipywidgets.Output.clear_output
    - pip._vendor.rich.live._RefreshThread.stop
    - pip._vendor.rich.control.Control.__init__
    - typing.cast
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    - ipywidgets.Output.close
    - threading.Event.set
    - pip._vendor.rich.live.Live._disable_redirect_io
    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: operator.length_hint
    functionSourceFile: operator
    functionUses: 2
    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: 3
    functionLinenumber: 1531
    functionName: pip._vendor.rich.progress.Progress.refresh
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 12
    functionsReached:
    - ipywidgets.Output
    - <builtin>.isinstance
    - pip._vendor.rich.live.Live.refresh
    - typing.NamedTuple.__init__
    - IPython.display.display
    - ipywidgets.Output.clear_output
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    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: pip._vendor.rich.progress.Progress
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1372
    functionName: pip._vendor.rich.progress.Progress.start_task
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1386
    functionName: pip._vendor.rich.progress.Progress.stop_task
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: task._reset
    functionSourceFile: <builtin>
    functionUses: 11
    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: task.fields.update
    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: _progress.append
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - task_id
    - start
    - total
    - completed
    - visible
    - description
    - fields
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1462
    functionName: pip._vendor.rich.progress.Progress.reset
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - ipywidgets.Output
    - task._reset
    - pip._vendor.rich.live.Live.refresh
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - IPython.display.display
    - pip._vendor.rich.progress.Progress.refresh
    - ipywidgets.Output.clear_output
    - warnings.warn
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.live_render.LiveRender.set_renderable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1541
    functionName: pip._vendor.rich.progress.Progress.get_renderables
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 16
    functionsReached:
    - <builtin>.isinstance
    - _column.get_table_column
    - <builtin>.len
    - table.add_row
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - column.format
    - pip._vendor.rich.padding.Padding.unpack
    - typing.cast
    - <builtin>.list
    - pip._vendor.rich.table.Table.grid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tasks
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1546
    functionName: pip._vendor.rich.progress.Progress.make_tasks_table
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 17
    functionsReached:
    - <builtin>.isinstance
    - _column.get_table_column
    - <builtin>.len
    - table.add_row
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - column.format
    - pip._vendor.rich.padding.Padding.unpack
    - typing.cast
    - <builtin>.list
    - pip._vendor.rich.table.Table.grid
    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: _column.get_table_column
    functionSourceFile: <builtin>
    functionUses: 18
    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: column.format
    functionSourceFile: <builtin>
    functionUses: 18
    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: 7
    functionLinenumber: 1579
    functionName: pip._vendor.rich.progress.Progress.__rich__
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.console.Group.__init__
    - <builtin>.isinstance
    - _column.get_table_column
    - pip._vendor.rich.progress.Progress.get_renderable
    - <builtin>.len
    - pip._vendor.rich.progress.Progress.get_renderables
    - table.add_row
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.progress.Progress.make_tasks_table
    - column.format
    - pip._vendor.rich.padding.Padding.unpack
    - typing.cast
    - <builtin>.list
    - pip._vendor.rich.table.Table.grid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - task_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1627
    functionName: pip._vendor.rich.progress.Progress.remove_task
    functionSourceFile: pip._vendor.rich.progress
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.filesize
    functionSourceFile: pip._vendor.rich.filesize
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 5
    argDefaultValues: []
    argNames:
    - size
    - suffixes
    - base
    - precision
    - separator
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 19
    functionName: pip._vendor.rich.filesize._to_str
    functionSourceFile: pip._vendor.rich.filesize
    functionUses: 5
    functionsReached:
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 7
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.progress_bar
    functionSourceFile: pip._vendor.rich.progress_bar
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - dataclasses.is_dataclass
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - time.sleep
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - pip._vendor.rich.console.Console.control
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - lines.isdigit
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.control.Control.show_cursor
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - pip._vendor.rich.console.Console.show_cursor
    - operator.itemgetter
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - style_definition.strip
    - pip._vendor.rich.text.Text.render
    - pip._vendor.rich.segment.Segment.apply_style
    - os.getenv
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - pip._vendor.rich.progress_bar.ProgressBar.__init__
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.progress_bar.ProgressBar.update
    - pip._vendor.rich.console.NewLine.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 57
    functionName: pip._vendor.rich.progress_bar.ProgressBar.__repr__
    functionSourceFile: pip._vendor.rich.progress_bar
    functionUses: 0
    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: 1
    functionLinenumber: 61
    functionName: pip._vendor.rich.progress_bar.ProgressBar.percentage_completed
    functionSourceFile: pip._vendor.rich.progress_bar
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - <builtin>.min
    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: pip._vendor.rich.progress_bar.ProgressBar
    functionSourceFile: pip._vendor.rich.progress_bar
    functionUses: 0
    functionsReached:
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36cac70>
    argNames:
    - self
    - fore_style
    - back_style
    - color_system
    - no_color
    - ascii
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 70
    functionName: pip._vendor.rich.progress_bar.ProgressBar._get_pulse_segments
    functionSourceFile: pip._vendor.rich.progress_bar
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.color.Color.from_triplet
    - pip._vendor.rich.color.blend_rgb
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - fore_style.color.get_truecolor
    - math.cos
    - <builtin>.int
    - back_style.color.get_truecolor
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    - <builtin>.range
    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: fore_style.color.get_truecolor
    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: back_style.color.get_truecolor
    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: math.cos
    functionSourceFile: math
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a81c0>
    argNames:
    - self
    - completed
    - total
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 116
    functionName: pip._vendor.rich.progress_bar.ProgressBar.update
    functionSourceFile: pip._vendor.rich.progress_bar
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa7cd0>
    argNames:
    - self
    - console
    - width
    - ascii
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 126
    functionName: pip._vendor.rich.progress_bar.ProgressBar._render_pulse
    functionSourceFile: pip._vendor.rich.progress_bar
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - console.get_style
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.color.Color.from_triplet
    - pip._vendor.rich.color.blend_rgb
    - typing.NamedTuple.__init__
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - fore_style.color.get_truecolor
    - math.cos
    - <builtin>.int
    - back_style.color.get_truecolor
    - time.monotonic
    - RE_COLOR.match
    - <builtin>.all
    - pip._vendor.rich.progress_bar.ProgressBar._get_pulse_segments
    - color_rgb.split
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 5
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 156
    functionName: pip._vendor.rich.progress_bar.ProgressBar.__rich_console__
    functionSourceFile: pip._vendor.rich.progress_bar
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - <builtin>.min
    - console.get_style
    - pip._vendor.rich.progress_bar.ProgressBar._render_pulse
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.color.Color.from_triplet
    - typing.NamedTuple.__init__
    - pip._vendor.rich.color.blend_rgb
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - fore_style.color.get_truecolor
    - math.cos
    - <builtin>.int
    - color_rgb.split
    - back_style.color.get_truecolor
    - time.monotonic
    - RE_COLOR.match
    - <builtin>.all
    - pip._vendor.rich.progress_bar.ProgressBar._get_pulse_segments
    - <builtin>.max
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 201
    functionName: pip._vendor.rich.progress_bar.ProgressBar.__rich_measure__
    functionSourceFile: pip._vendor.rich.progress_bar
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.cli.req_command
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: pip._internal.cli.req_command._create_truststore_ssl_context
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 15
    functionsReached:
    - logger.warning
    linkageType: pythonLinkage
    raised:
    - CommandError
    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: 74
    functionName: pip._internal.cli.req_command.SessionCommandMixin.__init__
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 15
    functionsReached:
    - index_urls.append
    - <builtin>.getattr
    - index_urls.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: index_urls.append
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 92
    functionName: pip._internal.cli.req_command.SessionCommandMixin.get_default_session
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 7
    functionsReached:
    - val.lower
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - pip._internal.utils.glibc.libc_ver
    - <builtin>.isinstance
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._vendor.distro.name
    - pip._internal.network.session.PipSession.__init__
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.compat.has_tls
    - netloc.count
    - gnu_libc_version.split
    - data.setdefault
    - pip._internal.network.session.user_agent
    - <builtin>.dict
    - os.environ.get
    - contextlib.ExitStack.enter_context
    - pip._internal.utils.glibc.glibc_version_string
    - <builtin>.str
    - pip._internal.metadata.get_default_environment
    - pip._vendor.requests.sessions.Session.mount
    - pip._internal.cli.command_context.CommandContextMixIn.enter_context
    - platform.python_implementation
    - index_urls.append
    - rustc_output.startswith
    - pip._internal.utils.misc.parse_netloc
    - pip._vendor.distro.codename
    - os.path.isabs
    - platform.release
    - os.path.join
    - pip._internal.network.cache.SafeFileCache.__init__
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - index_urls.extend
    - collections.OrderedDict.pop
    - <builtin>.super
    - rustc_output.split
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - <builtin>.any
    - os.confstr
    - pip._vendor.distro.version
    - subprocess.check_output
    - <builtin>.len
    - pip._internal.metadata.select_backend
    - ctypes.CDLL
    - platform.machine
    - platform.mac_ver
    - pip._internal.network.session.looks_like_ci
    - <builtin>.zip
    - pip._internal.utils.misc.build_url_from_netloc
    - json.dumps
    - platform.system
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - platform.python_version
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - shutil.which
    - version_str.decode
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - <builtin>.filter
    - logger.info
    - <builtin>.getattr
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.network.session.PipSession.add_trusted_host
    - sys.platform.startswith
    - urllib.parse.urlparse
    - contextlib.suppress
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b5310>
    - <ast.Constant object at 0x7f30fa5b5b50>
    - <ast.Constant object at 0x7f30fa5b5790>
    argNames:
    - self
    - options
    - retries
    - timeout
    - fallback_to_certifi
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 102
    functionName: pip._internal.cli.req_command.SessionCommandMixin._build_session
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 14
    functionsReached:
    - val.lower
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - pip._internal.utils.glibc.libc_ver
    - <builtin>.isinstance
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._vendor.distro.name
    - pip._internal.network.session.PipSession.__init__
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.compat.has_tls
    - netloc.count
    - data.setdefault
    - pip._internal.network.session.user_agent
    - <builtin>.dict
    - os.environ.get
    - pip._internal.utils.glibc.glibc_version_string
    - <builtin>.str
    - pip._internal.metadata.get_default_environment
    - pip._vendor.requests.sessions.Session.mount
    - platform.python_implementation
    - index_urls.append
    - rustc_output.startswith
    - pip._internal.utils.misc.parse_netloc
    - pip._vendor.distro.codename
    - os.path.isabs
    - platform.release
    - os.path.join
    - pip._internal.network.cache.SafeFileCache.__init__
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - index_urls.extend
    - collections.OrderedDict.pop
    - <builtin>.super
    - rustc_output.split
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - <builtin>.any
    - os.confstr
    - pip._vendor.distro.version
    - subprocess.check_output
    - <builtin>.len
    - pip._internal.metadata.select_backend
    - ctypes.CDLL
    - platform.machine
    - platform.mac_ver
    - pip._internal.network.session.looks_like_ci
    - <builtin>.zip
    - pip._internal.utils.misc.build_url_from_netloc
    - json.dumps
    - platform.system
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - platform.python_version
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - shutil.which
    - version_str.decode
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - <builtin>.filter
    - logger.info
    - <builtin>.getattr
    - pip._internal.network.session.PipSession.add_trusted_host
    - sys.platform.startswith
    - gnu_libc_version.split
    - urllib.parse.urlparse
    - contextlib.suppress
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 164
    functionName: pip._internal.cli.req_command.IndexGroupCommand.handle_pip_version_check
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 0
    functionsReached:
    - typing.cast.Environment.default
    - os.path.lexists
    - pip._internal.network.session.user_agent
    - <builtin>.dict
    - itertools.dropwhile
    - pip._internal.metadata.get_default_environment
    - <builtin>.str
    - index_urls.append
    - pip._internal.utils.filesystem.adjacent_tmp_file
    - pip._internal.utils.misc.parse_netloc
    - <builtin>.tuple
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - index_urls.extend
    - rustc_output.split
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - os.confstr
    - pip._internal.metadata.select_backend
    - os.access
    - ctypes.CDLL
    - platform.mac_ver
    - <builtin>.zip
    - tempfile.NamedTemporaryFile
    - os.stat
    - pip._internal.self_outdated_check._get_statefile_name
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - <builtin>.filter
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.network.session.PipSession.add_trusted_host
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - pip._internal.network.session.PipSession.__init__
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - data.setdefault
    - part.startswith
    - platform.python_implementation
    - pip._vendor.requests.sessions.Session.mount
    - parts.append
    - os.path.join
    - <builtin>.min
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.super
    - pip._internal.self_outdated_check._self_version_check_logic
    - pip._internal.self_outdated_check.SelfCheckState.set
    - subprocess.check_output
    - pip._internal.network.session.looks_like_ci
    - match.group
    - os.path.dirname
    - warnings.warn
    - key.encode
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.utils.misc.ensure_dir
    - pip._internal.utils.glibc.libc_ver
    - <builtin>.isinstance
    - datetime.datetime.now
    - <builtin>.bool
    - pip._vendor.distro.name
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.compat.has_tls
    - pip._internal.self_outdated_check.SelfCheckState.__init__
    - os.fstat
    - version.lower
    - os.environ.get
    - part.zfill
    - text.encode
    - rustc_output.startswith
    - os.path.isabs
    - platform.release
    - pip._internal.network.cache.SafeFileCache.__init__
    - <builtin>.list
    - collections.OrderedDict.pop
    - os.makedirs
    - pip._internal.utils.compat.get_path_uid
    - <builtin>.any
    - os.close
    - pip._vendor.distro.version
    - typing.cast.flush
    - <builtin>.len
    - platform.machine
    - os.geteuid
    - json.dumps
    - pip._internal.utils.filesystem.check_path_owner
    - typing.cast
    - platform.system
    - pip._internal.self_outdated_check.pip_self_version_check
    - platform.python_version
    - parts.pop
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - os.fsync
    - pip._vendor.packaging.version._cmpkey
    - shutil.which
    - <builtin>.int
    - _local_version_separators.split
    - part.isdigit
    - _legacy_version_replacement_map.get
    - pip._internal.self_outdated_check.SelfCheckState.get
    - <builtin>.open
    - pip._internal.self_outdated_check.was_installed_by_pip
    - <builtin>.getattr
    - sys.platform.startswith
    - contextlib.suppress
    - pip._vendor.distro.codename
    - json.load
    - val.lower
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - f.write
    - logger.debug
    - netloc.count
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - pip._internal.utils.glibc.glibc_version_string
    - os.open
    - letter.lower
    - typing.cast.fileno
    - current_time.isoformat
    - os.path.islink
    - pip._vendor.packaging.version._parse_local_version
    - hashlib.sha224
    - pip._internal.utils.misc.build_url_from_netloc
    - isodate.replace
    - pip._internal.utils.misc.strtobool
    - pip._internal.self_outdated_check._convert_date
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - functools.partial
    - version_str.decode
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - logger.info
    - gnu_libc_version.split
    - datetime.datetime.fromisoformat
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 198
    functionName: pip._internal.cli.req_command.warn_if_run_as_root
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 3
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - os.getuid
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - logger.warning
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    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: 0
    functionLinenumber: 228
    functionName: pip._internal.cli.req_command.with_cleanup
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - registry
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 233
    functionName: pip._internal.cli.req_command.with_cleanup.configure_tempdir_registry
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 1
    functionsReached:
    - registry.set_delete
    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: registry.set_delete
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 18
    functionLinenumber: 237
    functionName: pip._internal.cli.req_command.with_cleanup.wrapper
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 0
    functionsReached:
    - pip._internal.req.constructors._get_url_from_path
    - <builtin>.sum
    - urllib.parse.quote.fileno
    - pip._vendor.rich._pick.pick_bool
    - pathlib.Path.read_text
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - pip._vendor.packaging.tags._version_nodot
    - link.startswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - parser.get_default_values
    - optparse.OptionParser
    - <builtin>.dict
    - parser.parse_args
    - req.ensure_pristine_source_checkout
    - string_network.split
    - itertools.chain
    - index_urls.append
    - tar._extract_member
    - urllib.parse.urlparse.netloc.split
    - err.splitlines
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - password.encode
    - pip._vendor.rich._wrap.words
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - pip._vendor.rich.containers.Lines.justify
    - pip._internal.wheel_builder._contains_egg_info
    - output.pop
    - filename.endswith
    - jupyter_columns.isdigit
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - merged_setting.items
    - pip._internal.req.req_file.get_file_content
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - pip._internal.cache.Cache._get_cache_path_parts
    - logger.log
    - requirement_set.get_requirement
    - pip._internal.cache.WheelCache.get_ephem_path_for_link
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - scheme.lower
    - urllib.parse.urlparse._replace
    - backend.build_editable
    - urllib.parse.quote
    - old_v.name.startswith
    - pip._vendor.rich.control.Control.__init__
    - pip._internal.utils.unpacking.zip_item_is_executable
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._internal.locations._looks_like_debian_scheme
    - pip._internal.commands.install.get_lib_location_guesses
    - pip._internal.models.direct_url.ArchiveInfo._from_dict
    - collections.abc.MutableMapping.startswith
    - columns.isdigit
    - proc.wait
    - abi.lower
    - re_word.match
    - pip._vendor.rich.json.JSON.from_data
    - collections.abc.MutableMapping.decode
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - distutils.dist.Distribution.get_option_dict
    - path.lstrip
    - proc.communicate
    - pip._internal.index.package_finder.PackageFinder.__init__
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - reqs_to_build.append
    - pip._internal.wheel_builder._clean_one_legacy
    - pip._vendor.packaging.markers.format_full_version
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - part.startswith
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - no_proxy.replace
    - pip._internal.req.req_install.InstallRequirement.__init__
    - requirement.install
    - line.rstrip_end
    - pip._internal.models.installation_report.InstallationReport.to_dict
    - platform.python_implementation
    - pip._internal.operations.build.wheel_legacy.format_command_result
    - urllib.request.getproxies.get
    - ZONE_ID_RE.search
    - fn.endswith
    - pip._internal.models.installation_report.InstallationReport._install_req_to_dict
    - pip._vendor.rich.text.Text.join.iter_text
    - scheme.update
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - tar.getmembers
    - abc.ABC.background_color.lower
    - lib_dir_list.append
    - os.chmod
    - INTERPRETER_SHORT_NAMES.get
    - member.issym
    - ast.literal_eval
    - pip._internal.utils.filesystem._test_writable_dir_win
    - <builtin>.map
    - pip._internal.models.direct_url._get_required
    - env.update
    - pip._internal.req.req_file.parse_requirements
    - registry.set_delete
    - tar.close
    - urllib.parse.quote.upper
    - <builtin>.chr
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._vendor.requests.sessions.merge_setting
    - resolver.resolve
    - re.finditer
    - cookie.value.startswith
    - pip._vendor.requests.utils.set_environ
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.max
    - shlex.quote
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - f.read
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - validator.match
    - original_word.lower
    - pip._internal.cli.cmdoptions.check_dist_restriction
    - ENV_VAR_RE.findall
    - part.zfill
    - path.endswith
    - pip._internal.locations._distutils.distutils_scheme
    - filename.lower
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - s.encode
    - uninstalled_pathset.commit
    - collections.abc.MutableMapping.upper
    - pip._internal.req.req_file.handle_requirement_line
    - pip._internal.req.req_install._has_option
    - os.makedirs
    - pip._internal.utils.unpacking.untar_file
    - collections.OrderedDict.pop
    - match.end
    - pip._internal.req.req_file.join_lines
    - pip._vendor.requests.cookies.merge_cookies
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._internal.models.link.Link._egg_fragment
    - mimetypes.guess_type
    - auth.split
    - pip._vendor.requests.utils.guess_filename
    - urllib.parse.urljoin.lower
    - args.append
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - request_hooks.get
    - history.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.requests.hooks.dispatch_hook
    - typing.cast
    - pip._internal.operations.build.build_tracker.BuildTracker.__init__
    - stat.S_ISREG
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - parts.pop
    - <builtin>.hex
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - part.isdigit
    - options.features_enabled.extend
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - color_rgb.split
    - urllib.parse.unquote
    - val.lower
    - result.groups
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - format_str.format
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.misc.write_output
    - IPV4_RE.match
    - pip._internal.cli.req_command.with_cleanup.configure_tempdir_registry
    - pip._internal.commands.wheel.WheelCommand.run
    - options.format_control.disallow_binaries
    - method.upper
    - re.match
    - shutil.copyfileobj
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - pip._internal.operations.check.check_install_conflicts.<lambda1>
    - typing.cast.Distribution.from_wheel
    - partially_downloaded_reqs.append
    - pip._internal.utils.virtualenv.virtualenv_no_global
    - pip._internal.operations.check.check_install_conflicts
    - kwargs.setdefault
    - pip._internal.operations.prepare.RequirementPreparer._get_linked_req_hashes
    - variants.get
    - pip._internal.utils.hashes.MissingHashes.__init__
    - inspect.isclass
    - m.group
    - pip._internal.network.utils.raise_for_status
    - pip._internal.req.constructors.install_req_from_editable
    - copy.copy
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - platform.lower
    - collections.abc.MutableMapping.seek
    - typing.cast.__rich_console__
    - urllib.parse.quote.lower
    - struct.pack
    - os.path.islink
    - pip._internal.models.scheme.Scheme.__init__
    - hooks.items
    - backend.get_requires_for_build_wheel
    - pip._internal.utils.deprecation.deprecated
    - urllib.parse.urlunsplit
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._internal.operations.check._simulate_installation_of
    - pip._internal.locations._log_context
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - pip._internal.operations.prepare.RequirementPreparer.__init__
    - pip._internal.operations.prepare.RequirementPreparer._prepare_linked_requirement
    - pip._internal.req.req_file.RequirementsFileParser._parse_and_recurse
    - http.cookiejar.Cookie
    - pip._internal.utils.filetypes.is_archive_file
    - platlib.replace
    - pip._vendor.packaging.tags.Tag.__init__
    - prefix.lower
    - pip._internal.utils.misc.HiddenText.__init__
    - pip._internal.models.direct_url.VcsInfo.__init__
    - uninstalled_pathset.rollback
    - pip._internal.req.req_file.get_line_parser
    - os.path.splitdrive
    - k.encode
    - collections.abc.MutableMapping.encode
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - parts.extend
    - shutil.copy
    - pip._vendor.rich.text.Text.__init__
    - link.is_existing_dir
    - req.link.splitext
    - typing.cast.Environment.default
    - tarfile.is_tarfile
    - pip._internal.utils.unpacking.is_within_directory
    - sysconfig.get_paths
    - threading.RLock
    - pip._internal.req.install_given_reqs
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.rich.style.Style.null
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - pip._internal.distributions.sdist.SourceDistribution._install_build_reqs
    - socket.inet_ntoa
    - pip._internal.req.req_file.build_parser
    - build_failures.append
    - pip._vendor.rich.text.Text.split.flatten_spans
    - variables.get
    - _canonicalize_regex.sub
    - abc.ABC.__init__
    - hashes.has_one_of
    - SCHEME_RE.search
    - <builtin>.str
    - pip._internal.utils.unpacking.unpack_file
    - locale.getpreferredencoding
    - pip._internal.utils.temp_dir.TempDirectory._create
    - pip._internal.cache.SimpleWheelCache.get_path_for_link
    - os.path.expanduser
    - pip._internal.utils.misc.read_chunks
    - <builtin>.hash
    - index_urls.extend
    - pip._vendor.requests.utils._validate_header_part
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - typing.cast.verbose
    - re.sub
    - os.confstr
    - pip._internal.metadata.select_backend
    - os.access
    - <builtin>.sorted
    - ctypes.CDLL
    - pip._internal.utils.setuptools_build.make_setuptools_bdist_wheel_args
    - platform.mac_ver
    - pip._vendor.rich.style.Style.__init__._make_color
    - key.upper
    - PERCENT_RE.subn
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.cli.req_command.RequirementCommand.get_requirements
    - pip._internal.locations._distutils.get_scheme
    - pip._internal.cache.WheelCache.__init__
    - urllib.request.getproxies
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - env.get_distribution
    - collections.OrderedDict
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.rich.control.strip_control_codes
    - os.path.split
    - urllib.parse.urlparse
    - sys.stdout.write
    - pip._vendor.rich.containers.Lines.extend
    - collections.abc.MutableMapping.fileno
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - tag.name.startswith
    - pip._internal.network.session.PipSession.__init__
    - zipfp.close
    - textwrap.dedent
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._internal.commands.install.InstallCommand._handle_target_dir
    - wheel_info.group
    - data.startswith
    - pip._vendor.requests.models.Request.__init__
    - zip.namelist
    - pip._internal.operations.check.warn_legacy_versions_and_specifiers
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - text.partition
    - pip._internal.operations.check._create_whitelist
    - pip._internal.req.req_file.preprocess
    - pip._internal.models.direct_url.DirectUrl.__init__
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - command_output.endswith
    - pip._internal.utils.misc.split_auth_from_netloc
    - part.lower
    - logger.error
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.get_cookie_header
    - zip.infolist
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - pip._internal.build_env._get_system_sitepackages
    - pip._internal.req.req_file.get_line_parser.parse_line
    - warning_contexts.append
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.req.constructors.install_req_from_parsed_requirement
    - pip._internal.req.req_file.ignore_comments
    - jupyter_lines.isdigit
    - pip._vendor.requests.utils.resolve_proxies
    - pip._internal.operations.prepare._check_download_dir
    - pip._vendor.packaging.markers.default_environment
    - line.pad_right
    - pip._internal.req.req_file.RequirementsFileParser.parse
    - proxies.get
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - urllib.parse.urlencode.seek
    - pip._internal.utils.misc._get_netloc
    - pip._internal.utils.misc.check_externally_managed
    - pip._internal.utils.glibc.libc_ver
    - pip._internal.locations.get_purelib
    - attr.has
    - <builtin>.bool
    - v.encode
    - pip._internal.req.constructors.parse_req_from_editable
    - pip._vendor.requests.compat.MutableMapping.__init__
    - pip._internal.metadata._should_use_importlib_metadata
    - backend.get_requires_for_build_editable
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.packaging.requirements.Requirement.__init__
    - line.replace
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - h.update
    - HTTPError.__init__
    - component.encode
    - pip._internal.cli.req_command.RequirementCommand.make_resolver
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - backend.build_wheel
    - data.decode
    - out.splitlines
    - pip._internal.operations.build.wheel_editable.build_wheel_editable
    - new_line.append
    - hooks.get
    - req.ensure_has_source_dir
    - pip._internal.cli.spinners.hidden_cursor
    - pip._internal.utils.virtualenv._no_global_under_venv
    - _SETUPTOOLS_SHIM.format
    - name.strip
    - pip._vendor.rich.segment.Segment.line
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - sys.stdout.isatty
    - pip._internal.cli.cmdoptions.make_target_python
    - tempfile.mkdtemp
    - pip._internal.locations._looks_like_bpo_44860
    - pip._internal.models.direct_url._get
    - os.path.isfile
    - pip._vendor.rich.style.Style.__init__
    - platform.machine
    - pip._vendor.rich.markup.escape
    - new_segments.insert
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel
    - pathlib.Path.exists
    - pip._internal.utils.subprocess.call_subprocess
    - pip._vendor.requests.utils.super_len
    - typing.cast.warning
    - <builtin>.int
    - os.remove
    - pip._vendor.requests._internal_utils.to_native_string
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - all_output.append
    - _legacy_version_replacement_map.get
    - pip._vendor.requests.utils.get_environ_proxies
    - pip._internal.utils.misc._transform_url
    - req.specifier.contains
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - urllib.request.proxy_bypass
    - pip._internal.wheel_builder.build
    - contextlib.suppress
    - to_install.items
    - pip._vendor.rich.console.Console.__init__
    - <builtin>.type
    - result.append
    - pip._vendor.rich.pretty._safe_isinstance
    - urllib.parse.quote.seek
    - token.startswith
    - pip._internal.metadata.get_environment
    - pip._internal.cli.req_command.SessionCommandMixin.get_default_session
    - d.items
    - sysconfig.is_python_build
    - netloc.count
    - pip._internal.operations.build.build_tracker.get_build_tracker
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - pip._internal.utils.setuptools_build.make_setuptools_clean_args
    - resolver.get_installation_order
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.urllib3.fields.RequestField.__init__
    - pip._internal.models.direct_url.DirectUrl.from_dict
    - history.pop
    - pip._internal.wheel_builder.should_build_for_wheel_command
    - io.BytesIO.write
    - pip._internal.operations.prepare.RequirementPreparer._complete_partial_requirements
    - shutil.move
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.requests.hooks.default_hooks
    - location.encode
    - pip._vendor.requests.auth._basic_auth_str
    - pip._internal.utils.misc.protect_pip_from_modification_on_windows
    - <builtin>.set
    - word_match.group
    - itertools.cycle
    - _HOST_PORT_RE.match
    - pip._vendor.packaging.tags._get_config_var
    - platform.python_version_tuple
    - requirements.append
    - urllib.parse.quote.decode
    - pip._internal.operations.build.wheel_legacy.build_wheel_legacy
    - pip._internal.utils.subprocess.format_command_args
    - contextlib.ExitStack
    - line.expand_tabs
    - os.umask
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._internal.commands.install.decide_user_install
    - pip._vendor.rich.markup.render
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - pip._internal.locations.base.change_root
    - <builtin>.next
    - RE_HANDLER.match
    - line.find
    - member.isdir
    - pip._internal.req.req_file.RequirementsFileParser._parse_file
    - zone_id.startswith
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable
    - functools.partial
    - version_str.decode
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - new_proxies.setdefault
    - pip._internal.utils.misc.splitext
    - urllib.parse.urljoin.tell
    - pip._vendor.rich.cells.cell_len
    - urllib.parse.urlparse.scheme.startswith
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - pip._internal.locations.base.is_osx_framework
    - pip._internal.distributions.sdist.SourceDistribution._raise_missing_reqs
    - os.urandom
    - to_install.keys
    - pip._internal.index.package_finder.PackageFinder.create
    - pathlib.Path
    - pip._internal.models.link.Link.__init__
    - os.getuid
    - re.search
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - pip._internal.models.direct_url.VcsInfo._from_dict
    - req.archive
    - saved_values.items
    - items.append
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - pip._internal.cache.WheelCache.record_download_origin
    - pip._internal.locations._distutils.get_platlib
    - pip._internal.metadata.get_default_environment
    - base.lower
    - line.divide
    - byte.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - urllib.parse.quote.tell
    - spinner.finish
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._internal.utils.logging.indent_log
    - subprocess.Popen
    - pip._internal.distributions.sdist.SourceDistribution.prepare_distribution_metadata
    - pip._internal.models.target_python.TargetPython.__init__
    - rustc_output.split
    - pip._internal.operations.prepare.unpack_url
    - line.truncate
    - pip._vendor.rich.cells.set_cell_size
    - _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match
    - pip._internal.build_env._dedup
    - binascii.hexlify
    - word_match.span
    - os.path.normpath
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.urllib3.util.url._idna_encode
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - pip._vendor.rich.get_console
    - urllib.parse.urljoin.seek
    - string_network.count
    - pip._internal.utils.unpacking.current_umask
    - u_string.encode
    - pip._internal.req.req_file.RequirementsFileParser.__init__
    - os.path.basename
    - pip._vendor.rich.protocol.rich_cast
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - requirement_set.requirements.values
    - pip._internal.locations.base.get_major_minor_version
    - distutils.dist.Distribution.get_command_obj
    - <builtin>.filter
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.update
    - field.render_headers
    - pip._internal.wheel_builder._verify_one
    - <builtin>.repr
    - typing.cast.debug
    - collections.abc.MutableMapping.__init__
    - installed.sort
    - urllib.parse.quote.lstrip
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.utils.canonicalize_name
    - _options.reset_height
    - ctx.enter_context
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._internal.operations.prepare.RequirementPreparer._ensure_link_req_src_dir
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.urllib3.util.url.parse_url
    - pip._internal.utils.misc.display_path
    - time.time
    - <builtin>.enumerate
    - extras.lower
    - datetime.timedelta
    - pip._internal.wheel_builder._should_build
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - parts.append
    - COMMENT_RE.match
    - pip._internal.req.constructors.convert_extras
    - pip._vendor.requests.utils.address_in_network
    - zipfile.is_zipfile
    - proc.stdout.readline
    - pip._internal.locations._looks_like_red_hat_scheme
    - tokens.append
    - new_v.name.startswith
    - pip._internal.locations._sysconfig.get_platlib
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - env.pop
    - path.startswith
    - pip._internal.req.req_install.check_legacy_setup_py_options
    - random.choice
    - url_no_extras.lower
    - zipfile.ZipFile
    - output.insert
    - pip._internal.network.session.looks_like_ci
    - typing.NamedTuple.lower
    - req.hashes
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._internal.utils.misc.normalize_path
    - vcs_backend.get_revision
    - platform.version
    - new_jar.set_cookie
    - d.iteritems
    - match.span
    - pip._internal.index.collector.LinkCollector.create
    - netrc.netrc.authenticators
    - pip._internal.cli.req_command.warn_if_run_as_root
    - pip._internal.operations.build.build_tracker.update_env_context_manager
    - logger.getEffectiveLevel
    - os.path.dirname
    - urllib.parse.urlencode
    - pip._internal.locations._looks_like_red_hat_lib
    - pip._vendor.urllib3.packages.six.ensure_str
    - RE_COLOR.match
    - proc.stdout.close
    - pip._vendor.rich.console.detect_legacy_windows
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - ireq.get_dist
    - pip._internal.utils.misc.ensure_dir
    - pip._vendor.rich.text.Text.copy
    - <builtin>.range
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.req.req_file.handle_option_line
    - socket.inet_aton
    - pip._vendor.packaging.tags.interpreter_name
    - ireq.download_info.to_dict
    - pip._vendor.distro.name
    - io.BytesIO.getvalue
    - link_hash.as_dict
    - pip._internal.utils.compat.has_tls
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.text.Text.from_markup
    - pip._internal.req.req_file.expand_env_variables
    - version.lower
    - os.environ.get
    - pip._internal.locations.get_scheme
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - send_kwargs.update
    - http.cookiejar.CookieJar.set_policy
    - pip._internal.wheel_builder.should_build_for_install_command
    - line.pad_left
    - pip._internal.req.req_file.ParsedLine.__init__
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._internal.cache.SimpleWheelCache.__init__
    - net.split
    - shlex.split
    - name.split
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - pip._internal.req.InstallationResult.__init__
    - proc.stdin.close
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - pip._internal.locations._distutils.get_purelib
    - pip._internal.cli.req_command.RequirementCommand.make_requirement_preparer
    - platform.release
    - ENCODING_RE.search
    - pip._internal.network.cache.SafeFileCache.__init__
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - pip._internal.req.req_file.handle_line
    - <builtin>.list
    - parsed_req.options.get
    - pip._internal.commands.install.InstallCommand.run
    - os.close
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - req.link.is_existing_dir
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._internal.utils.misc.hide_url
    - pip._internal.utils.packaging.get_requirement
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - sysconfig.get_config_var
    - s.decode
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.requests.utils.check_header_validity
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.models.direct_url._exactly_one_of
    - parser.add_option
    - uri_bytes.count
    - spec_str.endswith
    - pip._internal.locations.get_platlib
    - platform.python_version
    - http.cookiejar.CookieJar.extract_cookies
    - pip._internal.cli.req_command.RequirementCommand.trace_basic_info
    - pip._internal.distributions.sdist.SourceDistribution._prepare_build_backend
    - urllib.request.pathname2url
    - pip._internal.locations._warn_mismatched
    - fp.close
    - backend.subprocess_runner
    - req.extras.asList
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - urllib.parse.urlsplit
    - pip._internal.network.session.PipSession.request
    - collections.OrderedDict.values
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - distutils.sysconfig.get_python_lib
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.rich.text.Text.split
    - <builtin>.getattr
    - sys.platform.startswith
    - tarfile.open
    - pip._vendor.urllib3.filepost.iter_field_objects
    - pip._internal.wheel_builder._should_cache
    - word.rstrip
    - pip._internal.operations.build.wheel.build_wheel_pep517
    - path.find
    - conflicting_deps.add
    - http.cookiejar.CookieJar.__init__
    - data.split
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - interpreter.lower
    - missing_deps.add
    - pip._internal.utils.misc.normalize_version_info
    - urllib.parse.urljoin.fileno
    - pip._internal.distributions.make_distribution_for_install_requirement
    - pip._vendor.requests.cookies._copy_cookie_jar
    - logger.debug
    - _tempdir_manager.enter_context
    - plain_text.replace
    - site.getsitepackages
    - output.append
    - urllib.parse.urlencode.fileno
    - env.iter_installed_distributions
    - COMMENT_RE.sub
    - pip._internal.utils.glibc.glibc_version_string
    - pip._vendor.rich.pretty._is_attr_object
    - urllib.parse.urljoin.upper
    - pip._internal.cache.EphemWheelCache.__init__
    - json.loads
    - netrc.netrc
    - pip._internal.commands.install.InstallCommand._warn_about_conflicts
    - pip._vendor.rich.console.Console.render_str
    - itertools.combinations_with_replacement
    - pip._vendor.rich.markup._parse
    - letter.lower
    - s.startswith
    - hist.append
    - style_definition.split
    - line.endswith
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - urllib.parse.urljoin.encode
    - os.environ.copy
    - style_definition.strip
    - pip._internal.commands.install.InstallCommand._determine_conflicts
    - os.getenv
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - new_fields.append
    - pip._internal.cache._hash_dict
    - sys.getdefaultencoding
    - pip._vendor.rich.console.NewLine.__init__
    - pip._internal.models.format_control.FormatControl.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - pip._internal.operations.prepare._get_prepared_distribution
    - pip._vendor.packaging.utils.canonicalize_version
    - pip._internal.req.constructors._strip_extras
    - pip._internal.resolution.resolvelib.resolver.Resolver
    - pip._vendor.packaging.version._parse_local_version
    - boundary.decode
    - find_links.append
    - pip._internal.utils.misc.build_url_from_netloc
    - tag_text.partition
    - fp.read
    - cls.__new__
    - collections.abc.MutableMapping.lower
    - changes.items
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._internal.locations._sysconfig.get_scheme
    - pip._vendor.requests.utils.requote_uri
    - pip._vendor.rich.console._is_jupyter
    - installed.add
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - collections.namedtuple.__init__
    - pip._internal.index.collector.LinkCollector.__init__
    - packages_affected.add
    - rich_visited_set.add
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.operations.prepare.get_http_url
    - cookie.value.replace
    - pip._internal.utils.urls.path_to_url
    - shutil.rmtree
    - dataclasses.is_dataclass
    - hashes.check_against_path
    - h.isalnum
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - urllib.parse.urlparse.hostname.endswith
    - urllib.parse.quote.split
    - urllib.parse.quote.encode
    - pip._internal.resolution.legacy.resolver.Resolver
    - pip._internal.network.session.user_agent
    - pip._internal.operations.prepare.File.__init__
    - pip._internal.models.direct_url.DirInfo.__init__
    - typing.cast.error
    - itertools.dropwhile
    - path.split
    - match.groups
    - cmd.finalize_options
    - pip._internal.utils.misc._redact_netloc
    - contextlib.ExitStack.enter_context
    - pip._vendor.requests.utils.is_valid_cidr
    - urllib.parse.quote.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - pip._internal.cli.command_context.CommandContextMixIn.enter_context
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - distutils.command.install.install
    - pip._internal.utils.encoding.auto_decode
    - pip._internal.utils.misc.parse_netloc
    - pip._internal.commands.install.create_os_error_message
    - collections.abc.MutableMapping.get
    - pip._vendor.rich.align.Align.__init__
    - result.update
    - os.path.realpath
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - highlight_text.copy_styles
    - pip._vendor.requests.sessions.merge_hooks
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - os.getcwd
    - pip._vendor.rich._win32_console.GetStdHandle
    - unpatched.replace
    - pip._vendor.requests.sessions.Session.request
    - pip._vendor.rich._loop.loop_last
    - <builtin>.zip
    - tar.utime
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - typing.cast.Environment.from_paths
    - pip._vendor.requests.utils.should_bypass_proxies
    - session_hooks.get
    - adapter.send
    - pip._vendor.urllib3.fields.guess_content_type
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.utils.misc.redact_auth_from_url
    - content.splitlines
    - pip._internal.utils.unpacking.split_leading_dir
    - <builtin>.setattr
    - installed.append
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.network.session.PipSession.add_trusted_host
    - pip._vendor.rich.text.Text.join
    - pip._internal.req.constructors._looks_like_path
    - requirement_set.warn_legacy_versions_and_specifiers
    - pip._internal.operations.prepare.RequirementPreparer.save_linked_requirement
    - logger.warning
    - req.needs_unpacked_archive
    - <builtin>.hasattr
    - pip._internal.locations._sysconfig.get_purelib
    - package_set.items
    - hook.process_renderables
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - pip._internal.utils.unpacking.unzip_file
    - pip._internal.operations.check.check_package_set
    - pip._internal.req.constructors.install_req_from_line
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - name.lower
    - data.setdefault
    - pip._internal.utils.misc.get_pip_version
    - pip._vendor.requests.utils.dotted_netmask
    - urllib.request.getproxies.items
    - pip._vendor.rich.console.Console.render
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - downloaded.append
    - encoded_component.extend
    - zip.open
    - line.strip
    - pip._vendor.requests.sessions.Session.mount
    - urllib.parse.urljoin.split
    - pip._internal.utils.virtualenv._get_pyvenv_cfg_lines
    - DEFAULT_PORTS.get
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.min
    - term.rpartition
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.idna.encode
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._internal.cache.WheelCache.get_path_for_link
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._internal.network.download.BatchDownloader.__init__
    - urllib.parse.urlunparse
    - subprocess.check_output
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.rich.style.Style.parse
    - pip._internal.utils.unpacking.has_leading_dir
    - os.path.isdir
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._internal.operations.check.create_package_set_from_installed
    - os.path.abspath
    - pip._internal.commands.download.DownloadCommand.run
    - dist.iter_dependencies
    - pip._vendor.rich.cells.chop_cells
    - build_tracker.track
    - collections.OrderedDict.items
    - pip._internal.utils.logging.get_indentation
    - resp.reason.decode
    - pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    - name.startswith
    - os.path.normcase
    - match.group
    - os.path.exists
    - warnings.warn
    - requirement.uninstall
    - base64.b64encode.strip
    - links_to_fully_download.keys
    - typing.cast.critical
    - pip._vendor.rich.console.Console.print_json
    - <builtin>.bytearray
    - pip._internal.req.constructors.RequirementParts.__init__
    - field.decode
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - wheel_hash.hexdigest
    - line.startswith
    - pip._internal.network.session.PipSession.update_index_urls
    - request.method.upper
    - format_string.format
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - options.pop
    - pathlib.Path.write_text
    - pip._internal.utils.filesystem.test_writable_dir
    - ANSI_COLOR_NAMES.get
    - urllib.parse.urljoin.decode
    - search_scope.get_formatted_locations
    - pip._internal.req.constructors.parse_editable
    - os.fstat
    - new_jar.clear
    - spinner.spin
    - url.lower
    - authority.rpartition
    - resp.close
    - pip._vendor.rich.print_json
    - rustc_output.startswith
    - os.path.isabs
    - ctypes.wintypes.DWORD
    - pip._internal.wheel_builder._get_cache_dir
    - file.read
    - pip._internal.utils.subprocess.reveal_command_args
    - pip._vendor.requests.models.PreparedRequest.prepare
    - p.endswith
    - color_match.groups
    - spans.sort
    - pip._vendor.requests.utils.unquote_unreserved
    - pip._vendor.distro.version
    - word.get_style_at_offset
    - <builtin>.len
    - markers_as_string.strip
    - pip._vendor.requests.utils.rewind_body
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._internal.models.installation_report.InstallationReport.__init__
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - platform.system
    - time.perf_counter
    - pip._internal.req.req_file.break_args_options
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - pip._internal.operations.prepare.get_file_url
    - <builtin>.ord
    - req.marker.evaluate
    - typing.cast.info
    - pip._internal.commands.install.site_packages_writable
    - shutil.which
    - splitstr.decode
    - finder.set_allow_all_prereleases
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - os.listdir
    - style_stack.append
    - vcs_backend.get_url_rev_and_auth
    - <builtin>.all
    - pip._vendor.rich.json.JSON.__init__
    - pip._vendor.rich._wrap.divide_line
    - pip._vendor.requests.utils.to_key_val_list
    - os.unlink
    - collections.abc.MutableMapping.items
    - pip._vendor.distro.codename
    - sysconfig.get_path
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - operator.itemgetter
    - pip._internal.cli.req_command.RequirementCommand.determine_resolver_variant
    - logger.critical
    - pip._internal.build_env.BuildEnvironment.__init__
    - pip._internal.req._validate_requirements
    - built_find_links.append
    - posixpath.splitext
    - <builtin>.frozenset
    - pip._internal.wheel_builder._build_one_inside_env
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - pip._vendor.packaging.version.parse
    - urllib.parse.urlparse.geturl
    - pip._internal.operations.prepare.RequirementPreparer.prepare_linked_requirements_more
    - _legacy_version_component_re.split
    - _egg_info_re.search
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - threading.local.__init__
    - tar.extractfile
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - style.strip
    - download_info.to_json
    - pip._internal.models.direct_url.DirInfo._from_dict
    - typing.cast.exception
    - pip._internal.metadata.get_wheel_distribution
    - url.split
    - os.open
    - pip._internal.locations._warn_if_mismatch
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - pip._internal.operations.build.wheel_legacy.get_legacy_build_wheel_path
    - merged_setting.update
    - pip._vendor.requests.sessions.Session.get
    - pip._vendor.urllib3.packages.six.raise_from
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._internal.distributions.wheel.WheelDistribution.prepare_distribution_metadata
    - IPV6_ADDRZ_RE.match
    - pip._internal.build_env._Prefix.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._internal.locations._sysconfig._infer_home
    - vcs_backend.is_immutable_rev_checkout
    - random.randint
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - hashlib.sha224
    - hashlib.sha256
    - pip._internal.wheel_builder._build_one
    - pip._internal.cli.req_command.RequirementCommand._build_package_finder
    - finder.set_prefer_binary
    - sys.getwindowsversion
    - pip._vendor.rich.console.Console._detect_color_system
    - pip._internal.operations.prepare.unpack_vcs_link
    - pip._internal.utils.misc.strtobool
    - os.path.commonprefix
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._internal.utils.virtualenv._no_global_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - urllib.parse.urljoin.startswith
    - build_successes.append
    - pip._internal.network.download.Downloader.__init__
    - pip._vendor.rich.pretty.is_expandable
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._internal.models.search_scope.SearchScope.create
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - pip._internal.models.direct_url.DirectUrl.from_json
    - logger.info
    - pip._internal.req.req_file.ParsedRequirement.__init__
    - text.clear
    - fp.write
    - pip._vendor.requests.sessions.Session.send
    - pip._internal.utils.misc.hash_file
    - json.dump
    - style_stack.pop
    - gnu_libc_version.split
    - vcs_backend.unpack
    - pip._internal.req.constructors.parse_req_from_line
    - distutils.dist.Distribution
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 78
    functionName: pip._internal.commands.download.DownloadCommand.run
    functionSourceFile: pip._internal.commands.download
    functionUses: 1
    functionsReached:
    - pip._internal.req.constructors._get_url_from_path
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - link.startswith
    - parser.get_default_values
    - optparse.OptionParser
    - pip._vendor.requests.models.PreparedRequest.copy
    - <builtin>.dict
    - parser.parse_args
    - req.ensure_pristine_source_checkout
    - string_network.split
    - itertools.chain
    - index_urls.append
    - tar._extract_member
    - urllib.parse.urlparse.netloc.split
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - <builtin>.tuple
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - password.encode
    - output.pop
    - filename.endswith
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - merged_setting.items
    - pip._internal.req.req_file.get_file_content
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - logger.log
    - scheme.lower
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - urllib.parse.urlparse._replace
    - urllib.parse.quote
    - old_v.name.startswith
    - pip._internal.utils.unpacking.zip_item_is_executable
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._internal.locations._looks_like_debian_scheme
    - abi.lower
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.decode
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - path.lstrip
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.index.package_finder.PackageFinder.__init__
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - part.startswith
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - no_proxy.replace
    - pip._internal.req.req_install.InstallRequirement.__init__
    - urllib.request.getproxies.get
    - platform.python_implementation
    - ZONE_ID_RE.search
    - fn.endswith
    - scheme.update
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - tar.getmembers
    - os.chmod
    - member.issym
    - <builtin>.map
    - pip._internal.req.req_file.parse_requirements
    - tar.close
    - urllib.parse.quote.upper
    - <builtin>.chr
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._vendor.requests.sessions.merge_setting
    - resolver.resolve
    - f.read
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.max
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - <builtin>.isinstance
    - validator.match
    - pip._internal.cli.cmdoptions.check_dist_restriction
    - ENV_VAR_RE.findall
    - part.zfill
    - path.endswith
    - pip._internal.locations._distutils.distutils_scheme
    - filename.lower
    - s.encode
    - collections.abc.MutableMapping.upper
    - pip._internal.req.req_file.handle_requirement_line
    - pip._internal.req.req_install._has_option
    - os.makedirs
    - collections.OrderedDict.pop
    - pip._internal.utils.unpacking.untar_file
    - pip._internal.req.req_file.join_lines
    - pip._vendor.requests.cookies.merge_cookies
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - auth.split
    - pip._internal.models.link.Link._egg_fragment
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - args.append
    - urllib.parse.urljoin.lower
    - request_hooks.get
    - history.insert
    - pip._vendor.requests.hooks.dispatch_hook
    - typing.cast
    - pip._internal.operations.build.build_tracker.BuildTracker.__init__
    - stat.S_ISREG
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - parts.pop
    - <builtin>.hex
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - part.isdigit
    - options.features_enabled.extend
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - val.lower
    - urllib.parse.unquote
    - result.groups
    - format_str.format
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.misc.write_output
    - IPV4_RE.match
    - options.format_control.disallow_binaries
    - method.upper
    - re.match
    - shutil.copyfileobj
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - typing.cast.Distribution.from_wheel
    - partially_downloaded_reqs.append
    - kwargs.setdefault
    - authority.rpartition
    - pip._internal.network.utils.raise_for_status
    - pip._internal.operations.prepare.RequirementPreparer._get_linked_req_hashes
    - m.group
    - pip._internal.utils.hashes.MissingHashes.__init__
    - copy.copy
    - pip._internal.req.constructors.install_req_from_editable
    - platform.lower
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._internal.models.scheme.Scheme.__init__
    - hooks.items
    - backend.get_requires_for_build_wheel
    - pip._internal.utils.deprecation.deprecated
    - urllib.parse.urlunsplit
    - pip._internal.locations._log_context
    - pip._internal.operations.prepare.RequirementPreparer.__init__
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - pip._internal.operations.prepare.RequirementPreparer._prepare_linked_requirement
    - pip._internal.req.req_file.RequirementsFileParser._parse_and_recurse
    - http.cookiejar.Cookie
    - pip._internal.utils.filetypes.is_archive_file
    - prefix.lower
    - pip._vendor.packaging.tags.Tag.__init__
    - platlib.replace
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.utils.misc.HiddenText.__init__
    - pip._internal.req.req_file.get_line_parser
    - os.path.splitdrive
    - k.encode
    - collections.abc.MutableMapping.encode
    - shutil.copy
    - link.is_existing_dir
    - typing.cast.Environment.default
    - tarfile.is_tarfile
    - pip._internal.utils.unpacking.is_within_directory
    - sysconfig.get_paths
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - pip._internal.distributions.sdist.SourceDistribution._install_build_reqs
    - socket.inet_ntoa
    - pip._internal.req.req_file.build_parser
    - variables.get
    - _canonicalize_regex.sub
    - hashes.has_one_of
    - SCHEME_RE.search
    - <builtin>.str
    - pip._internal.utils.unpacking.unpack_file
    - locale.getpreferredencoding
    - pip._internal.utils.temp_dir.TempDirectory._create
    - os.path.expanduser
    - pip._internal.utils.misc.read_chunks
    - <builtin>.hash
    - index_urls.extend
    - pip._vendor.requests.utils._validate_header_part
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - pip._internal.metadata.select_backend
    - key.upper
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - PERCENT_RE.subn
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.cli.req_command.RequirementCommand.get_requirements
    - pip._internal.locations._distutils.get_scheme
    - urllib.request.getproxies
    - collections.OrderedDict
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - os.path.split
    - urllib.parse.urlparse
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - pip._internal.network.session.PipSession.__init__
    - zipfp.close
    - textwrap.dedent
    - wheel_info.group
    - data.startswith
    - pip._vendor.requests.models.Request.__init__
    - zip.namelist
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - pip._internal.req.req_file.preprocess
    - pip._internal.models.direct_url.DirectUrl.__init__
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.utils.misc.split_auth_from_netloc
    - part.lower
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.get_cookie_header
    - zip.infolist
    - pip._vendor.requests.sessions.Session.get_adapter
    - pip._internal.build_env._get_system_sitepackages
    - pip._internal.req.req_file.get_line_parser.parse_line
    - <builtin>.iter
    - warning_contexts.append
    - pip._internal.req.constructors.install_req_from_parsed_requirement
    - pip._internal.req.req_file.ignore_comments
    - pip._vendor.requests.utils.resolve_proxies
    - pip._internal.operations.prepare._check_download_dir
    - pip._internal.req.req_file.RequirementsFileParser.parse
    - proxies.get
    - urllib.parse.urlencode.seek
    - pip._internal.utils.misc._get_netloc
    - pip._internal.utils.glibc.libc_ver
    - v.encode
    - pip._internal.locations.get_purelib
    - pip._vendor.requests.compat.MutableMapping.__init__
    - <builtin>.bool
    - backend.get_requires_for_build_editable
    - pip._internal.req.constructors.parse_req_from_editable
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._vendor.packaging.requirements.Requirement.__init__
    - line.replace
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - h.update
    - HTTPError.__init__
    - component.encode
    - pip._internal.cli.req_command.RequirementCommand.make_resolver
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - data.decode
    - new_line.append
    - hooks.get
    - req.ensure_has_source_dir
    - name.strip
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - pip._internal.cli.cmdoptions.make_target_python
    - tempfile.mkdtemp
    - pip._internal.locations._looks_like_bpo_44860
    - os.path.isfile
    - platform.machine
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel
    - pip._vendor.requests.utils.super_len
    - typing.cast.warning
    - <builtin>.int
    - pip._vendor.requests._internal_utils.to_native_string
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - _legacy_version_replacement_map.get
    - pip._vendor.requests.utils.get_environ_proxies
    - pip._internal.utils.misc._transform_url
    - urllib.request.proxy_bypass
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - contextlib.suppress
    - result.append
    - urllib.parse.quote.seek
    - <builtin>.type
    - token.startswith
    - pip._internal.cli.req_command.SessionCommandMixin.get_default_session
    - d.items
    - sysconfig.is_python_build
    - netloc.count
    - pip._internal.operations.build.build_tracker.get_build_tracker
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - history.pop
    - pip._internal.operations.prepare.RequirementPreparer._complete_partial_requirements
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.auth._basic_auth_str
    - <builtin>.set
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - requirements.append
    - contextlib.ExitStack
    - os.umask
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - pip._internal.locations.base.change_root
    - <builtin>.next
    - line.find
    - member.isdir
    - pip._internal.req.req_file.RequirementsFileParser._parse_file
    - zone_id.startswith
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable
    - functools.partial
    - version_str.decode
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - new_proxies.setdefault
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - pip._internal.locations.base.is_osx_framework
    - pip._internal.distributions.sdist.SourceDistribution._raise_missing_reqs
    - os.urandom
    - pip._internal.index.package_finder.PackageFinder.create
    - pip._internal.models.link.Link.__init__
    - pathlib.Path
    - re.search
    - req.archive
    - saved_values.items
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - pip._internal.locations._distutils.get_platlib
    - pip._internal.metadata.get_default_environment
    - byte.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - urllib.parse.quote.tell
    - pip._internal.distributions.sdist.SourceDistribution.prepare_distribution_metadata
    - pip._internal.models.target_python.TargetPython.__init__
    - rustc_output.split
    - pip._internal.operations.prepare.unpack_url
    - pip._internal.build_env._dedup
    - binascii.hexlify
    - os.path.normpath
    - pip._vendor.urllib3.util.url._idna_encode
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - urllib.parse.urljoin.seek
    - string_network.count
    - pip._internal.utils.unpacking.current_umask
    - u_string.encode
    - pip._internal.req.req_file.RequirementsFileParser.__init__
    - os.path.basename
    - <builtin>.filter
    - requirement_set.requirements.values
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - distutils.dist.Distribution.get_command_obj
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.update
    - field.render_headers
    - typing.cast.debug
    - collections.abc.MutableMapping.__init__
    - urllib.parse.quote.lstrip
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - ctx.enter_context
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.object
    - old_v.parent.name.startswith
    - collections.abc.MutableMapping.tell
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._internal.operations.prepare.RequirementPreparer._ensure_link_req_src_dir
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.urllib3.util.url.parse_url
    - pip._internal.utils.misc.display_path
    - <builtin>.enumerate
    - extras.lower
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - parts.append
    - COMMENT_RE.match
    - pip._internal.req.constructors.convert_extras
    - zipfile.is_zipfile
    - pip._internal.locations._looks_like_red_hat_scheme
    - pip._internal.locations._sysconfig.get_platlib
    - new_v.name.startswith
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - path.startswith
    - pip._internal.req.req_install.check_legacy_setup_py_options
    - url_no_extras.lower
    - zipfile.ZipFile
    - output.insert
    - pip._internal.network.session.looks_like_ci
    - req.hashes
    - pip._internal.utils.misc.normalize_path
    - vcs_backend.get_revision
    - d.iteritems
    - new_jar.set_cookie
    - match.span
    - pip._internal.index.collector.LinkCollector.create
    - netrc.netrc.authenticators
    - pip._internal.operations.build.build_tracker.update_env_context_manager
    - os.path.dirname
    - urllib.parse.urlencode
    - pip._internal.locations._looks_like_red_hat_lib
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - pip._internal.utils.misc.ensure_dir
    - <builtin>.range
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.req.req_file.handle_option_line
    - socket.inet_aton
    - io.BytesIO.getvalue
    - pip._vendor.distro.name
    - link_hash.as_dict
    - pip._internal.utils.compat.has_tls
    - pip._internal.req.req_file.expand_env_variables
    - version.lower
    - os.environ.get
    - pip._internal.locations.get_scheme
    - send_kwargs.update
    - line.split
    - shlex.split
    - http.cookiejar.CookieJar.set_policy
    - pip._internal.req.req_file.ParsedLine.__init__
    - pip._vendor.requests.cookies.MockRequest.__init__
    - net.split
    - name.split
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - pip._internal.locations._distutils.get_purelib
    - pip._internal.cli.req_command.RequirementCommand.make_requirement_preparer
    - platform.release
    - ENCODING_RE.search
    - pip._internal.network.cache.SafeFileCache.__init__
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - pip._internal.req.req_file.handle_line
    - <builtin>.list
    - parsed_req.options.get
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - req.link.is_existing_dir
    - pip._internal.utils.misc.hide_url
    - s.decode
    - pip._internal.utils.packaging.get_requirement
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - sysconfig.get_config_var
    - pip._vendor.requests.utils.check_header_validity
    - pip._internal.utils.misc.is_installable_dir
    - parser.add_option
    - uri_bytes.count
    - spec_str.endswith
    - pip._internal.locations.get_platlib
    - platform.python_version
    - http.cookiejar.CookieJar.extract_cookies
    - pip._internal.cli.req_command.RequirementCommand.trace_basic_info
    - req.extras.asList
    - urllib.request.pathname2url
    - pip._internal.distributions.sdist.SourceDistribution._prepare_build_backend
    - pip._internal.locations._warn_mismatched
    - backend.subprocess_runner
    - fp.close
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - urllib.parse.urlsplit
    - pip._internal.network.session.PipSession.request
    - collections.OrderedDict.values
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - distutils.sysconfig.get_python_lib
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.getattr
    - tarfile.open
    - sys.platform.startswith
    - pip._vendor.urllib3.filepost.iter_field_objects
    - http.cookiejar.CookieJar.__init__
    - path.find
    - data.split
    - interpreter.lower
    - pip._internal.utils.misc.normalize_version_info
    - urllib.parse.urljoin.fileno
    - pip._internal.distributions.make_distribution_for_install_requirement
    - pip._vendor.requests.cookies._copy_cookie_jar
    - logger.debug
    - _tempdir_manager.enter_context
    - site.getsitepackages
    - output.append
    - urllib.parse.urlencode.fileno
    - COMMENT_RE.sub
    - pip._internal.utils.glibc.glibc_version_string
    - urllib.parse.urljoin.upper
    - netrc.netrc
    - itertools.combinations_with_replacement
    - letter.lower
    - hist.append
    - line.endswith
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - os.getenv
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - sys.getdefaultencoding
    - pip._internal.models.format_control.FormatControl.__init__
    - pip._internal.operations.prepare._get_prepared_distribution
    - pip._internal.resolution.resolvelib.resolver.Resolver
    - pip._internal.req.constructors._strip_extras
    - pip._vendor.packaging.version._parse_local_version
    - boundary.decode
    - find_links.append
    - pip._internal.utils.misc.build_url_from_netloc
    - fp.read
    - collections.abc.MutableMapping.lower
    - changes.items
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._internal.locations._sysconfig.get_scheme
    - pip._vendor.requests.utils.requote_uri
    - collections.namedtuple.__init__
    - pip._internal.index.collector.LinkCollector.__init__
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.operations.prepare.get_http_url
    - cookie.value.replace
    - pip._internal.utils.urls.path_to_url
    - hashes.check_against_path
    - h.isalnum
    - urllib.parse.urlparse.hostname.endswith
    - urllib.parse.quote.split
    - urllib.parse.quote.encode
    - pip._internal.resolution.legacy.resolver.Resolver
    - pip._internal.network.session.user_agent
    - pip._internal.operations.prepare.File.__init__
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - itertools.dropwhile
    - pip._internal.utils.misc._redact_netloc
    - path.split
    - cmd.finalize_options
    - pip._vendor.requests.utils.is_valid_cidr
    - contextlib.ExitStack.enter_context
    - urllib.parse.quote.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - pip._internal.cli.command_context.CommandContextMixIn.enter_context
    - distutils.command.install.install
    - pip._internal.utils.encoding.auto_decode
    - pip._internal.utils.misc.parse_netloc
    - collections.abc.MutableMapping.get
    - result.update
    - os.path.realpath
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - s.strip
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - pip._vendor.requests.sessions.merge_hooks
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - os.getcwd
    - unpatched.replace
    - pip._vendor.requests.sessions.Session.request
    - <builtin>.zip
    - tar.utime
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.requests.utils.should_bypass_proxies
    - session_hooks.get
    - pip._vendor.urllib3.fields.guess_content_type
    - adapter.send
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.utils.misc.redact_auth_from_url
    - content.splitlines
    - pip._internal.utils.unpacking.split_leading_dir
    - <builtin>.setattr
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.network.session.PipSession.add_trusted_host
    - pip._internal.req.constructors._looks_like_path
    - requirement_set.warn_legacy_versions_and_specifiers
    - pip._internal.operations.prepare.RequirementPreparer.save_linked_requirement
    - <builtin>.hasattr
    - req.needs_unpacked_archive
    - logger.warning
    - pip._internal.locations._sysconfig.get_purelib
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - pip._internal.utils.unpacking.unzip_file
    - name.lower
    - pip._internal.req.constructors.install_req_from_line
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - data.setdefault
    - pip._vendor.requests.utils.dotted_netmask
    - urllib.request.getproxies.items
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - downloaded.append
    - encoded_component.extend
    - zip.open
    - line.strip
    - pip._vendor.requests.sessions.Session.mount
    - urllib.parse.urljoin.split
    - DEFAULT_PORTS.get
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.idna.encode
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._internal.network.download.BatchDownloader.__init__
    - urllib.parse.urlunparse
    - subprocess.check_output
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._internal.utils.unpacking.has_leading_dir
    - os.path.isdir
    - collections.OrderedDict.items
    - os.path.abspath
    - resp.reason.decode
    - build_tracker.track
    - pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    - name.startswith
    - match.group
    - os.path.normcase
    - os.path.exists
    - warnings.warn
    - base64.b64encode.strip
    - links_to_fully_download.keys
    - <builtin>.bytearray
    - field.decode
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - pip._internal.network.session.PipSession.update_index_urls
    - request.method.upper
    - format_string.format
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - options.pop
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - search_scope.get_formatted_locations
    - pip._internal.req.constructors.parse_editable
    - os.fstat
    - url.lower
    - resp.close
    - rustc_output.startswith
    - pip._vendor.requests.models.PreparedRequest.prepare
    - os.path.isabs
    - file.read
    - p.endswith
    - pip._vendor.requests.utils.unquote_unreserved
    - markers_as_string.strip
    - pip._vendor.distro.version
    - <builtin>.len
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.rewind_body
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - platform.system
    - pip._internal.req.req_file.break_args_options
    - time.perf_counter
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - pip._internal.operations.prepare.get_file_url
    - <builtin>.ord
    - typing.cast.info
    - splitstr.decode
    - shutil.which
    - finder.set_allow_all_prereleases
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - vcs_backend.get_url_rev_and_auth
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - os.unlink
    - collections.abc.MutableMapping.items
    - pip._vendor.distro.codename
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - built_find_links.append
    - pip._internal.cli.req_command.RequirementCommand.determine_resolver_variant
    - logger.critical
    - pip._internal.build_env.BuildEnvironment.__init__
    - posixpath.splitext
    - <builtin>.frozenset
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - pip._vendor.packaging.version.parse
    - urllib.parse.urlparse.geturl
    - pip._internal.operations.prepare.RequirementPreparer.prepare_linked_requirements_more
    - _legacy_version_component_re.split
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - tar.extractfile
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - pip._internal.metadata.get_wheel_distribution
    - url.split
    - pip._vendor.requests.cookies.MockResponse.__init__
    - pip._internal.locations._warn_if_mismatch
    - resp.raw.read
    - merged_setting.update
    - pip._vendor.requests.sessions.Session.get
    - pip._vendor.urllib3.packages.six.raise_from
    - pip._internal.distributions.wheel.WheelDistribution.prepare_distribution_metadata
    - IPV6_ADDRZ_RE.match
    - pip._internal.build_env._Prefix.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.locations._sysconfig._infer_home
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - hashlib.sha256
    - pip._internal.cli.req_command.RequirementCommand._build_package_finder
    - finder.set_prefer_binary
    - pip._internal.operations.prepare.unpack_vcs_link
    - pip._internal.utils.misc.strtobool
    - os.path.commonprefix
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - <builtin>.reversed
    - urllib.parse.urljoin.startswith
    - pip._internal.network.download.Downloader.__init__
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._internal.models.search_scope.SearchScope.create
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - pip._vendor.requests.sessions.Session.send
    - logger.info
    - pip._internal.req.req_file.ParsedRequirement.__init__
    - fp.write
    - pip._internal.utils.misc.hash_file
    - pip._internal.req.constructors.parse_req_from_line
    - gnu_libc_version.split
    - vcs_backend.unpack
    - distutils.dist.Distribution
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 10
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 104
    functionName: pip._internal.commands.wheel.WheelCommand.run
    functionSourceFile: pip._internal.commands.wheel
    functionUses: 1
    functionsReached:
    - pip._internal.req.constructors._get_url_from_path
    - <builtin>.sum
    - urllib.parse.quote.fileno
    - pathlib.Path.read_text
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - pip._vendor.packaging.tags._version_nodot
    - link.startswith
    - parser.get_default_values
    - optparse.OptionParser
    - pip._vendor.requests.models.PreparedRequest.copy
    - <builtin>.dict
    - parser.parse_args
    - req.ensure_pristine_source_checkout
    - string_network.split
    - itertools.chain
    - index_urls.append
    - tar._extract_member
    - urllib.parse.urlparse.netloc.split
    - err.splitlines
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - <builtin>.tuple
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - password.encode
    - pip._internal.wheel_builder._contains_egg_info
    - output.pop
    - filename.endswith
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - merged_setting.items
    - pip._internal.req.req_file.get_file_content
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - pip._internal.cache.Cache._get_cache_path_parts
    - logger.log
    - pip._internal.cache.WheelCache.get_ephem_path_for_link
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - scheme.lower
    - urllib.parse.urlparse._replace
    - backend.build_editable
    - urllib.parse.quote
    - old_v.name.startswith
    - pip._internal.utils.unpacking.zip_item_is_executable
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - pip._internal.models.direct_url.ArchiveInfo._from_dict
    - abi.lower
    - pip._internal.locations._looks_like_debian_scheme
    - collections.abc.MutableMapping.startswith
    - proc.wait
    - collections.abc.MutableMapping.decode
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - path.lstrip
    - distutils.dist.Distribution.get_option_dict
    - proc.communicate
    - pip._internal.index.package_finder.PackageFinder.__init__
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - reqs_to_build.append
    - pip._internal.wheel_builder._clean_one_legacy
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - part.startswith
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - no_proxy.replace
    - pip._internal.req.req_install.InstallRequirement.__init__
    - pip._internal.operations.build.wheel_legacy.format_command_result
    - urllib.request.getproxies.get
    - platform.python_implementation
    - ZONE_ID_RE.search
    - fn.endswith
    - scheme.update
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - tar.getmembers
    - abc.ABC.background_color.lower
    - os.chmod
    - INTERPRETER_SHORT_NAMES.get
    - member.issym
    - ast.literal_eval
    - <builtin>.map
    - pip._internal.models.direct_url._get_required
    - env.update
    - pip._internal.req.req_file.parse_requirements
    - tar.close
    - urllib.parse.quote.upper
    - <builtin>.chr
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._vendor.requests.sessions.merge_setting
    - resolver.resolve
    - f.read
    - cookie.value.startswith
    - pip._vendor.requests.utils.set_environ
    - shlex.quote
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.max
    - urllib.parse.urlencode.tell
    - typing.cast.finalize_options
    - kwargs.pop
    - <builtin>.isinstance
    - validator.match
    - original_word.lower
    - ENV_VAR_RE.findall
    - part.zfill
    - path.endswith
    - pip._internal.locations._distutils.distutils_scheme
    - filename.lower
    - STYLE_ATTRIBUTES.get
    - s.encode
    - collections.abc.MutableMapping.upper
    - pip._internal.req.req_file.handle_requirement_line
    - pip._internal.req.req_install._has_option
    - os.makedirs
    - collections.OrderedDict.pop
    - pip._internal.utils.unpacking.untar_file
    - pip._internal.req.req_file.join_lines
    - pip._vendor.requests.cookies.merge_cookies
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._internal.models.link.Link._egg_fragment
    - mimetypes.guess_type
    - auth.split
    - pip._vendor.requests.utils.guess_filename
    - args.append
    - urllib.parse.urljoin.lower
    - request_hooks.get
    - history.insert
    - pip._vendor.rich.text.Text.append
    - pip._vendor.requests.hooks.dispatch_hook
    - pip._internal.operations.build.build_tracker.BuildTracker.__init__
    - typing.cast
    - stat.S_ISREG
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - parts.pop
    - <builtin>.hex
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - part.isdigit
    - options.features_enabled.extend
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - color_rgb.split
    - val.lower
    - urllib.parse.unquote
    - result.groups
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - format_str.format
    - pip._internal.utils.misc.redact_netloc
    - IPV4_RE.match
    - options.format_control.disallow_binaries
    - method.upper
    - re.match
    - shutil.copyfileobj
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - typing.cast.Distribution.from_wheel
    - partially_downloaded_reqs.append
    - kwargs.setdefault
    - authority.rpartition
    - pip._internal.network.utils.raise_for_status
    - pip._internal.operations.prepare.RequirementPreparer._get_linked_req_hashes
    - m.group
    - pip._internal.utils.hashes.MissingHashes.__init__
    - variants.get
    - copy.copy
    - pip._internal.req.constructors.install_req_from_editable
    - platform.lower
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._internal.models.scheme.Scheme.__init__
    - hooks.items
    - backend.get_requires_for_build_wheel
    - pip._internal.utils.deprecation.deprecated
    - urllib.parse.urlunsplit
    - pip._internal.locations._log_context
    - pip._internal.operations.prepare.RequirementPreparer.__init__
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - pip._internal.operations.prepare.RequirementPreparer._prepare_linked_requirement
    - pip._internal.req.req_file.RequirementsFileParser._parse_and_recurse
    - http.cookiejar.Cookie
    - pip._internal.utils.filetypes.is_archive_file
    - prefix.lower
    - pip._vendor.packaging.tags.Tag.__init__
    - platlib.replace
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.utils.misc.HiddenText.__init__
    - pip._internal.req.req_file.get_line_parser
    - k.encode
    - os.path.splitdrive
    - collections.abc.MutableMapping.encode
    - pip._vendor.rich.text.Text.__init__
    - shutil.copy
    - link.is_existing_dir
    - req.link.splitext
    - typing.cast.Environment.default
    - tarfile.is_tarfile
    - pip._internal.utils.unpacking.is_within_directory
    - sysconfig.get_paths
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.rich.style.Style.null
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - pip._internal.distributions.sdist.SourceDistribution._install_build_reqs
    - socket.inet_ntoa
    - pip._internal.req.req_file.build_parser
    - build_failures.append
    - variables.get
    - _canonicalize_regex.sub
    - hashes.has_one_of
    - SCHEME_RE.search
    - <builtin>.str
    - pip._internal.utils.unpacking.unpack_file
    - locale.getpreferredencoding
    - pip._internal.utils.temp_dir.TempDirectory._create
    - pip._internal.cache.SimpleWheelCache.get_path_for_link
    - os.path.expanduser
    - pip._internal.utils.misc.read_chunks
    - <builtin>.hash
    - index_urls.extend
    - pip._vendor.requests.utils._validate_header_part
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - re.sub
    - typing.cast.verbose
    - os.confstr
    - pip._internal.metadata.select_backend
    - key.upper
    - <builtin>.sorted
    - pip._internal.utils.setuptools_build.make_setuptools_bdist_wheel_args
    - ctypes.CDLL
    - platform.mac_ver
    - pip._vendor.rich.style.Style.__init__._make_color
    - PERCENT_RE.subn
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.cli.req_command.RequirementCommand.get_requirements
    - pip._internal.locations._distutils.get_scheme
    - pip._internal.cache.WheelCache.__init__
    - urllib.request.getproxies
    - collections.OrderedDict
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.rich.control.strip_control_codes
    - os.path.split
    - urllib.parse.urlparse
    - sys.stdout.write
    - collections.abc.MutableMapping.fileno
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - tag.name.startswith
    - pip._internal.network.session.PipSession.__init__
    - zipfp.close
    - textwrap.dedent
    - marshal.dumps
    - wheel_info.group
    - data.startswith
    - pip._vendor.requests.models.Request.__init__
    - zip.namelist
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - pip._internal.req.req_file.preprocess
    - pip._internal.models.direct_url.DirectUrl.__init__
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - command_output.endswith
    - pip._internal.utils.misc.split_auth_from_netloc
    - part.lower
    - logger.error
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.get_cookie_header
    - zip.infolist
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - pip._internal.req.req_file.get_line_parser.parse_line
    - pip._internal.build_env._get_system_sitepackages
    - warning_contexts.append
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.req.constructors.install_req_from_parsed_requirement
    - pip._internal.req.req_file.ignore_comments
    - pip._vendor.requests.utils.resolve_proxies
    - pip._internal.operations.prepare._check_download_dir
    - pip._internal.req.req_file.RequirementsFileParser.parse
    - proxies.get
    - urllib.parse.urlencode.seek
    - pip._internal.utils.misc._get_netloc
    - pip._internal.utils.glibc.libc_ver
    - v.encode
    - pip._internal.locations.get_purelib
    - pip._vendor.requests.compat.MutableMapping.__init__
    - <builtin>.bool
    - backend.get_requires_for_build_editable
    - pip._internal.req.constructors.parse_req_from_editable
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._vendor.packaging.requirements.Requirement.__init__
    - line.replace
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - h.update
    - HTTPError.__init__
    - component.encode
    - pip._internal.cli.req_command.RequirementCommand.make_resolver
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - line.rstrip
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - backend.build_wheel
    - data.decode
    - out.splitlines
    - pip._internal.operations.build.wheel_editable.build_wheel_editable
    - new_line.append
    - hooks.get
    - req.ensure_has_source_dir
    - pip._internal.cli.spinners.hidden_cursor
    - _SETUPTOOLS_SHIM.format
    - name.strip
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - sys.stdout.isatty
    - tempfile.mkdtemp
    - pip._internal.models.direct_url._get
    - pip._internal.locations._looks_like_bpo_44860
    - os.path.isfile
    - pip._vendor.rich.style.Style.__init__
    - platform.machine
    - pip._vendor.rich.markup.escape
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - pip._internal.utils.subprocess.call_subprocess
    - pathlib.Path.exists
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel
    - pip._vendor.requests.utils.super_len
    - typing.cast.warning
    - <builtin>.int
    - pip._vendor.requests._internal_utils.to_native_string
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - all_output.append
    - _legacy_version_replacement_map.get
    - pip._vendor.requests.utils.get_environ_proxies
    - pip._internal.utils.misc._transform_url
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - urllib.request.proxy_bypass
    - pip._internal.wheel_builder.build
    - contextlib.suppress
    - result.append
    - urllib.parse.quote.seek
    - <builtin>.type
    - token.startswith
    - pip._internal.cli.req_command.SessionCommandMixin.get_default_session
    - d.items
    - sysconfig.is_python_build
    - netloc.count
    - pip._internal.operations.build.build_tracker.get_build_tracker
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - pip._internal.utils.setuptools_build.make_setuptools_clean_args
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.urllib3.fields.RequestField.__init__
    - pip._internal.models.direct_url.DirectUrl.from_dict
    - history.pop
    - pip._internal.wheel_builder.should_build_for_wheel_command
    - io.BytesIO.write
    - pip._internal.operations.prepare.RequirementPreparer._complete_partial_requirements
    - shutil.move
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.auth._basic_auth_str
    - <builtin>.set
    - itertools.cycle
    - _HOST_PORT_RE.match
    - pip._vendor.packaging.tags._get_config_var
    - urllib.parse.quote.decode
    - requirements.append
    - pip._internal.operations.build.wheel_legacy.build_wheel_legacy
    - pip._internal.utils.subprocess.format_command_args
    - contextlib.ExitStack
    - os.umask
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._vendor.rich.markup.render
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - pip._internal.locations.base.change_root
    - <builtin>.next
    - RE_HANDLER.match
    - line.find
    - member.isdir
    - pip._internal.req.req_file.RequirementsFileParser._parse_file
    - zone_id.startswith
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable
    - functools.partial
    - version_str.decode
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - new_proxies.setdefault
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._internal.locations.base.is_osx_framework
    - pip._internal.distributions.sdist.SourceDistribution._raise_missing_reqs
    - os.urandom
    - pip._internal.index.package_finder.PackageFinder.create
    - pathlib.Path
    - pip._internal.models.link.Link.__init__
    - re.search
    - operator.attrgetter
    - pip._internal.models.direct_url.VcsInfo._from_dict
    - req.archive
    - saved_values.items
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - pip._internal.cache.WheelCache.record_download_origin
    - pip._internal.locations._distutils.get_platlib
    - pip._internal.metadata.get_default_environment
    - base.lower
    - byte.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - urllib.parse.quote.tell
    - spinner.finish
    - pip._internal.utils.logging.indent_log
    - subprocess.Popen
    - pip._internal.distributions.sdist.SourceDistribution.prepare_distribution_metadata
    - pip._internal.models.target_python.TargetPython.__init__
    - pip._internal.operations.prepare.unpack_url
    - rustc_output.split
    - pip._internal.build_env._dedup
    - binascii.hexlify
    - os.path.normpath
    - pip._vendor.urllib3.util.url._idna_encode
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - urllib.parse.urljoin.seek
    - string_network.count
    - pip._internal.utils.unpacking.current_umask
    - u_string.encode
    - pip._internal.req.req_file.RequirementsFileParser.__init__
    - os.path.basename
    - <builtin>.filter
    - requirement_set.requirements.values
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._internal.locations.base.get_major_minor_version
    - distutils.dist.Distribution.get_command_obj
    - collections.abc.MutableMapping.update
    - field.render_headers
    - pip._internal.wheel_builder._verify_one
    - typing.cast.debug
    - collections.abc.MutableMapping.__init__
    - urllib.parse.quote.lstrip
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - ctx.enter_context
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.object
    - old_v.parent.name.startswith
    - collections.abc.MutableMapping.tell
    - RE_TAGS.finditer
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._internal.operations.prepare.RequirementPreparer._ensure_link_req_src_dir
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.urllib3.util.url.parse_url
    - pip._internal.utils.misc.display_path
    - time.time
    - <builtin>.enumerate
    - extras.lower
    - datetime.timedelta
    - pip._internal.wheel_builder._should_build
    - open_tag.parameters.strip
    - pip._vendor.requests.utils.address_in_network
    - parts.append
    - COMMENT_RE.match
    - pip._internal.req.constructors.convert_extras
    - proc.stdout.readline
    - zipfile.is_zipfile
    - pip._internal.locations._looks_like_red_hat_scheme
    - pip._internal.locations._sysconfig.get_platlib
    - new_v.name.startswith
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - env.pop
    - path.startswith
    - pip._internal.req.req_install.check_legacy_setup_py_options
    - url_no_extras.lower
    - zipfile.ZipFile
    - output.insert
    - typing.NamedTuple.lower
    - pip._internal.network.session.looks_like_ci
    - req.hashes
    - pip._internal.utils.misc.normalize_path
    - vcs_backend.get_revision
    - d.iteritems
    - new_jar.set_cookie
    - match.span
    - pip._internal.index.collector.LinkCollector.create
    - netrc.netrc.authenticators
    - pip._internal.operations.build.build_tracker.update_env_context_manager
    - logger.getEffectiveLevel
    - urllib.parse.urlencode
    - os.path.dirname
    - pip._internal.locations._looks_like_red_hat_lib
    - pip._vendor.urllib3.packages.six.ensure_str
    - RE_COLOR.match
    - proc.stdout.close
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - pip._internal.utils.misc.ensure_dir
    - <builtin>.range
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.req.req_file.handle_option_line
    - socket.inet_aton
    - pip._vendor.packaging.tags.interpreter_name
    - io.BytesIO.getvalue
    - pip._vendor.distro.name
    - link_hash.as_dict
    - pip._internal.utils.compat.has_tls
    - pip._vendor.rich.text.Text.from_markup
    - pip._internal.req.req_file.expand_env_variables
    - version.lower
    - os.environ.get
    - send_kwargs.update
    - pip._internal.locations.get_scheme
    - line.split
    - shlex.split
    - http.cookiejar.CookieJar.set_policy
    - pip._internal.req.req_file.ParsedLine.__init__
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._internal.cache.SimpleWheelCache.__init__
    - net.split
    - name.split
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - proc.stdin.close
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - pip._internal.locations._distutils.get_purelib
    - pip._internal.cli.req_command.RequirementCommand.make_requirement_preparer
    - platform.release
    - ENCODING_RE.search
    - pip._internal.network.cache.SafeFileCache.__init__
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - pip._internal.req.req_file.handle_line
    - <builtin>.list
    - parsed_req.options.get
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - req.link.is_existing_dir
    - pip._internal.utils.misc.hide_url
    - s.decode
    - pip._internal.utils.packaging.get_requirement
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - sysconfig.get_config_var
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.requests.utils.check_header_validity
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.models.direct_url._exactly_one_of
    - parser.add_option
    - uri_bytes.count
    - spec_str.endswith
    - pip._internal.locations.get_platlib
    - platform.python_version
    - http.cookiejar.CookieJar.extract_cookies
    - pip._internal.cli.req_command.RequirementCommand.trace_basic_info
    - req.extras.asList
    - urllib.request.pathname2url
    - pip._internal.distributions.sdist.SourceDistribution._prepare_build_backend
    - fp.close
    - backend.subprocess_runner
    - pip._internal.locations._warn_mismatched
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - urllib.parse.urlsplit
    - pip._internal.network.session.PipSession.request
    - collections.OrderedDict.values
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - distutils.sysconfig.get_python_lib
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.getattr
    - tarfile.open
    - sys.platform.startswith
    - pip._vendor.urllib3.filepost.iter_field_objects
    - pip._internal.wheel_builder._should_cache
    - http.cookiejar.CookieJar.__init__
    - pip._internal.operations.build.wheel.build_wheel_pep517
    - path.find
    - data.split
    - interpreter.lower
    - pip._internal.utils.misc.normalize_version_info
    - urllib.parse.urljoin.fileno
    - pip._internal.distributions.make_distribution_for_install_requirement
    - pip._vendor.requests.cookies._copy_cookie_jar
    - logger.debug
    - _tempdir_manager.enter_context
    - plain_text.replace
    - urllib.parse.urlencode.fileno
    - output.append
    - site.getsitepackages
    - COMMENT_RE.sub
    - pip._internal.utils.glibc.glibc_version_string
    - urllib.parse.urljoin.upper
    - netrc.netrc
    - pip._internal.cache.EphemWheelCache.__init__
    - json.loads
    - itertools.combinations_with_replacement
    - pip._vendor.rich.markup._parse
    - letter.lower
    - hist.append
    - line.endswith
    - style_definition.split
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - urllib.parse.urljoin.encode
    - os.environ.copy
    - style_definition.strip
    - os.getenv
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - pip._internal.cache._hash_dict
    - sys.getdefaultencoding
    - pip._internal.models.format_control.FormatControl.__init__
    - pip._internal.operations.prepare._get_prepared_distribution
    - pip._vendor.packaging.utils.canonicalize_version
    - pip._internal.resolution.resolvelib.resolver.Resolver
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.req.constructors._strip_extras
    - boundary.decode
    - find_links.append
    - pip._internal.utils.misc.build_url_from_netloc
    - tag_text.partition
    - fp.read
    - collections.abc.MutableMapping.lower
    - changes.items
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._internal.locations._sysconfig.get_scheme
    - pip._vendor.requests.utils.requote_uri
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - collections.namedtuple.__init__
    - pip._internal.index.collector.LinkCollector.__init__
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.operations.prepare.get_http_url
    - cookie.value.replace
    - pip._internal.utils.urls.path_to_url
    - hashes.check_against_path
    - h.isalnum
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - urllib.parse.urlparse.hostname.endswith
    - urllib.parse.quote.split
    - urllib.parse.quote.encode
    - pip._internal.resolution.legacy.resolver.Resolver
    - pip._internal.models.direct_url.DirInfo.__init__
    - pip._internal.operations.prepare.File.__init__
    - pip._internal.network.session.user_agent
    - match.groups
    - itertools.dropwhile
    - typing.cast.error
    - pip._vendor.requests.utils.is_valid_cidr
    - path.split
    - pip._internal.utils.misc._redact_netloc
    - contextlib.ExitStack.enter_context
    - cmd.finalize_options
    - urllib.parse.quote.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - pip._internal.cli.command_context.CommandContextMixIn.enter_context
    - distutils.command.install.install
    - pip._internal.utils.encoding.auto_decode
    - pip._internal.utils.misc.parse_netloc
    - collections.abc.MutableMapping.get
    - result.update
    - os.path.realpath
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - s.strip
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - pip._vendor.requests.sessions.merge_hooks
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - os.getcwd
    - unpatched.replace
    - pip._vendor.requests.sessions.Session.request
    - tar.utime
    - <builtin>.zip
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.requests.utils.should_bypass_proxies
    - session_hooks.get
    - adapter.send
    - pip._vendor.urllib3.fields.guess_content_type
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.utils.misc.redact_auth_from_url
    - content.splitlines
    - pip._internal.utils.unpacking.split_leading_dir
    - <builtin>.setattr
    - pip._internal.network.session.PipSession.add_trusted_host
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.req.constructors._looks_like_path
    - requirement_set.warn_legacy_versions_and_specifiers
    - logger.warning
    - pip._internal.operations.prepare.RequirementPreparer.save_linked_requirement
    - req.needs_unpacked_archive
    - <builtin>.hasattr
    - pip._internal.locations._sysconfig.get_purelib
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - pip._internal.utils.unpacking.unzip_file
    - name.lower
    - pip._internal.req.constructors.install_req_from_line
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - data.setdefault
    - pip._vendor.requests.utils.dotted_netmask
    - urllib.request.getproxies.items
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - encoded_component.extend
    - zip.open
    - line.strip
    - pip._vendor.requests.sessions.Session.mount
    - urllib.parse.urljoin.split
    - DEFAULT_PORTS.get
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.idna.encode
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._internal.cache.WheelCache.get_path_for_link
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._internal.network.download.BatchDownloader.__init__
    - urllib.parse.urlunparse
    - subprocess.check_output
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.rich.style.Style.parse
    - pip._internal.utils.unpacking.has_leading_dir
    - os.path.isdir
    - collections.OrderedDict.items
    - os.path.abspath
    - resp.reason.decode
    - build_tracker.track
    - pip._internal.utils.logging.get_indentation
    - pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    - name.startswith
    - os.path.normcase
    - match.group
    - os.path.exists
    - warnings.warn
    - base64.b64encode.strip
    - links_to_fully_download.keys
    - typing.cast.critical
    - <builtin>.bytearray
    - field.decode
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - wheel_hash.hexdigest
    - pip._internal.network.session.PipSession.update_index_urls
    - request.method.upper
    - format_string.format
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.rich.style.Style.normalize
    - options.pop
    - pathlib.Path.write_text
    - ANSI_COLOR_NAMES.get
    - urllib.parse.urljoin.decode
    - search_scope.get_formatted_locations
    - pip._internal.req.constructors.parse_editable
    - os.fstat
    - new_jar.clear
    - spinner.spin
    - url.lower
    - resp.close
    - rustc_output.startswith
    - pip._internal.utils.subprocess.reveal_command_args
    - os.path.isabs
    - pip._vendor.requests.models.PreparedRequest.prepare
    - pip._internal.wheel_builder._get_cache_dir
    - file.read
    - p.endswith
    - color_match.groups
    - pip._vendor.requests.utils.unquote_unreserved
    - markers_as_string.strip
    - pip._vendor.distro.version
    - <builtin>.len
    - pip._vendor.requests.utils.rewind_body
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._internal.cli.spinners.RateLimiter.__init__
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - platform.system
    - pip._internal.req.req_file.break_args_options
    - time.perf_counter
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - pip._internal.operations.prepare.get_file_url
    - <builtin>.ord
    - typing.cast.info
    - splitstr.decode
    - shutil.which
    - finder.set_allow_all_prereleases
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - os.listdir
    - style_stack.append
    - vcs_backend.get_url_rev_and_auth
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - os.unlink
    - collections.abc.MutableMapping.items
    - pip._vendor.distro.codename
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - built_find_links.append
    - pip._internal.cli.req_command.RequirementCommand.determine_resolver_variant
    - logger.critical
    - pip._internal.build_env.BuildEnvironment.__init__
    - posixpath.splitext
    - <builtin>.frozenset
    - pip._internal.wheel_builder._build_one_inside_env
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - pip._vendor.packaging.version.parse
    - urllib.parse.urlparse.geturl
    - pip._internal.operations.prepare.RequirementPreparer.prepare_linked_requirements_more
    - _legacy_version_component_re.split
    - _egg_info_re.search
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - tar.extractfile
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - style.strip
    - download_info.to_json
    - pip._internal.models.direct_url.DirInfo._from_dict
    - pip._internal.metadata.get_wheel_distribution
    - url.split
    - pip._vendor.requests.cookies.MockResponse.__init__
    - pip._internal.locations._warn_if_mismatch
    - resp.raw.read
    - pip._internal.operations.build.wheel_legacy.get_legacy_build_wheel_path
    - merged_setting.update
    - pip._vendor.requests.sessions.Session.get
    - pip._vendor.urllib3.packages.six.raise_from
    - pip._internal.distributions.wheel.WheelDistribution.prepare_distribution_metadata
    - IPV6_ADDRZ_RE.match
    - pip._internal.build_env._Prefix.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - open_tag.name.startswith
    - vcs_backend.is_immutable_rev_checkout
    - typing.NamedTuple.__init__
    - pip._vendor.requests.models.PreparedRequest.__init__
    - random.randint
    - cookie.value.endswith
    - pip._internal.locations._sysconfig._infer_home
    - hashlib.sha224
    - pip._internal.wheel_builder._build_one
    - hashlib.sha256
    - pip._internal.cli.req_command.RequirementCommand._build_package_finder
    - finder.set_prefer_binary
    - pip._internal.operations.prepare.unpack_vcs_link
    - pip._internal.utils.misc.strtobool
    - os.path.commonprefix
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - <builtin>.reversed
    - urllib.parse.urljoin.startswith
    - build_successes.append
    - pip._internal.network.download.Downloader.__init__
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._internal.models.search_scope.SearchScope.create
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - pip._internal.models.direct_url.DirectUrl.from_json
    - logger.info
    - pip._internal.req.req_file.ParsedRequirement.__init__
    - pip._vendor.requests.sessions.Session.send
    - fp.write
    - pip._internal.utils.misc.hash_file
    - style_stack.pop
    - pip._internal.req.constructors.parse_req_from_line
    - gnu_libc_version.split
    - vcs_backend.unpack
    - distutils.dist.Distribution
    - io.BytesIO
    linkageType: pythonLinkage
    raised:
    - CommandError
    returnType: N/A
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 25
    ICount: 18
    IfCount: 17
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 266
    functionName: pip._internal.commands.install.InstallCommand.run
    functionSourceFile: pip._internal.commands.install
    functionUses: 1
    functionsReached:
    - pip._internal.req.constructors._get_url_from_path
    - <builtin>.sum
    - urllib.parse.quote.fileno
    - pip._vendor.rich._pick.pick_bool
    - pathlib.Path.read_text
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - link.startswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - parser.get_default_values
    - optparse.OptionParser
    - pip._vendor.packaging.tags._version_nodot
    - <builtin>.dict
    - parser.parse_args
    - string_network.split
    - itertools.chain
    - index_urls.append
    - urllib.parse.urlparse.netloc.split
    - err.splitlines
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - password.encode
    - pip._vendor.rich._wrap.words
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - pip._vendor.rich.containers.Lines.justify
    - pip._internal.wheel_builder._contains_egg_info
    - output.pop
    - jupyter_columns.isdigit
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - merged_setting.items
    - pip._internal.req.req_file.get_file_content
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - pip._internal.cache.Cache._get_cache_path_parts
    - logger.log
    - requirement_set.get_requirement
    - pip._internal.cache.WheelCache.get_ephem_path_for_link
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - scheme.lower
    - urllib.parse.urlparse._replace
    - backend.build_editable
    - urllib.parse.quote
    - old_v.name.startswith
    - pip._vendor.rich.control.Control.__init__
    - collections.abc.MutableMapping.pop
    - pip._internal.locations._looks_like_debian_scheme
    - urllib.parse.urljoin
    - pip._internal.commands.install.get_lib_location_guesses
    - pip._internal.models.direct_url.ArchiveInfo._from_dict
    - abi.lower
    - columns.isdigit
    - proc.wait
    - collections.abc.MutableMapping.startswith
    - re_word.match
    - pip._vendor.rich.json.JSON.from_data
    - collections.abc.MutableMapping.decode
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - distutils.dist.Distribution.get_option_dict
    - proc.communicate
    - pip._internal.index.package_finder.PackageFinder.__init__
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - pip._internal.wheel_builder._clean_one_legacy
    - pip._vendor.packaging.markers.format_full_version
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - part.startswith
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._internal.exceptions.InstallationSubprocessError.__init__
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - no_proxy.replace
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.rstrip_end
    - requirement.install
    - pip._internal.models.installation_report.InstallationReport.to_dict
    - platform.python_implementation
    - pip._internal.operations.build.wheel_legacy.format_command_result
    - urllib.request.getproxies.get
    - ZONE_ID_RE.search
    - pip._internal.models.installation_report.InstallationReport._install_req_to_dict
    - pip._vendor.rich.text.Text.join.iter_text
    - scheme.update
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - abc.ABC.background_color.lower
    - lib_dir_list.append
    - INTERPRETER_SHORT_NAMES.get
    - pip._internal.utils.filesystem._test_writable_dir_win
    - ast.literal_eval
    - <builtin>.map
    - pip._internal.models.direct_url._get_required
    - env.update
    - pip._internal.req.req_file.parse_requirements
    - urllib.parse.quote.upper
    - <builtin>.chr
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._vendor.requests.sessions.merge_setting
    - resolver.resolve
    - re.finditer
    - f.read
    - cookie.value.startswith
    - <builtin>.max
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - shlex.quote
    - kwargs.pop
    - urllib.parse.urlencode.tell
    - pip._vendor.requests.utils.set_environ
    - pip._vendor.rich.styled.Styled.__init__
    - <builtin>.isinstance
    - validator.match
    - original_word.lower
    - pip._internal.cli.cmdoptions.check_dist_restriction
    - ENV_VAR_RE.findall
    - part.zfill
    - path.endswith
    - pip._internal.locations._distutils.distutils_scheme
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - s.encode
    - uninstalled_pathset.commit
    - collections.abc.MutableMapping.upper
    - pip._internal.req.req_file.handle_requirement_line
    - collections.OrderedDict.pop
    - os.makedirs
    - match.end
    - pip._internal.req.req_install._has_option
    - pip._internal.req.req_file.join_lines
    - pip._vendor.requests.cookies.merge_cookies
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._internal.models.link.Link._egg_fragment
    - auth.split
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - urllib.parse.urljoin.lower
    - args.append
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - request_hooks.get
    - history.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.requests.hooks.dispatch_hook
    - pip._internal.operations.build.build_tracker.BuildTracker.__init__
    - typing.cast
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - <builtin>.hex
    - parts.pop
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - part.isdigit
    - options.features_enabled.extend
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - color_rgb.split
    - val.lower
    - urllib.parse.unquote
    - result.groups
    - typing.cast.getEffectiveLevel
    - pip._internal.utils.setuptools_build.make_setuptools_shim_args
    - format_str.format
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.misc.write_output
    - IPV4_RE.match
    - options.format_control.disallow_binaries
    - method.upper
    - re.match
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - pip._internal.operations.check.check_install_conflicts.<lambda1>
    - typing.cast.Distribution.from_wheel
    - pip._internal.utils.virtualenv.virtualenv_no_global
    - kwargs.setdefault
    - pip._internal.operations.check.check_install_conflicts
    - pip._internal.network.utils.raise_for_status
    - inspect.isclass
    - variants.get
    - m.group
    - authority.rpartition
    - copy.copy
    - pip._internal.req.constructors.install_req_from_editable
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - platform.lower
    - collections.abc.MutableMapping.seek
    - typing.cast.__rich_console__
    - urllib.parse.quote.lower
    - struct.pack
    - os.path.islink
    - pip._internal.models.scheme.Scheme.__init__
    - hooks.items
    - pip._internal.utils.deprecation.deprecated
    - urllib.parse.urlunsplit
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._internal.operations.check._simulate_installation_of
    - pip._internal.locations._log_context
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - pip._internal.operations.prepare.RequirementPreparer.__init__
    - pip._internal.req.req_file.RequirementsFileParser._parse_and_recurse
    - prefix.lower
    - http.cookiejar.Cookie
    - pip._internal.utils.filetypes.is_archive_file
    - platlib.replace
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.models.direct_url.VcsInfo.__init__
    - uninstalled_pathset.rollback
    - pip._internal.req.req_file.get_line_parser
    - os.path.splitdrive
    - k.encode
    - collections.abc.MutableMapping.encode
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    - parts.extend
    - req.link.splitext
    - typing.cast.Environment.default
    - sysconfig.get_paths
    - threading.RLock
    - pip._internal.req.install_given_reqs
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.rich.style.Style.null
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - socket.inet_ntoa
    - pip._internal.req.req_file.build_parser
    - build_failures.append
    - pip._vendor.rich.text.Text.split.flatten_spans
    - variables.get
    - _canonicalize_regex.sub
    - abc.ABC.__init__
    - SCHEME_RE.search
    - <builtin>.str
    - locale.getpreferredencoding
    - pip._internal.utils.temp_dir.TempDirectory._create
    - pip._internal.cache.SimpleWheelCache.get_path_for_link
    - pip._internal.utils.misc.read_chunks
    - os.path.expanduser
    - <builtin>.hash
    - index_urls.extend
    - pip._vendor.requests.utils._validate_header_part
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - typing.cast.verbose
    - re.sub
    - os.confstr
    - pip._internal.metadata.select_backend
    - os.access
    - <builtin>.sorted
    - ctypes.CDLL
    - pip._internal.utils.setuptools_build.make_setuptools_bdist_wheel_args
    - platform.mac_ver
    - pip._vendor.rich.style.Style.__init__._make_color
    - key.upper
    - PERCENT_RE.subn
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.cli.req_command.RequirementCommand.get_requirements
    - pip._internal.locations._distutils.get_scheme
    - pip._internal.cache.WheelCache.__init__
    - urllib.request.getproxies
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - env.get_distribution
    - collections.OrderedDict
    - pip._internal.cli.spinners.InteractiveSpinner.__init__
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.rich.control.strip_control_codes
    - os.path.split
    - urllib.parse.urlparse
    - sys.stdout.write
    - pip._vendor.rich.containers.Lines.extend
    - collections.abc.MutableMapping.fileno
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - tag.name.startswith
    - pip._internal.network.session.PipSession.__init__
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._internal.commands.install.InstallCommand._handle_target_dir
    - wheel_info.group
    - data.startswith
    - pip._vendor.requests.models.Request.__init__
    - pip._internal.operations.check.warn_legacy_versions_and_specifiers
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - text.partition
    - pip._internal.operations.check._create_whitelist
    - pip._internal.req.req_file.preprocess
    - pip._internal.models.direct_url.DirectUrl.__init__
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - command_output.endswith
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.vcs.versioncontrol.is_url
    - pip._internal.utils.misc.split_auth_from_netloc
    - part.lower
    - logger.error
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.get_cookie_header
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - pip._internal.req.req_file.get_line_parser.parse_line
    - warning_contexts.append
    - pip._internal.cli.spinners.RateLimiter.reset
    - pip._internal.req.constructors.install_req_from_parsed_requirement
    - pip._internal.req.req_file.ignore_comments
    - jupyter_lines.isdigit
    - pip._vendor.requests.utils.resolve_proxies
    - pip._vendor.packaging.markers.default_environment
    - pip._internal.req.req_file.RequirementsFileParser.parse
    - line.pad_right
    - proxies.get
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - urllib.parse.urlencode.seek
    - pip._internal.utils.misc._get_netloc
    - pip._internal.utils.misc.check_externally_managed
    - pip._internal.utils.glibc.libc_ver
    - attr.has
    - v.encode
    - <builtin>.bool
    - pip._vendor.requests.compat.MutableMapping.__init__
    - pip._internal.req.constructors.parse_req_from_editable
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.packaging.requirements.Requirement.__init__
    - line.replace
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - h.update
    - HTTPError.__init__
    - component.encode
    - pip._internal.cli.req_command.RequirementCommand.make_resolver
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - backend.build_wheel
    - data.decode
    - out.splitlines
    - pip._internal.operations.build.wheel_editable.build_wheel_editable
    - new_line.append
    - hooks.get
    - pip._internal.cli.spinners.hidden_cursor
    - pip._internal.utils.virtualenv._no_global_under_venv
    - _SETUPTOOLS_SHIM.format
    - name.strip
    - pip._vendor.rich.segment.Segment.line
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - sys.stdout.isatty
    - tempfile.mkdtemp
    - pip._internal.models.direct_url._get
    - pip._internal.cli.cmdoptions.make_target_python
    - pip._internal.locations._looks_like_bpo_44860
    - os.path.isfile
    - pip._vendor.rich.style.Style.__init__
    - platform.machine
    - pip._vendor.rich.markup.escape
    - new_segments.insert
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - pip._internal.utils.subprocess.call_subprocess
    - pathlib.Path.exists
    - pip._vendor.requests.utils.super_len
    - typing.cast.warning
    - <builtin>.int
    - os.remove
    - pip._vendor.requests._internal_utils.to_native_string
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - all_output.append
    - _legacy_version_replacement_map.get
    - pip._vendor.requests.utils.get_environ_proxies
    - pip._internal.cli.spinners.NonInteractiveSpinner.__init__
    - req.specifier.contains
    - pip._internal.utils.misc._transform_url
    - urllib.request.proxy_bypass
    - pip._internal.wheel_builder.build
    - contextlib.suppress
    - to_install.items
    - pip._vendor.rich.console.Console.__init__
    - <builtin>.type
    - result.append
    - pip._vendor.rich.pretty._safe_isinstance
    - urllib.parse.quote.seek
    - token.startswith
    - pip._internal.metadata.get_environment
    - pip._internal.cli.req_command.SessionCommandMixin.get_default_session
    - d.items
    - sysconfig.is_python_build
    - netloc.count
    - pip._internal.operations.build.build_tracker.get_build_tracker
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - pip._internal.utils.setuptools_build.make_setuptools_clean_args
    - resolver.get_installation_order
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.urllib3.fields.RequestField.__init__
    - pip._internal.models.direct_url.DirectUrl.from_dict
    - history.pop
    - io.BytesIO.write
    - shutil.move
    - location.encode
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.auth._basic_auth_str
    - pip._internal.utils.misc.protect_pip_from_modification_on_windows
    - <builtin>.set
    - word_match.group
    - itertools.cycle
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - platform.python_version_tuple
    - requirements.append
    - pip._vendor.packaging.tags._get_config_var
    - pip._internal.operations.build.wheel_legacy.build_wheel_legacy
    - pip._internal.utils.subprocess.format_command_args
    - contextlib.ExitStack
    - line.expand_tabs
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._internal.commands.install.decide_user_install
    - pip._vendor.rich.markup.render
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - pip._internal.locations.base.change_root
    - <builtin>.next
    - RE_HANDLER.match
    - line.find
    - pip._internal.req.req_file.RequirementsFileParser._parse_file
    - zone_id.startswith
    - functools.partial
    - version_str.decode
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - new_proxies.setdefault
    - urllib.parse.urljoin.tell
    - pip._vendor.rich.cells.cell_len
    - urllib.parse.urlparse.scheme.startswith
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - pip._internal.locations.base.is_osx_framework
    - os.urandom
    - to_install.keys
    - pathlib.Path
    - pip._internal.models.link.Link.__init__
    - os.getuid
    - pip._internal.index.package_finder.PackageFinder.create
    - re.search
    - pip._vendor.rich.console.Console.print
    - operator.attrgetter
    - pip._internal.models.direct_url.VcsInfo._from_dict
    - saved_values.items
    - items.append
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - pip._internal.cache.WheelCache.record_download_origin
    - base.lower
    - pip._internal.metadata.get_default_environment
    - line.divide
    - byte.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - urllib.parse.quote.tell
    - spinner.finish
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._internal.utils.logging.indent_log
    - subprocess.Popen
    - pip._internal.models.target_python.TargetPython.__init__
    - rustc_output.split
    - line.truncate
    - _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match
    - pip._vendor.rich.cells.set_cell_size
    - binascii.hexlify
    - word_match.span
    - os.path.normpath
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.urllib3.util.url._idna_encode
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - pip._vendor.rich.get_console
    - urllib.parse.urljoin.seek
    - string_network.count
    - u_string.encode
    - pip._internal.req.req_file.RequirementsFileParser.__init__
    - os.path.basename
    - pip._vendor.rich.protocol.rich_cast
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - requirement_set.requirements.values
    - pip._internal.locations.base.get_major_minor_version
    - distutils.dist.Distribution.get_command_obj
    - <builtin>.filter
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.update
    - field.render_headers
    - pip._internal.wheel_builder._verify_one
    - <builtin>.repr
    - typing.cast.debug
    - collections.abc.MutableMapping.__init__
    - installed.sort
    - urllib.parse.quote.lstrip
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.utils.canonicalize_name
    - _options.reset_height
    - ctx.enter_context
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.urllib3.util.url.parse_url
    - time.time
    - <builtin>.enumerate
    - extras.lower
    - datetime.timedelta
    - open_tag.parameters.strip
    - pip._internal.wheel_builder._should_build
    - pip._vendor.rich.text.Text.render.get_current_style
    - parts.append
    - COMMENT_RE.match
    - pip._internal.req.constructors.convert_extras
    - pip._vendor.requests.utils.address_in_network
    - proc.stdout.readline
    - pip._internal.locations._looks_like_red_hat_scheme
    - tokens.append
    - new_v.name.startswith
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - env.pop
    - path.startswith
    - pip._internal.req.req_install.check_legacy_setup_py_options
    - random.choice
    - url_no_extras.lower
    - output.insert
    - pip._internal.network.session.looks_like_ci
    - typing.NamedTuple.lower
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._internal.utils.misc.normalize_path
    - d.iteritems
    - platform.version
    - new_jar.set_cookie
    - match.span
    - pip._internal.index.collector.LinkCollector.create
    - netrc.netrc.authenticators
    - pip._internal.cli.req_command.warn_if_run_as_root
    - pip._internal.operations.build.build_tracker.update_env_context_manager
    - logger.getEffectiveLevel
    - os.path.dirname
    - urllib.parse.urlencode
    - pip._internal.locations._looks_like_red_hat_lib
    - pip._vendor.urllib3.packages.six.ensure_str
    - RE_COLOR.match
    - proc.stdout.close
    - pip._vendor.rich.console.detect_legacy_windows
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - ireq.get_dist
    - pip._internal.utils.misc.ensure_dir
    - <builtin>.range
    - pip._vendor.rich.text.Text.copy
    - pip._internal.req.req_file.handle_option_line
    - socket.inet_aton
    - pip._vendor.packaging.tags.interpreter_name
    - ireq.download_info.to_dict
    - pip._vendor.distro.name
    - io.BytesIO.getvalue
    - link_hash.as_dict
    - pip._internal.utils.compat.has_tls
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.cells.cached_cell_len
    - pip._vendor.rich.text.Text.from_markup
    - pip._internal.req.req_file.expand_env_variables
    - version.lower
    - os.environ.get
    - pip._internal.locations.get_scheme
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - send_kwargs.update
    - http.cookiejar.CookieJar.set_policy
    - pip._internal.wheel_builder.should_build_for_install_command
    - line.pad_left
    - pip._internal.req.req_file.ParsedLine.__init__
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._internal.cache.SimpleWheelCache.__init__
    - net.split
    - shlex.split
    - name.split
    - pip._internal.cli.spinners.NonInteractiveSpinner.finish
    - pip._internal.req.InstallationResult.__init__
    - proc.stdin.close
    - pip._internal.cli.req_command.RequirementCommand.make_requirement_preparer
    - platform.release
    - ENCODING_RE.search
    - pip._internal.network.cache.SafeFileCache.__init__
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - pip._internal.req.req_file.handle_line
    - <builtin>.list
    - parsed_req.options.get
    - os.close
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - s.decode
    - pip._internal.utils.packaging.get_requirement
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - sysconfig.get_config_var
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.requests.utils.check_header_validity
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.models.direct_url._exactly_one_of
    - parser.add_option
    - uri_bytes.count
    - spec_str.endswith
    - http.cookiejar.CookieJar.extract_cookies
    - platform.python_version
    - pip._internal.cli.req_command.RequirementCommand.trace_basic_info
    - req.extras.asList
    - pip._internal.locations._warn_mismatched
    - urllib.request.pathname2url
    - backend.subprocess_runner
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - urllib.parse.urlsplit
    - pip._internal.network.session.PipSession.request
    - collections.OrderedDict.values
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.rich.text.Text.split
    - <builtin>.getattr
    - sys.platform.startswith
    - pip._vendor.urllib3.filepost.iter_field_objects
    - pip._internal.wheel_builder._should_cache
    - word.rstrip
    - pip._internal.operations.build.wheel.build_wheel_pep517
    - conflicting_deps.add
    - http.cookiejar.CookieJar.__init__
    - data.split
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - interpreter.lower
    - missing_deps.add
    - pip._internal.utils.misc.normalize_version_info
    - urllib.parse.urljoin.fileno
    - pip._internal.distributions.make_distribution_for_install_requirement
    - pip._vendor.requests.cookies._copy_cookie_jar
    - logger.debug
    - _tempdir_manager.enter_context
    - plain_text.replace
    - urllib.parse.urlencode.fileno
    - output.append
    - env.iter_installed_distributions
    - COMMENT_RE.sub
    - pip._internal.utils.glibc.glibc_version_string
    - pip._vendor.rich.pretty._is_attr_object
    - urllib.parse.urljoin.upper
    - pip._internal.cache.EphemWheelCache.__init__
    - json.loads
    - netrc.netrc
    - pip._internal.commands.install.InstallCommand._warn_about_conflicts
    - pip._vendor.rich.console.Console.render_str
    - itertools.combinations_with_replacement
    - pip._vendor.rich.markup._parse
    - letter.lower
    - s.startswith
    - hist.append
    - style_definition.split
    - line.endswith
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - urllib.parse.urljoin.encode
    - os.environ.copy
    - style_definition.strip
    - pip._internal.commands.install.InstallCommand._determine_conflicts
    - os.getenv
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - new_fields.append
    - pip._internal.cache._hash_dict
    - sys.getdefaultencoding
    - pip._vendor.rich.console.NewLine.__init__
    - pip._internal.models.format_control.FormatControl.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - pip._vendor.packaging.utils.canonicalize_version
    - pip._internal.req.constructors._strip_extras
    - pip._internal.resolution.resolvelib.resolver.Resolver
    - pip._vendor.packaging.version._parse_local_version
    - boundary.decode
    - find_links.append
    - pip._internal.utils.misc.build_url_from_netloc
    - tag_text.partition
    - fp.read
    - cls.__new__
    - collections.abc.MutableMapping.lower
    - changes.items
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._internal.locations._sysconfig.get_scheme
    - pip._vendor.requests.utils.requote_uri
    - pip._vendor.rich.console._is_jupyter
    - installed.add
    - pip._internal.cli.spinners.NonInteractiveSpinner._update
    - collections.namedtuple.__init__
    - pip._internal.index.collector.LinkCollector.__init__
    - packages_affected.add
    - rich_visited_set.add
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._internal.models.search_scope.SearchScope.__init__
    - cookie.value.replace
    - shutil.rmtree
    - pip._internal.utils.urls.path_to_url
    - dataclasses.is_dataclass
    - h.isalnum
    - pip._internal.cli.spinners.open_spinner
    - handler_match.groups
    - urllib.parse.urlparse.hostname.endswith
    - urllib.parse.quote.split
    - urllib.parse.quote.encode
    - pip._internal.resolution.legacy.resolver.Resolver
    - pip._internal.network.session.user_agent
    - pip._internal.models.direct_url.DirInfo.__init__
    - pip._internal.utils.misc._redact_netloc
    - typing.cast.error
    - match.groups
    - cmd.finalize_options
    - itertools.dropwhile
    - pip._vendor.requests.utils.is_valid_cidr
    - path.split
    - contextlib.ExitStack.enter_context
    - urllib.parse.quote.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - pip._internal.cli.command_context.CommandContextMixIn.enter_context
    - distutils.command.install.install
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._internal.utils.encoding.auto_decode
    - pip._internal.utils.misc.parse_netloc
    - pip._internal.commands.install.create_os_error_message
    - collections.abc.MutableMapping.get
    - pip._vendor.rich.align.Align.__init__
    - result.update
    - os.path.realpath
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - highlight_text.copy_styles
    - pip._vendor.requests.sessions.merge_hooks
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - pip._vendor.rich._win32_console.GetStdHandle
    - unpatched.replace
    - pip._vendor.requests.sessions.Session.request
    - pip._vendor.rich._loop.loop_last
    - <builtin>.zip
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - typing.cast.Environment.from_paths
    - pip._vendor.requests.utils.should_bypass_proxies
    - session_hooks.get
    - adapter.send
    - pip._vendor.urllib3.fields.guess_content_type
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.utils.misc.redact_auth_from_url
    - content.splitlines
    - <builtin>.setattr
    - installed.append
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.network.session.PipSession.add_trusted_host
    - pip._vendor.rich.text.Text.join
    - pip._internal.req.constructors._looks_like_path
    - requirement_set.warn_legacy_versions_and_specifiers
    - logger.warning
    - <builtin>.hasattr
    - package_set.items
    - hook.process_renderables
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - pip._internal.operations.check.check_package_set
    - name.lower
    - pip._internal.req.constructors.install_req_from_line
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - data.setdefault
    - pip._internal.utils.misc.get_pip_version
    - pip._vendor.requests.utils.dotted_netmask
    - urllib.request.getproxies.items
    - pip._vendor.rich.console.Console.render
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - encoded_component.extend
    - line.strip
    - pip._vendor.requests.sessions.Session.mount
    - urllib.parse.urljoin.split
    - pip._internal.utils.virtualenv._get_pyvenv_cfg_lines
    - DEFAULT_PORTS.get
    - os.path.join
    - term.rpartition
    - <builtin>.min
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.idna.encode
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._internal.cache.WheelCache.get_path_for_link
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._internal.network.download.BatchDownloader.__init__
    - urllib.parse.urlunparse
    - subprocess.check_output
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.rich.style.Style.parse
    - os.path.isdir
    - pip._internal.operations.check.create_package_set_from_installed
    - dist.iter_dependencies
    - pip._vendor.rich.cells.chop_cells
    - pip._vendor.rich.theme.ThemeStack.__init__
    - os.path.abspath
    - collections.OrderedDict.items
    - resp.reason.decode
    - pip._internal.utils.logging.get_indentation
    - name.startswith
    - match.group
    - os.path.exists
    - os.path.normcase
    - warnings.warn
    - requirement.uninstall
    - base64.b64encode.strip
    - typing.cast.critical
    - <builtin>.bytearray
    - pip._vendor.rich.console.Console.print_json
    - field.decode
    - pip._internal.req.constructors.RequirementParts.__init__
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - wheel_hash.hexdigest
    - line.startswith
    - pip._internal.network.session.PipSession.update_index_urls
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.rich.style.Style.copy
    - pip._vendor.rich.style.Style.normalize
    - options.pop
    - pathlib.Path.write_text
    - pip._internal.utils.filesystem.test_writable_dir
    - ANSI_COLOR_NAMES.get
    - urllib.parse.urljoin.decode
    - search_scope.get_formatted_locations
    - pip._internal.req.constructors.parse_editable
    - os.fstat
    - new_jar.clear
    - spinner.spin
    - url.lower
    - resp.close
    - pip._vendor.rich.print_json
    - rustc_output.startswith
    - os.path.isabs
    - ctypes.wintypes.DWORD
    - pip._internal.wheel_builder._get_cache_dir
    - pip._internal.utils.subprocess.reveal_command_args
    - pip._vendor.requests.models.PreparedRequest.prepare
    - file.read
    - p.endswith
    - color_match.groups
    - spans.sort
    - pip._vendor.requests.utils.unquote_unreserved
    - pip._vendor.distro.version
    - word.get_style_at_offset
    - <builtin>.len
    - markers_as_string.strip
    - pip._vendor.requests.utils.rewind_body
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._internal.cli.spinners.RateLimiter.__init__
    - pip._internal.models.installation_report.InstallationReport.__init__
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - platform.system
    - time.perf_counter
    - pip._internal.req.req_file.break_args_options
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - <builtin>.ord
    - req.marker.evaluate
    - typing.cast.info
    - pip._internal.commands.install.site_packages_writable
    - shutil.which
    - splitstr.decode
    - finder.set_allow_all_prereleases
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - os.listdir
    - style_stack.append
    - <builtin>.all
    - pip._vendor.rich.json.JSON.__init__
    - pip._vendor.rich._wrap.divide_line
    - pip._vendor.requests.utils.to_key_val_list
    - os.unlink
    - collections.abc.MutableMapping.items
    - pip._vendor.distro.codename
    - sysconfig.get_path
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - operator.itemgetter
    - pip._internal.cli.req_command.RequirementCommand.determine_resolver_variant
    - built_find_links.append
    - posixpath.splitext
    - pip._internal.req._validate_requirements
    - <builtin>.frozenset
    - pip._internal.wheel_builder._build_one_inside_env
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - pip._vendor.packaging.version.parse
    - urllib.parse.urlparse.geturl
    - _legacy_version_component_re.split
    - _egg_info_re.search
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - threading.local.__init__
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - style.strip
    - download_info.to_json
    - pip._internal.models.direct_url.DirInfo._from_dict
    - typing.cast.exception
    - os.open
    - pip._internal.metadata.get_wheel_distribution
    - url.split
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - pip._internal.operations.build.wheel_legacy.get_legacy_build_wheel_path
    - merged_setting.update
    - pip._vendor.requests.sessions.Session.get
    - pip._vendor.urllib3.packages.six.raise_from
    - pip._vendor.rich.segment.Segment.apply_style
    - IPV6_ADDRZ_RE.match
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - vcs_backend.is_immutable_rev_checkout
    - pip._vendor.requests.models.PreparedRequest.__init__
    - random.randint
    - cookie.value.endswith
    - pip._internal.locations._sysconfig._infer_home
    - hashlib.sha224
    - pip._internal.wheel_builder._build_one
    - hashlib.sha256
    - sys.getwindowsversion
    - finder.set_prefer_binary
    - pip._internal.cli.req_command.RequirementCommand._build_package_finder
    - pip._vendor.rich.console.Console._detect_color_system
    - pip._internal.utils.misc.strtobool
    - pip._internal.utils.virtualenv._no_global_under_legacy_virtualenv
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - urllib.parse.urljoin.startswith
    - build_successes.append
    - pip._internal.network.download.Downloader.__init__
    - pip._vendor.rich.pretty.is_expandable
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._internal.models.search_scope.SearchScope.create
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - pip._internal.models.direct_url.DirectUrl.from_json
    - logger.info
    - text.clear
    - pip._internal.req.req_file.ParsedRequirement.__init__
    - pip._vendor.requests.sessions.Session.send
    - style_stack.pop
    - json.dump
    - pip._internal.req.constructors.parse_req_from_line
    - gnu_libc_version.split
    - pip._internal.utils.misc.hash_file
    - distutils.dist.Distribution
    - io.BytesIO
    linkageType: pythonLinkage
    raised:
    - CommandError
    - InstallationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 257
    functionName: pip._internal.cli.req_command.RequirementCommand.__init__
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - options
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 263
    functionName: pip._internal.cli.req_command.RequirementCommand.determine_resolver_variant
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f30f3cdfbe0>
    - <ast.Constant object at 0x7f30f3cdfc10>
    argNames:
    - cls
    - temp_build_dir
    - options
    - build_tracker
    - session
    - finder
    - use_user_site
    - download_dir
    - verbosity
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 271
    functionName: pip._internal.cli.req_command.RequirementCommand.make_requirement_preparer
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - pip._internal.network.download.Downloader.__init__
    - pip._internal.cli.req_command.RequirementCommand.determine_resolver_variant
    - pip._internal.network.download.BatchDownloader.__init__
    - logger.warning
    - pip._internal.operations.prepare.RequirementPreparer.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 15
    argDefaultValues: []
    argNames:
    - self
    - build_dir
    - download_dir
    - src_dir
    - build_isolation
    - check_build_deps
    - build_tracker
    - session
    - progress_bar
    - finder
    - require_hashes
    - use_user_site
    - lazy_wheel
    - verbosity
    - legacy_resolver
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 216
    functionName: pip._internal.operations.prepare.RequirementPreparer.__init__
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 5
    functionsReached:
    - <builtin>.super
    - pip._internal.network.download.Downloader.__init__
    - pip._internal.network.download.BatchDownloader.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd7ebb20>
    - <ast.Constant object at 0x7f30fd7ebaf0>
    - <ast.Constant object at 0x7f30fd7ebac0>
    - <ast.Constant object at 0x7f30fd7eba90>
    - <ast.Constant object at 0x7f30fd7eba60>
    - <ast.Constant object at 0x7f30fd7eba30>
    - <ast.Constant object at 0x7f30fd7eba00>
    - <ast.Constant object at 0x7f30fd7eb9d0>
    argNames:
    - cls
    - preparer
    - finder
    - options
    - wheel_cache
    - use_user_site
    - ignore_installed
    - ignore_requires_python
    - force_reinstall
    - upgrade_strategy
    - use_pep517
    - py_version_info
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 326
    functionName: pip._internal.cli.req_command.RequirementCommand.make_resolver
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 4
    functionsReached:
    - functools.partial
    - pip._internal.resolution.resolvelib.resolver.Resolver
    - pip._internal.resolution.legacy.resolver.Resolver
    - pip._internal.cli.req_command.RequirementCommand.determine_resolver_variant
    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: pip._internal.resolution.resolvelib.resolver.Resolver
    functionSourceFile: <builtin>
    functionUses: 5
    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: pip._internal.resolution.legacy.resolver.Resolver
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - args
    - options
    - finder
    - session
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 384
    functionName: pip._internal.cli.req_command.RequirementCommand.get_requirements
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 4
    functionsReached:
    - pip._internal.req.constructors._get_url_from_path
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - parser.get_default_values
    - optparse.OptionParser
    - pip._vendor.requests.models.PreparedRequest.copy
    - <builtin>.dict
    - parser.parse_args
    - string_network.split
    - urllib.parse.urlparse.netloc.split
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - <builtin>.tuple
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - password.encode
    - output.pop
    - merged_setting.items
    - pip._internal.req.req_file.get_file_content
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - scheme.lower
    - urllib.parse.urlparse._replace
    - urllib.parse.quote
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - abi.lower
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.decode
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - pip._vendor.urllib3.filepost.choose_boundary
    - part.startswith
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - no_proxy.replace
    - pip._internal.req.req_install.InstallRequirement.__init__
    - urllib.request.getproxies.get
    - ZONE_ID_RE.search
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._internal.req.req_file.parse_requirements
    - urllib.parse.quote.upper
    - <builtin>.chr
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._vendor.requests.sessions.merge_setting
    - cookie.value.startswith
    - pip._vendor.requests.utils.set_environ
    - f.read
    - <builtin>.max
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - <builtin>.isinstance
    - validator.match
    - ENV_VAR_RE.findall
    - part.zfill
    - path.endswith
    - s.encode
    - collections.abc.MutableMapping.upper
    - pip._internal.req.req_file.handle_requirement_line
    - collections.OrderedDict.pop
    - pip._vendor.requests.cookies.merge_cookies
    - pip._internal.req.req_file.join_lines
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._internal.models.link.Link._egg_fragment
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - args.append
    - urllib.parse.urljoin.lower
    - request_hooks.get
    - history.insert
    - pip._vendor.requests.hooks.dispatch_hook
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - <builtin>.hex
    - parts.pop
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - part.isdigit
    - options.features_enabled.extend
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - urllib.parse.unquote
    - result.groups
    - format_str.format
    - IPV4_RE.match
    - method.upper
    - re.match
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - authority.rpartition
    - kwargs.setdefault
    - pip._internal.network.utils.raise_for_status
    - copy.copy
    - m.group
    - pip._internal.req.constructors.install_req_from_editable
    - platform.lower
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - hooks.items
    - pip._internal.utils.deprecation.deprecated
    - pip._internal.req.req_file.RequirementsFileParser._parse_and_recurse
    - prefix.lower
    - http.cookiejar.Cookie
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.req.req_file.get_line_parser
    - k.encode
    - collections.abc.MutableMapping.encode
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - socket.inet_ntoa
    - pip._internal.req.req_file.build_parser
    - SCHEME_RE.search
    - <builtin>.str
    - locale.getpreferredencoding
    - os.path.expanduser
    - <builtin>.hash
    - index_urls.extend
    - pip._vendor.requests.utils._validate_header_part
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - key.upper
    - PERCENT_RE.subn
    - urllib.request.getproxies
    - collections.OrderedDict
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - urllib.parse.urlparse
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.requests.models.Request.__init__
    - data.startswith
    - wheel_info.group
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - pip._internal.req.req_file.preprocess
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.get_cookie_header
    - pip._vendor.requests.sessions.Session.get_adapter
    - pip._internal.req.req_file.get_line_parser.parse_line
    - <builtin>.iter
    - pip._internal.req.constructors.install_req_from_parsed_requirement
    - pip._internal.req.req_file.ignore_comments
    - pip._vendor.requests.utils.resolve_proxies
    - pip._internal.req.req_file.RequirementsFileParser.parse
    - proxies.get
    - urllib.parse.urlencode.seek
    - v.encode
    - pip._vendor.requests.compat.MutableMapping.__init__
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - pip._vendor.packaging.requirements.Requirement.__init__
    - line.replace
    - HTTPError.__init__
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - data.decode
    - new_line.append
    - hooks.get
    - name.strip
    - <builtin>.any
    - os.path.isfile
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - _legacy_version_replacement_map.get
    - pip._vendor.requests.utils.get_environ_proxies
    - urllib.request.proxy_bypass
    - urllib.parse.quote.seek
    - result.append
    - <builtin>.type
    - token.startswith
    - d.items
    - netloc.count
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - history.pop
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.auth._basic_auth_str
    - <builtin>.set
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - requirements.append
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - <builtin>.next
    - line.find
    - pip._internal.req.req_file.RequirementsFileParser._parse_file
    - zone_id.startswith
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - new_proxies.setdefault
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - os.urandom
    - pip._internal.models.link.Link.__init__
    - re.search
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - byte.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - urllib.parse.quote.tell
    - binascii.hexlify
    - os.path.normpath
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.parse.urljoin.seek
    - string_network.count
    - u_string.encode
    - pip._internal.req.req_file.RequirementsFileParser.__init__
    - os.path.basename
    - field.render_headers
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.quote.lstrip
    - cls._hash_url_fragment_re.search
    - pip._internal.req.constructors.deduce_helpful_msg
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.urllib3.util.url.parse_url
    - <builtin>.enumerate
    - extras.lower
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - COMMENT_RE.match
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - path.startswith
    - url_no_extras.lower
    - output.insert
    - d.iteritems
    - new_jar.set_cookie
    - match.span
    - netrc.netrc.authenticators
    - os.path.dirname
    - urllib.parse.urlencode
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - <builtin>.range
    - pip._internal.req.req_file.handle_option_line
    - socket.inet_aton
    - io.BytesIO.getvalue
    - link_hash.as_dict
    - pip._internal.req.req_file.expand_env_variables
    - version.lower
    - send_kwargs.update
    - os.environ.get
    - line.split
    - shlex.split
    - http.cookiejar.CookieJar.set_policy
    - pip._internal.req.req_file.ParsedLine.__init__
    - pip._vendor.requests.cookies.MockRequest.__init__
    - net.split
    - name.split
    - ENCODING_RE.search
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - pip._internal.req.req_file.handle_line
    - <builtin>.list
    - parsed_req.options.get
    - s.decode
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._internal.utils.packaging.get_requirement
    - pip._vendor.requests.utils.check_header_validity
    - pip._internal.utils.misc.is_installable_dir
    - parser.add_option
    - uri_bytes.count
    - spec_str.endswith
    - http.cookiejar.CookieJar.extract_cookies
    - req.extras.asList
    - urllib.request.pathname2url
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - urllib.parse.urlsplit
    - pip._internal.network.session.PipSession.request
    - collections.OrderedDict.values
    - pip._vendor.requests.cookies.create_cookie
    - <builtin>.getattr
    - pip._vendor.urllib3.filepost.iter_field_objects
    - http.cookiejar.CookieJar.__init__
    - data.split
    - interpreter.lower
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - logger.debug
    - urllib.parse.urlencode.fileno
    - output.append
    - COMMENT_RE.sub
    - urllib.parse.urljoin.upper
    - netrc.netrc
    - letter.lower
    - hist.append
    - line.endswith
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - os.getenv
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - sys.getdefaultencoding
    - pip._internal.req.constructors._strip_extras
    - pip._vendor.packaging.version._parse_local_version
    - boundary.decode
    - find_links.append
    - pip._internal.utils.misc.build_url_from_netloc
    - fp.read
    - collections.abc.MutableMapping.lower
    - pip._vendor.requests.utils.requote_uri
    - collections.namedtuple.__init__
    - pip._internal.models.search_scope.SearchScope.__init__
    - cookie.value.replace
    - pip._internal.utils.urls.path_to_url
    - h.isalnum
    - urllib.parse.urlparse.hostname.endswith
    - urllib.parse.quote.split
    - urllib.parse.quote.encode
    - path.split
    - match.groups
    - itertools.dropwhile
    - pip._vendor.requests.utils.is_valid_cidr
    - urllib.parse.quote.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - pip._internal.utils.encoding.auto_decode
    - pip._internal.utils.misc.parse_netloc
    - collections.abc.MutableMapping.get
    - result.update
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - s.strip
    - pip._vendor.requests.sessions.merge_hooks
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - pip._vendor.requests.sessions.Session.request
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.requests.utils.should_bypass_proxies
    - session_hooks.get
    - adapter.send
    - pip._vendor.urllib3.fields.guess_content_type
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - content.splitlines
    - pip._internal.network.session.PipSession.add_trusted_host
    - pip._internal.req.constructors._looks_like_path
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - name.lower
    - pip._internal.req.constructors.install_req_from_line
    - pip._vendor.requests.utils.dotted_netmask
    - urllib.request.getproxies.items
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - encoded_component.extend
    - line.strip
    - pip._vendor.requests.sessions.Session.mount
    - urllib.parse.urljoin.split
    - DEFAULT_PORTS.get
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.idna.encode
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - urllib.parse.urlunparse
    - os.path.isdir
    - collections.OrderedDict.items
    - os.path.abspath
    - resp.reason.decode
    - name.startswith
    - match.group
    - os.path.exists
    - warnings.warn
    - base64.b64encode.strip
    - <builtin>.bytearray
    - field.decode
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - pip._internal.network.session.PipSession.update_index_urls
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - options.pop
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - os.fstat
    - pip._internal.req.constructors.parse_editable
    - url.lower
    - resp.close
    - pip._vendor.requests.models.PreparedRequest.prepare
    - pip._vendor.requests.utils.unquote_unreserved
    - markers_as_string.strip
    - <builtin>.len
    - pip._vendor.requests.utils.rewind_body
    - pip._vendor.urllib3.packages.six.iteritems
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._internal.req.req_file.break_args_options
    - time.perf_counter
    - <builtin>.ord
    - splitstr.decode
    - finder.set_allow_all_prereleases
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._internal.utils.urls.get_url_scheme
    - posixpath.splitext
    - <builtin>.frozenset
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - pip._vendor.packaging.version.parse
    - urllib.parse.urlparse.geturl
    - _legacy_version_component_re.split
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - url.split
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - merged_setting.update
    - pip._vendor.requests.sessions.Session.get
    - pip._vendor.urllib3.packages.six.raise_from
    - IPV6_ADDRZ_RE.match
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - finder.set_prefer_binary
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - urllib.parse.urljoin.startswith
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.requests.sessions.Session.send
    - logger.info
    - pip._internal.req.req_file.ParsedRequirement.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - io.BytesIO
    linkageType: pythonLinkage
    raised:
    - CommandError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30ee051760>
    - <ast.Constant object at 0x7f30ee051730>
    - <ast.Constant object at 0x7f30ee051700>
    - <ast.Constant object at 0x7f30ee0516d0>
    argNames:
    - parsed_req
    - isolated
    - use_pep517
    - user_supplied
    - config_settings
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 477
    functionName: pip._internal.req.constructors.install_req_from_parsed_requirement
    functionSourceFile: pip._internal.req.constructors
    functionUses: 6
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - match.groups
    - itertools.dropwhile
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - <builtin>.hash
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.path.normpath
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.urljoin
    - abi.lower
    - pip._internal.req.constructors._looks_like_path
    - urllib.parse.urlparse
    - logger.warning
    - cls._hash_url_fragment_re.search
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - extras.lower
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.packaging.version._parse_version_parts
    - part.lower
    - <builtin>.super
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - os.path.isdir
    - os.path.abspath
    - name.startswith
    - match.group
    - pip._vendor.packaging.markers.Marker.__init__
    - os.path.exists
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - <builtin>.isinstance
    - pip._internal.req.constructors.parse_req_from_editable
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - part.zfill
    - name.split
    - url.lower
    - <builtin>.list
    - parsed_req.options.get
    - name.strip
    - <builtin>.any
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.utils.misc.is_installable_dir
    - spec_str.endswith
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - pip._internal.utils.urls.get_url_scheme
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - <builtin>.frozenset
    - logger.debug
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - url.split
    - letter.lower
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - pip._internal.req.constructors.parse_req_from_line
    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: requirements.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: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f30f3d1a460>
    argNames:
    - name
    - comes_from
    - use_pep517
    - isolated
    - global_options
    - hash_options
    - constraint
    - line_source
    - user_supplied
    - config_settings
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 402
    functionName: pip._internal.req.constructors.install_req_from_line
    functionSourceFile: pip._internal.req.constructors
    functionUses: 27
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - match.groups
    - itertools.dropwhile
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - <builtin>.tuple
    - s.strip
    - <builtin>.hash
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.path.normpath
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.urljoin
    - abi.lower
    - pip._internal.req.constructors._looks_like_path
    - urllib.parse.urlparse
    - logger.warning
    - cls._hash_url_fragment_re.search
    - pip._internal.req.constructors.deduce_helpful_msg
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - extras.lower
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.super
    - urllib.parse.urlunparse
    - os.path.isdir
    - os.path.abspath
    - name.startswith
    - pip._vendor.packaging.markers.Marker.__init__
    - match.group
    - os.path.exists
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - <builtin>.isinstance
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - version.lower
    - part.zfill
    - name.split
    - <builtin>.list
    - name.strip
    - <builtin>.any
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.utils.misc.is_installable_dir
    - spec_str.endswith
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - pip._internal.utils.urls.get_url_scheme
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - logger.debug
    - <builtin>.frozenset
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - letter.lower
    - url.split
    - <builtin>.set
    - m.group
    - line.endswith
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - pip._internal.req.constructors.parse_req_from_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3fd670>
    argNames:
    - editable_req
    - comes_from
    - use_pep517
    - isolated
    - global_options
    - hash_options
    - constraint
    - user_supplied
    - permit_editable_wheels
    - config_settings
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 227
    functionName: pip._internal.req.constructors.install_req_from_editable
    functionSourceFile: pip._internal.req.constructors
    functionUses: 22
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors.parse_req_from_editable
    - pip._internal.utils.urls.path_to_url
    - format_str.format
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - part.startswith
    - pip._internal.req.constructors.parse_editable
    - pip._vendor.packaging.version.parse
    - re.match
    - match.groups
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - part.zfill
    - version.lower
    - itertools.dropwhile
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - _legacy_version_component_re.split
    - pip._internal.req.req_install.InstallRequirement.__init__
    - <builtin>.str
    - url.lower
    - letter.lower
    - extras.lower
    - <builtin>.set
    - m.group
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.models.link.Link._egg_fragment
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.isdir
    - os.path.abspath
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - req.extras.asList
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - part.isdigit
    - _legacy_version_replacement_map.get
    - warnings.warn
    - specifiers.split
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    - pip._internal.req.constructors.RequirementParts.__init__
    - logger.warning
    - cls._hash_url_fragment_re.search
    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: parsed_req.options.get
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - finder
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 469
    functionName: pip._internal.cli.req_command.RequirementCommand.trace_basic_info
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 4
    functionsReached:
    - search_scope.get_formatted_locations
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: search_scope.get_formatted_locations
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d07a94f0>
    - <ast.Constant object at 0x7f30d07a94c0>
    argNames:
    - self
    - options
    - session
    - target_python
    - ignore_requires_python
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 479
    functionName: pip._internal.cli.req_command.RequirementCommand._build_package_finder
    functionSourceFile: pip._internal.cli.req_command
    functionUses: 4
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.utils.misc._get_netloc
    - built_find_links.append
    - pip._internal.index.package_finder.PackageFinder.create
    - pip._internal.utils.misc.normalize_version_info
    - pip._internal.index.package_finder.PackageFinder.__init__
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.compat.has_tls
    - logger.debug
    - link.startswith
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - pip._internal.utils.misc._redact_netloc
    - itertools.chain
    - <builtin>.set
    - os.path.realpath
    - os.path.expanduser
    - pip._internal.utils.misc.split_auth_from_netloc
    - pip._internal.models.target_python.TargetPython.__init__
    - auth.split
    - pip._internal.models.format_control.FormatControl.__init__
    - <builtin>.len
    - <builtin>.map
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - typing.cast
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - pip._internal.index.collector.LinkCollector.create
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.models.search_scope.SearchScope.create
    - os.path.exists
    - os.path.normcase
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - pip._internal.index.collector.LinkCollector.__init__
    - urllib.parse.urlparse
    - logger.warning
    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: pip._internal.resolution.resolvelib
    functionSourceFile: pip._internal.resolution.resolvelib
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.truststore
    functionSourceFile: pip._vendor.truststore
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.truststore._api
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - platform.system
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._vendor.truststore._api.inject_into_ssl
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: pip._vendor.truststore._api.extract_from_ssl
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 61
    functionName: pip._vendor.truststore._api.SSLContext.__class__
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30c8d156a0>
    argNames:
    - self
    - protocol
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 67
    functionName: pip._vendor.truststore._api.SSLContext.__init__
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - ssl.SSLContext
    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: 5
    functionLinenumber: 75
    functionName: pip._vendor.truststore._api.SSLContext.__init__.TruststoreSSLObject.do_handshake
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - cert.public_bytes
    - ctypes.WinDLL.CertAddEncodedCertificateToStore
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.CDLL.CFArrayCreateMutable
    - ssl.SSLObject.context.get_ca_certs
    - ctypes.WinDLL.CertOpenStore
    - ctypes.POINTER
    - ctypes.CDLL.CFErrorGetCode
    - pip._vendor.truststore._macos._cf_string_ref_to_str
    - ctypes.CDLL.SecCertificateCreateWithData
    - ctypes.Structure.__init__
    - ctypes.pointer
    - ctypes.WinDLL.CertGetCertificateChain
    - ctypes.CDLL.SecTrustResultType
    - pip._vendor.truststore._macos._verify_peercerts_impl
    - pip._vendor.truststore._openssl._verify_peercerts_impl
    - ctypes.WinDLL.CertCloseStore
    - pip._vendor.truststore._windows._verify_peercerts_impl
    - pip._vendor.truststore._macos._bytes_to_cf_string
    - ctypes.CDLL.CFStringGetCString
    - ctypes.CDLL.CFDataCreate
    - ctypes.CDLL.SecPolicyCreateSSL
    - string.decode
    - ctypes.WinDLL.FormatMessageW
    - ctypes.CDLL.CFArrayAppendValue
    - ctypes.create_unicode_buffer.value.strip
    - ctypes.sizeof
    - ctypes.CDLL.SecPolicyCreateRevocation
    - ctypes.CDLL.CFErrorCopyDescription
    - <builtin>.super
    - ctypes.CDLL.SecTrustCreateWithCertificates
    - ctypes.create_unicode_buffer
    - ctypes.CDLL.SecTrustSetAnchorCertificates
    - ctypes.CDLL.SecTrustGetTrustResult
    - ctypes.CDLL.SecTrustEvaluateWithError
    - ctypes.CDLL.CFErrorRef
    - <builtin>.len
    - ctypes.WinDLL.CertCreateCertificateChainEngine
    - ctypes.WinDLL.CertFreeCertificateChainEngine
    - pip._vendor.truststore._macos._der_certs_to_cf_cert_array
    - ctypes.WinDLL.CertFreeCertificateChain
    - ctypes.create_string_buffer
    - ssl.SSLObject.server_hostname.encode
    - pip._vendor.truststore._windows._get_and_verify_cert_chain
    - ctypes.c_char_p
    - ctypes.WinDLL.CertVerifyCertificateChainPolicy
    - pip._vendor.truststore._macos._bytes_to_cf_data_ref
    - ctypes.CDLL.CFRelease
    - sslobj.get_unverified_chain
    - pip._vendor.truststore._windows._verify_using_custom_ca_certs
    - pip._vendor.truststore._api._verify_peercerts
    - ctypes.wintypes.HANDLE
    - ctypes.CDLL.CFStringCreateWithCString
    - ctypes.WinDLL.CertFreeCertificateContext
    - ctypes.c_wchar_p
    - ctypes.cast
    - ctypes.CDLL.SecTrustRef
    - ssl.SSLCertVerificationError
    - <builtin>.hasattr
    - ctypes.WinDLL.CertCreateCertificateContext
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock_or_sslobj
    - server_hostname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 279
    functionName: pip._vendor.truststore._api._verify_peercerts
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 2
    functionsReached:
    - cert.public_bytes
    - ctypes.WinDLL.CertAddEncodedCertificateToStore
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ssl.SSLObject.context.get_ca_certs
    - ctypes.CDLL.CFArrayCreateMutable
    - ctypes.WinDLL.CertOpenStore
    - ctypes.POINTER
    - ctypes.CDLL.CFErrorGetCode
    - pip._vendor.truststore._macos._cf_string_ref_to_str
    - ctypes.CDLL.SecCertificateCreateWithData
    - ctypes.Structure.__init__
    - ctypes.pointer
    - ctypes.WinDLL.CertGetCertificateChain
    - ctypes.CDLL.SecTrustResultType
    - pip._vendor.truststore._macos._verify_peercerts_impl
    - pip._vendor.truststore._openssl._verify_peercerts_impl
    - ctypes.WinDLL.CertCloseStore
    - pip._vendor.truststore._windows._verify_peercerts_impl
    - pip._vendor.truststore._macos._bytes_to_cf_string
    - ctypes.CDLL.CFStringGetCString
    - ctypes.CDLL.CFDataCreate
    - ctypes.CDLL.SecPolicyCreateSSL
    - string.decode
    - ctypes.WinDLL.FormatMessageW
    - ctypes.CDLL.CFArrayAppendValue
    - ctypes.create_unicode_buffer.value.strip
    - ctypes.sizeof
    - ctypes.CDLL.SecPolicyCreateRevocation
    - ctypes.CDLL.CFErrorCopyDescription
    - ctypes.CDLL.SecTrustCreateWithCertificates
    - ctypes.create_unicode_buffer
    - ctypes.CDLL.SecTrustSetAnchorCertificates
    - ctypes.CDLL.SecTrustGetTrustResult
    - ctypes.CDLL.SecTrustEvaluateWithError
    - ctypes.CDLL.CFErrorRef
    - <builtin>.len
    - ctypes.WinDLL.CertCreateCertificateChainEngine
    - ctypes.WinDLL.CertFreeCertificateChainEngine
    - pip._vendor.truststore._macos._der_certs_to_cf_cert_array
    - ctypes.WinDLL.CertFreeCertificateChain
    - ssl.SSLObject.server_hostname.encode
    - ctypes.create_string_buffer
    - pip._vendor.truststore._windows._get_and_verify_cert_chain
    - ctypes.c_char_p
    - ctypes.WinDLL.CertVerifyCertificateChainPolicy
    - pip._vendor.truststore._macos._bytes_to_cf_data_ref
    - ctypes.CDLL.CFRelease
    - sslobj.get_unverified_chain
    - pip._vendor.truststore._windows._verify_using_custom_ca_certs
    - ctypes.wintypes.HANDLE
    - ctypes.CDLL.CFStringCreateWithCString
    - ctypes.WinDLL.CertFreeCertificateContext
    - ctypes.c_wchar_p
    - ctypes.cast
    - ctypes.CDLL.SecTrustRef
    - ssl.SSLCertVerificationError
    - <builtin>.hasattr
    - ctypes.WinDLL.CertCreateCertificateContext
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3fdc40>
    - <ast.Constant object at 0x7f30ce3fd400>
    - <ast.Constant object at 0x7f30ce3fdc70>
    - <ast.Constant object at 0x7f30ce3fdca0>
    - <ast.Constant object at 0x7f30ce3fdfa0>
    argNames:
    - self
    - sock
    - server_side
    - do_handshake_on_connect
    - suppress_ragged_eofs
    - server_hostname
    - session
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 82
    functionName: pip._vendor.truststore._api.SSLContext.wrap_socket
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - cert.public_bytes
    - ctypes.WinDLL.CertAddEncodedCertificateToStore
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.CDLL.CFArrayCreateMutable
    - pip._vendor.truststore._openssl._configure_context
    - ssl.SSLObject.context.get_ca_certs
    - pip._vendor.truststore._macos._configure_context
    - ctx.set_default_verify_paths
    - ssl.get_default_verify_paths
    - ctypes.WinDLL.CertOpenStore
    - ctypes.POINTER
    - _original_super_SSLContext.verify_mode.__set__
    - ctypes.CDLL.CFErrorGetCode
    - pip._vendor.truststore._ssl_constants._set_ssl_context_verify_mode
    - pip._vendor.truststore._macos._cf_string_ref_to_str
    - _HASHED_CERT_FILENAME_RE.match
    - ctypes.CDLL.SecCertificateCreateWithData
    - ctypes.Structure.__init__
    - ctypes.pointer
    - ctypes.WinDLL.CertGetCertificateChain
    - pip._vendor.truststore._openssl._capath_contains_certs
    - ctx.load_verify_locations
    - ctypes.CDLL.SecTrustResultType
    - pip._vendor.truststore._macos._verify_peercerts_impl
    - pip._vendor.truststore._windows._configure_context
    - pip._vendor.truststore._openssl._verify_peercerts_impl
    - pip._vendor.truststore._windows._verify_peercerts_impl
    - ctypes.WinDLL.CertCloseStore
    - pip._vendor.truststore._macos._bytes_to_cf_string
    - ctypes.CDLL.CFStringGetCString
    - ctypes.CDLL.CFDataCreate
    - ctypes.CDLL.SecPolicyCreateSSL
    - string.decode
    - ctypes.WinDLL.FormatMessageW
    - ctypes.CDLL.CFArrayAppendValue
    - ctypes.create_unicode_buffer.value.strip
    - ctypes.sizeof
    - ctypes.CDLL.SecPolicyCreateRevocation
    - ctypes.CDLL.CFErrorCopyDescription
    - ctypes.CDLL.SecTrustCreateWithCertificates
    - ctypes.create_unicode_buffer
    - ctypes.CDLL.SecTrustSetAnchorCertificates
    - ctypes.CDLL.SecTrustGetTrustResult
    - ssl_sock.close
    - ctypes.CDLL.SecTrustEvaluateWithError
    - ctypes.CDLL.CFErrorRef
    - os.path.isfile
    - <builtin>.len
    - ctypes.WinDLL.CertCreateCertificateChainEngine
    - ctypes.WinDLL.CertFreeCertificateChainEngine
    - pip._vendor.truststore._macos._der_certs_to_cf_cert_array
    - os.path.isdir
    - ctypes.WinDLL.CertFreeCertificateChain
    - ssl.SSLObject.server_hostname.encode
    - ctypes.create_string_buffer
    - pip._vendor.truststore._windows._get_and_verify_cert_chain
    - ctypes.c_char_p
    - ctypes.WinDLL.CertVerifyCertificateChainPolicy
    - pip._vendor.truststore._macos._bytes_to_cf_data_ref
    - ctypes.CDLL.CFRelease
    - sslobj.get_unverified_chain
    - pip._vendor.truststore._windows._verify_using_custom_ca_certs
    - pip._vendor.truststore._api._verify_peercerts
    - os.listdir
    - ctypes.wintypes.HANDLE
    - ctypes.CDLL.CFStringCreateWithCString
    - ctypes.WinDLL.CertFreeCertificateContext
    - ctypes.c_wchar_p
    - ctypes.cast
    - ctypes.CDLL.SecTrustRef
    - ssl.SSLCertVerificationError
    - <builtin>.hasattr
    - ctypes.WinDLL.CertCreateCertificateContext
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - ctx
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 350
    functionName: pip._vendor.truststore._macos._configure_context
    functionSourceFile: pip._vendor.truststore._macos
    functionUses: 2
    functionsReached:
    - _original_super_SSLContext.verify_mode.__set__
    - pip._vendor.truststore._ssl_constants._set_ssl_context_verify_mode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - ctx
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 23
    functionName: pip._vendor.truststore._openssl._configure_context
    functionSourceFile: pip._vendor.truststore._openssl
    functionUses: 2
    functionsReached:
    - pip._vendor.truststore._openssl._capath_contains_certs
    - ctx.load_verify_locations
    - ctx.set_default_verify_paths
    - ssl.get_default_verify_paths
    - os.path.isfile
    - os.listdir
    - os.path.isdir
    - _HASHED_CERT_FILENAME_RE.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - ctx
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 545
    functionName: pip._vendor.truststore._windows._configure_context
    functionSourceFile: pip._vendor.truststore._windows
    functionUses: 2
    functionsReached:
    - _original_super_SSLContext.verify_mode.__set__
    - pip._vendor.truststore._ssl_constants._set_ssl_context_verify_mode
    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: ssl_sock.close
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b89550>
    - <ast.Constant object at 0x7f30d6b89dc0>
    - <ast.Constant object at 0x7f30d6b89130>
    argNames:
    - self
    - incoming
    - outgoing
    - server_side
    - server_hostname
    - session
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 110
    functionName: pip._vendor.truststore._api.SSLContext.wrap_bio
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - pip._vendor.truststore._openssl._capath_contains_certs
    - ctx.load_verify_locations
    - pip._vendor.truststore._openssl._configure_context
    - pip._vendor.truststore._windows._configure_context
    - pip._vendor.truststore._macos._configure_context
    - ctx.set_default_verify_paths
    - ssl.get_default_verify_paths
    - os.path.isfile
    - os.listdir
    - _original_super_SSLContext.verify_mode.__set__
    - pip._vendor.truststore._ssl_constants._set_ssl_context_verify_mode
    - os.path.isdir
    - _HASHED_CERT_FILENAME_RE.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36c48e0>
    - <ast.Constant object at 0x7f30e36c4d00>
    - <ast.Constant object at 0x7f30e36c4ca0>
    argNames:
    - self
    - cafile
    - capath
    - cadata
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 128
    functionName: pip._vendor.truststore._api.SSLContext.load_verify_locations
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e079b250>
    - <ast.Constant object at 0x7f30f4aa75b0>
    argNames:
    - self
    - certfile
    - keyfile
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 138
    functionName: pip._vendor.truststore._api.SSLContext.load_cert_chain
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Attribute object at 0x7f30fa5b9b80>
    argNames:
    - self
    - purpose
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 148
    functionName: pip._vendor.truststore._api.SSLContext.load_default_certs
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - alpn_protocols
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 153
    functionName: pip._vendor.truststore._api.SSLContext.set_alpn_protocols
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - npn_protocols
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 156
    functionName: pip._vendor.truststore._api.SSLContext.set_npn_protocols
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - __cipherlist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 159
    functionName: pip._vendor.truststore._api.SSLContext.set_ciphers
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 162
    functionName: pip._vendor.truststore._api.SSLContext.get_ciphers
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 165
    functionName: pip._vendor.truststore._api.SSLContext.session_stats
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 168
    functionName: pip._vendor.truststore._api.SSLContext.cert_store_stats
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: pip._vendor.truststore._api.SSLContext
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b877f0>
    argNames:
    - self
    - binary_form
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 185
    functionName: pip._vendor.truststore._api.SSLContext.get_ca_certs
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 193
    functionName: pip._vendor.truststore._api.SSLContext.check_hostname
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 201
    functionName: pip._vendor.truststore._api.SSLContext.hostname_checks_common_name
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 209
    functionName: pip._vendor.truststore._api.SSLContext.keylog_filename
    functionSourceFile: pip._vendor.truststore._api
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 217
    functionName: pip._vendor.truststore._api.SSLContext.maximum_version
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - _original_super_SSLContext.maximum_version.__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: _original_super_SSLContext.maximum_version.__set__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 227
    functionName: pip._vendor.truststore._api.SSLContext.minimum_version
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - _original_super_SSLContext.minimum_version.__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: _original_super_SSLContext.minimum_version.__set__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 237
    functionName: pip._vendor.truststore._api.SSLContext.options
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - _original_super_SSLContext.options.__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: _original_super_SSLContext.options.__set__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 247
    functionName: pip._vendor.truststore._api.SSLContext.post_handshake_auth
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 251
    functionName: pip._vendor.truststore._api.SSLContext.protocol
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 255
    functionName: pip._vendor.truststore._api.SSLContext.security_level
    functionSourceFile: pip._vendor.truststore._api
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 263
    functionName: pip._vendor.truststore._api.SSLContext.verify_flags
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - _original_super_SSLContext.verify_flags.__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: _original_super_SSLContext.verify_flags.__set__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 273
    functionName: pip._vendor.truststore._api.SSLContext.verify_mode
    functionSourceFile: pip._vendor.truststore._api
    functionUses: 0
    functionsReached:
    - _original_super_SSLContext.verify_mode.__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: _original_super_SSLContext.verify_mode.__set__
    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: sslobj.get_unverified_chain
    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: cert.public_bytes
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f61e13a0>
    argNames:
    - ssl_context
    - cert_chain
    - server_hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 322
    functionName: pip._vendor.truststore._windows._verify_peercerts_impl
    functionSourceFile: pip._vendor.truststore._windows
    functionUses: 3
    functionsReached:
    - ctypes.WinDLL.CertAddEncodedCertificateToStore
    - ssl.SSLObject.context.get_ca_certs
    - ctypes.WinDLL.CertOpenStore
    - ctypes.POINTER
    - ctypes.Structure.__init__
    - ctypes.pointer
    - ctypes.WinDLL.CertGetCertificateChain
    - ctypes.WinDLL.CertCloseStore
    - ctypes.WinDLL.FormatMessageW
    - ctypes.create_unicode_buffer.value.strip
    - ctypes.sizeof
    - ctypes.create_unicode_buffer
    - <builtin>.len
    - ctypes.WinDLL.CertCreateCertificateChainEngine
    - ctypes.WinDLL.CertFreeCertificateChainEngine
    - ctypes.WinDLL.CertFreeCertificateChain
    - pip._vendor.truststore._windows._get_and_verify_cert_chain
    - ctypes.WinDLL.CertVerifyCertificateChainPolicy
    - pip._vendor.truststore._windows._verify_using_custom_ca_certs
    - ctypes.wintypes.HANDLE
    - ctypes.WinDLL.CertFreeCertificateContext
    - ctypes.c_wchar_p
    - ctypes.cast
    - ssl.SSLCertVerificationError
    - ctypes.WinDLL.CertCreateCertificateContext
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 14
    IfCount: 16
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e8b1c070>
    argNames:
    - ssl_context
    - cert_chain
    - server_hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 362
    functionName: pip._vendor.truststore._macos._verify_peercerts_impl
    functionSourceFile: pip._vendor.truststore._macos
    functionUses: 3
    functionsReached:
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.CDLL.CFArrayCreateMutable
    - ssl.SSLObject.context.get_ca_certs
    - ctypes.CDLL.CFErrorGetCode
    - pip._vendor.truststore._macos._cf_string_ref_to_str
    - ssl.SSLCertVerificationError
    - ctypes.CDLL.SecCertificateCreateWithData
    - ctypes.CDLL.SecTrustResultType
    - pip._vendor.truststore._macos._bytes_to_cf_string
    - ctypes.CDLL.CFStringGetCString
    - ctypes.CDLL.CFDataCreate
    - ctypes.CDLL.SecPolicyCreateSSL
    - string.decode
    - ctypes.CDLL.CFArrayAppendValue
    - ctypes.CDLL.SecPolicyCreateRevocation
    - ctypes.CDLL.CFErrorCopyDescription
    - ctypes.CDLL.SecTrustCreateWithCertificates
    - ctypes.CDLL.SecTrustSetAnchorCertificates
    - ctypes.CDLL.SecTrustGetTrustResult
    - ctypes.CDLL.SecTrustEvaluateWithError
    - ctypes.CDLL.CFErrorRef
    - <builtin>.len
    - pip._vendor.truststore._macos._der_certs_to_cf_cert_array
    - ssl.SSLObject.server_hostname.encode
    - ctypes.create_string_buffer
    - pip._vendor.truststore._macos._bytes_to_cf_data_ref
    - ctypes.CDLL.CFRelease
    - ctypes.CDLL.CFStringCreateWithCString
    - ctypes.CDLL.SecTrustRef
    - ctypes.c_char_p
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b89d30>
    argNames:
    - ssl_context
    - cert_chain
    - server_hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 59
    functionName: pip._vendor.truststore._openssl._verify_peercerts_impl
    functionSourceFile: ''
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.truststore._windows
    functionSourceFile: pip._vendor.truststore._windows
    functionUses: 0
    functionsReached:
    - ctypes.c_char_p
    - ctypes.POINTER
    - ctypes.WinDLL
    - contextlib.contextmanager
    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: pip._vendor.truststore._windows.CERT_ENHKEY_USAGE
    functionSourceFile: pip._vendor.truststore._windows
    functionUses: 0
    functionsReached:
    - ctypes.POINTER
    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: pip._vendor.truststore._windows.CERT_SIMPLE_CHAIN
    functionSourceFile: pip._vendor.truststore._windows
    functionUses: 0
    functionsReached:
    - ctypes.POINTER
    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: pip._vendor.truststore._windows.CERT_CHAIN_CONTEXT
    functionSourceFile: pip._vendor.truststore._windows
    functionUses: 0
    functionsReached:
    - ctypes.POINTER
    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: ctypes.c_char_p
    functionSourceFile: ctypes
    functionUses: 11
    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: ctypes.WinDLL
    functionSourceFile: ctypes
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - result
    - _
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 237
    functionName: pip._vendor.truststore._windows._handle_win_error
    functionSourceFile: pip._vendor.truststore._windows
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - WinError
    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: ctypes.WinDLL.CertOpenStore
    functionSourceFile: ctypes
    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: ctypes.WinDLL.CertAddEncodedCertificateToStore
    functionSourceFile: ctypes
    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: ctypes.WinDLL.CertCreateCertificateContext
    functionSourceFile: ctypes
    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: ctypes.sizeof
    functionSourceFile: ctypes
    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: ctypes.pointer
    functionSourceFile: ctypes
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 7
    argDefaultValues: []
    argNames:
    - ssl_context
    - hChainEngine
    - hIntermediateCertStore
    - pPeerCertContext
    - pChainPara
    - server_hostname
    - chain_flags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 404
    functionName: pip._vendor.truststore._windows._get_and_verify_cert_chain
    functionSourceFile: pip._vendor.truststore._windows
    functionUses: 5
    functionsReached:
    - ctypes.WinDLL.CertGetCertificateChain
    - ctypes.create_unicode_buffer
    - ctypes.POINTER
    - ctypes.WinDLL.FormatMessageW
    - ctypes.create_unicode_buffer.value.strip
    - ctypes.c_wchar_p
    - ctypes.cast
    - ctypes.sizeof
    - ssl.SSLCertVerificationError
    - ctypes.WinDLL.CertFreeCertificateChain
    - ctypes.Structure.__init__
    - ctypes.pointer
    - ctypes.WinDLL.CertVerifyCertificateChainPolicy
    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: ssl.SSLObject.context.get_ca_certs
    functionSourceFile: ssl
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 7
    argDefaultValues: []
    argNames:
    - ssl_context
    - custom_ca_certs
    - hIntermediateCertStore
    - pPeerCertContext
    - pChainPara
    - server_hostname
    - chain_flags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 492
    functionName: pip._vendor.truststore._windows._verify_using_custom_ca_certs
    functionSourceFile: pip._vendor.truststore._windows
    functionUses: 4
    functionsReached:
    - ctypes.WinDLL.CertAddEncodedCertificateToStore
    - ctypes.WinDLL.CertOpenStore
    - ctypes.POINTER
    - ctypes.Structure.__init__
    - ctypes.pointer
    - ctypes.WinDLL.CertGetCertificateChain
    - ctypes.WinDLL.CertCloseStore
    - ctypes.WinDLL.FormatMessageW
    - ctypes.create_unicode_buffer.value.strip
    - ctypes.sizeof
    - ctypes.create_unicode_buffer
    - <builtin>.len
    - ctypes.WinDLL.CertCreateCertificateChainEngine
    - ctypes.WinDLL.CertFreeCertificateChainEngine
    - ctypes.WinDLL.CertFreeCertificateChain
    - pip._vendor.truststore._windows._get_and_verify_cert_chain
    - ctypes.wintypes.HANDLE
    - ctypes.c_wchar_p
    - ctypes.cast
    - ssl.SSLCertVerificationError
    - ctypes.WinDLL.CertVerifyCertificateChainPolicy
    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: ctypes.WinDLL.CertCloseStore
    functionSourceFile: ctypes
    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: ctypes.WinDLL.CertFreeCertificateContext
    functionSourceFile: ctypes
    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: ctypes.WinDLL.CertGetCertificateChain
    functionSourceFile: ctypes
    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: ctypes.c_wchar_p
    functionSourceFile: ctypes
    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: ctypes.cast
    functionSourceFile: ctypes
    functionUses: 24
    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: ctypes.WinDLL.CertVerifyCertificateChainPolicy
    functionSourceFile: ctypes
    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: ctypes.WinDLL.FormatMessageW
    functionSourceFile: ctypes
    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: ctypes.create_unicode_buffer.value.strip
    functionSourceFile: ctypes
    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: ssl.SSLCertVerificationError
    functionSourceFile: ssl
    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: ctypes.WinDLL.CertFreeCertificateChain
    functionSourceFile: ctypes
    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: ctypes.wintypes.HANDLE
    functionSourceFile: ctypes
    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: ctypes.WinDLL.CertCreateCertificateChainEngine
    functionSourceFile: ctypes
    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: ctypes.WinDLL.CertFreeCertificateChainEngine
    functionSourceFile: ctypes
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - ssl_context
    - verify_mode
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: pip._vendor.truststore._ssl_constants._set_ssl_context_verify_mode
    functionSourceFile: pip._vendor.truststore._ssl_constants
    functionUses: 4
    functionsReached:
    - _original_super_SSLContext.verify_mode.__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: 1
    functionLinenumber: -1
    functionName: pip._vendor.truststore._ssl_constants
    functionSourceFile: pip._vendor.truststore._ssl_constants
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.truststore._macos
    functionSourceFile: pip._vendor.truststore._macos
    functionUses: 0
    functionsReached:
    - _mac_version.split
    - contextlib.contextmanager
    - ctypes.POINTER
    - <builtin>.map
    - ctypes.CDLL
    - platform.mac_ver
    - pip._vendor.truststore._macos._load_cdll
    - <builtin>.tuple
    - ctypes.c_void_p.in_dll
    - ctypes.util.find_library
    linkageType: pythonLinkage
    raised:
    - ImportError
    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: _mac_version.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - name
    - macos10_16_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 29
    functionName: pip._vendor.truststore._macos._load_cdll
    functionSourceFile: pip._vendor.truststore._macos
    functionUses: 1
    functionsReached:
    - ctypes.util.find_library
    - ctypes.CDLL
    linkageType: pythonLinkage
    raised:
    - ImportError
    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: ctypes.util.find_library
    functionSourceFile: ctypes
    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: ctypes.c_void_p.in_dll
    functionSourceFile: ctypes
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - result
    - _
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 207
    functionName: pip._vendor.truststore._macos._handle_osstatus
    functionSourceFile: pip._vendor.truststore._macos
    functionUses: 0
    functionsReached:
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.CDLL.SecCopyErrorMessageString
    - <builtin>.int
    - ctypes.CDLL.CFRelease
    - ctypes.CDLL.CFStringGetCString
    - ctypes.POINTER
    - ctypes.cast
    - ctypes.create_string_buffer
    linkageType: pythonLinkage
    raised:
    - OSError
    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: ctypes.CDLL.SecCopyErrorMessageString
    functionSourceFile: ctypes
    functionUses: 17
    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: ctypes.CDLL.CFStringGetCStringPtr
    functionSourceFile: ctypes
    functionUses: 23
    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: ctypes.create_string_buffer
    functionSourceFile: ctypes
    functionUses: 23
    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: ctypes.CDLL.CFStringGetCString
    functionSourceFile: ctypes
    functionUses: 23
    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: ctypes.CDLL.CFRelease
    functionSourceFile: ctypes
    functionUses: 29
    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: ctypes.c_uint32
    functionSourceFile: ctypes
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.truststore._macos.CFConst
    functionSourceFile: pip._vendor.truststore._macos
    functionUses: 0
    functionsReached:
    - ctypes.c_uint32
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 276
    functionName: pip._vendor.truststore._macos._bytes_to_cf_data_ref
    functionSourceFile: pip._vendor.truststore._macos
    functionUses: 5
    functionsReached:
    - <builtin>.len
    - ctypes.CDLL.CFDataCreate
    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: ctypes.CDLL.CFDataCreate
    functionSourceFile: ctypes
    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:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 282
    functionName: pip._vendor.truststore._macos._bytes_to_cf_string
    functionSourceFile: pip._vendor.truststore._macos
    functionUses: 4
    functionsReached:
    - ctypes.CDLL.CFStringCreateWithCString
    - ctypes.c_char_p
    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: ctypes.CDLL.CFStringCreateWithCString
    functionSourceFile: ctypes
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - cf_string_ref
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 296
    functionName: pip._vendor.truststore._macos._cf_string_ref_to_str
    functionSourceFile: pip._vendor.truststore._macos
    functionUses: 4
    functionsReached:
    - ctypes.CDLL.CFStringGetCString
    - ctypes.create_string_buffer
    - ctypes.CDLL.CFStringGetCStringPtr
    - string.decode
    linkageType: pythonLinkage
    raised:
    - OSError
    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: string.decode
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - certs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 319
    functionName: pip._vendor.truststore._macos._der_certs_to_cf_cert_array
    functionSourceFile: pip._vendor.truststore._macos
    functionUses: 4
    functionsReached:
    - ctypes.byref
    - pip._vendor.truststore._macos._bytes_to_cf_data_ref
    - ctypes.CDLL.CFArrayCreateMutable
    - ctypes.CDLL.CFRelease
    - <builtin>.len
    - ctypes.CDLL.CFDataCreate
    - ctypes.CDLL.CFArrayAppendValue
    - ctypes.CDLL.SecCertificateCreateWithData
    linkageType: pythonLinkage
    raised:
    - MemoryError
    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: ctypes.CDLL.CFArrayCreateMutable
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecCertificateCreateWithData
    functionSourceFile: ctypes
    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: ctypes.CDLL.CFArrayAppendValue
    functionSourceFile: ctypes
    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: ssl.SSLObject.server_hostname.encode
    functionSourceFile: ssl
    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: ctypes.CDLL.SecPolicyCreateSSL
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecPolicyCreateRevocation
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecTrustRef
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecTrustCreateWithCertificates
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecTrustSetAnchorCertificates
    functionSourceFile: ctypes
    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: ctypes.CDLL.CFErrorRef
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecTrustEvaluateWithError
    functionSourceFile: ctypes
    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: ctypes.CDLL.CFErrorGetCode
    functionSourceFile: ctypes
    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: ctypes.CDLL.CFErrorCopyDescription
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecTrustResultType
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecTrustGetTrustResult
    functionSourceFile: ctypes
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.truststore._openssl
    functionSourceFile: pip._vendor.truststore._openssl
    functionUses: 0
    functionsReached:
    - re.compile
    - contextlib.contextmanager
    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: ssl.get_default_verify_paths
    functionSourceFile: ssl
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - capath
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: pip._vendor.truststore._openssl._capath_contains_certs
    functionSourceFile: pip._vendor.truststore._openssl
    functionUses: 3
    functionsReached:
    - os.listdir
    - os.path.isdir
    - _HASHED_CERT_FILENAME_RE.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctx.set_default_verify_paths
    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: ctx.load_verify_locations
    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: _HASHED_CERT_FILENAME_RE.match
    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: pip._internal.resolution.legacy
    functionSourceFile: pip._internal.resolution.legacy
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._internal.operations.prepare
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - typing.cast
    - pip._internal.utils._log.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - req
    - build_tracker
    - finder
    - build_isolation
    - check_build_deps
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 59
    functionName: pip._internal.operations.prepare._get_prepared_distribution
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 8
    functionsReached:
    - pip._internal.distributions.sdist.SourceDistribution._raise_missing_reqs
    - pathlib.Path
    - sysconfig.get_paths
    - pip._internal.distributions.sdist.SourceDistribution._install_build_reqs
    - cmd.finalize_options
    - variables.get
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._internal.locations._distutils.get_platlib
    - <builtin>.str
    - distutils.command.install.install
    - pip._internal.utils.temp_dir.TempDirectory._create
    - <builtin>.tuple
    - os.path.realpath
    - pip._internal.distributions.sdist.SourceDistribution.prepare_distribution_metadata
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - unpatched.replace
    - pip._internal.build_env._dedup
    - os.path.normpath
    - logger.log
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.locations._distutils.get_scheme
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - os.path.basename
    - collections.OrderedDict
    - <builtin>.setattr
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - old_v.name.startswith
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.locations._looks_like_debian_scheme
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._internal.locations._sysconfig.get_purelib
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - textwrap.dedent
    - part.startswith
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._sysconfig.get_platlib
    - pip._internal.locations._looks_like_red_hat_scheme
    - new_v.name.startswith
    - part.lower
    - <builtin>.super
    - <builtin>.map
    - pip._internal.build_env._get_system_sitepackages
    - os.path.abspath
    - warning_contexts.append
    - build_tracker.track
    - pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - os.path.exists
    - os.path.normcase
    - match.group
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.range
    - <builtin>.isinstance
    - format_string.format
    - pip._internal.locations.get_purelib
    - <builtin>.bool
    - backend.get_requires_for_build_editable
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - os.path.isabs
    - pip._internal.locations._distutils.get_purelib
    - p.endswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - tempfile.mkdtemp
    - pip._internal.locations._looks_like_bpo_44860
    - <builtin>.len
    - sysconfig.get_config_var
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - pip._internal.locations.get_platlib
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel
    - parts.pop
    - pip._internal.distributions.sdist.SourceDistribution._prepare_build_backend
    - pip._internal.locations._warn_mismatched
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - backend.subprocess_runner
    - <builtin>.int
    - part.isdigit
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - collections.OrderedDict.values
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - distutils.sysconfig.get_python_lib
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - <builtin>.getattr
    - <builtin>.all
    - contextlib.suppress
    - val.lower
    - pip._internal.build_env.BuildEnvironment.__init__
    - format_str.format
    - pip._internal.distributions.make_distribution_for_install_requirement
    - sysconfig.is_python_build
    - logger.debug
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - _tempdir_manager.enter_context
    - pip._vendor.packaging.version.parse
    - site.getsitepackages
    - _legacy_version_component_re.split
    - typing.cast.Distribution.from_wheel
    - itertools.combinations_with_replacement
    - pip._internal.metadata.get_wheel_distribution
    - letter.lower
    - pip._internal.locations._warn_if_mismatch
    - pip._internal.distributions.wheel.WheelDistribution.prepare_distribution_metadata
    - pip._internal.build_env._Prefix.__init__
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - backend.get_requires_for_build_wheel
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.misc.strtobool
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - fp.write
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - install_req
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 7
    functionName: pip._internal.distributions.make_distribution_for_install_requirement
    functionSourceFile: pip._internal.distributions
    functionUses: 13
    functionsReached:
    - <builtin>.super
    - pip._internal.distributions.base.AbstractDistribution.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: build_tracker.track
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - finder
    - build_isolation
    - check_build_deps
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 34
    functionName: pip._internal.distributions.wheel.WheelDistribution.prepare_distribution_metadata
    functionSourceFile: ''
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 7
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - finder
    - build_isolation
    - check_build_deps
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 30
    functionName: pip._internal.distributions.sdist.SourceDistribution.prepare_distribution_metadata
    functionSourceFile: pip._internal.distributions.sdist
    functionUses: 9
    functionsReached:
    - pip._internal.distributions.sdist.SourceDistribution._raise_missing_reqs
    - pathlib.Path
    - sysconfig.get_paths
    - pip._internal.distributions.sdist.SourceDistribution._install_build_reqs
    - cmd.finalize_options
    - variables.get
    - itertools.dropwhile
    - pip._internal.locations._distutils.get_platlib
    - <builtin>.str
    - distutils.command.install.install
    - pip._internal.utils.temp_dir.TempDirectory._create
    - <builtin>.tuple
    - os.path.realpath
    - <builtin>.sorted
    - unpatched.replace
    - pip._internal.build_env._dedup
    - os.path.normpath
    - logger.log
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.locations._distutils.get_scheme
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - collections.OrderedDict
    - <builtin>.setattr
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - old_v.name.startswith
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.locations._looks_like_debian_scheme
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._internal.locations._sysconfig.get_purelib
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - textwrap.dedent
    - part.startswith
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._sysconfig.get_platlib
    - pip._internal.locations._looks_like_red_hat_scheme
    - new_v.name.startswith
    - part.lower
    - <builtin>.super
    - <builtin>.map
    - pip._internal.build_env._get_system_sitepackages
    - os.path.abspath
    - warning_contexts.append
    - pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - os.path.exists
    - os.path.normcase
    - match.group
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.range
    - <builtin>.isinstance
    - format_string.format
    - pip._internal.locations.get_purelib
    - backend.get_requires_for_build_editable
    - <builtin>.bool
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - os.path.isabs
    - pip._internal.locations._distutils.get_purelib
    - p.endswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - tempfile.mkdtemp
    - pip._internal.locations._looks_like_bpo_44860
    - <builtin>.len
    - sysconfig.get_config_var
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - pip._internal.locations.get_platlib
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel
    - parts.pop
    - pip._internal.distributions.sdist.SourceDistribution._prepare_build_backend
    - pip._internal.locations._warn_mismatched
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - backend.subprocess_runner
    - <builtin>.int
    - part.isdigit
    - collections.OrderedDict.values
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - distutils.sysconfig.get_python_lib
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - <builtin>.getattr
    - <builtin>.all
    - pip._internal.build_env.BuildEnvironment.__init__
    - format_str.format
    - sysconfig.is_python_build
    - logger.debug
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - _tempdir_manager.enter_context
    - pip._vendor.packaging.version.parse
    - site.getsitepackages
    - _legacy_version_component_re.split
    - itertools.combinations_with_replacement
    - letter.lower
    - pip._internal.locations._warn_if_mismatch
    - pip._internal.build_env._Prefix.__init__
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - backend.get_requires_for_build_wheel
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - fp.write
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    functionSourceFile: ''
    functionUses: 13
    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: 5
    functionLinenumber: 24
    functionName: pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    functionSourceFile: pip._internal.distributions.wheel
    functionUses: 13
    functionsReached:
    - val.lower
    - _canonicalize_regex.sub
    - typing.cast.Distribution.from_wheel
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - <builtin>.bool
    - pip._internal.metadata.select_backend
    - pip._internal.metadata.get_wheel_distribution
    - pip._internal.metadata._should_use_importlib_metadata
    - <builtin>.getattr
    - typing.cast
    - contextlib.suppress
    - pip._internal.utils.misc.strtobool
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - link
    - location
    - verbosity
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 77
    functionName: pip._internal.operations.prepare.unpack_vcs_link
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 8
    functionsReached:
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - auth.split
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.utils.misc.hide_url
    - pip._internal.utils.misc.redact_netloc
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc.HiddenText.__init__
    - vcs_backend.unpack
    - pip._internal.utils.misc._redact_netloc
    - typing.cast
    - pip._internal.utils.misc.split_auth_from_netloc
    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: vcs_backend.unpack
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - content_type
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: pip._internal.operations.prepare.File.__init__
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 12
    functionsReached:
    - mimetypes.guess_type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30faa89400>
    - <ast.Constant object at 0x7f30faa893d0>
    argNames:
    - link
    - download
    - download_dir
    - hashes
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 92
    functionName: pip._internal.operations.prepare.get_http_url
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 10
    functionsReached:
    - hashes.check_against_path
    - logger.debug
    - _tempdir_manager.enter_context
    - pip._internal.operations.prepare.File.__init__
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - os.path.join
    - os.path.realpath
    - <builtin>.super
    - tempfile.mkdtemp
    - mimetypes.guess_type
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - os.mkdir
    - typing.cast.info
    - typing.cast.warning
    - pip._internal.network.download.Downloader.__init__
    - os.path.exists
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - pip._internal.operations.prepare._check_download_dir
    - os.unlink
    - os.path.split
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd810430>
    argNames:
    - link
    - download_dir
    - hashes
    - warn_on_hash_mismatch
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 183
    functionName: pip._internal.operations.prepare._check_download_dir
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 12
    functionsReached:
    - typing.cast.info
    - typing.cast.warning
    - os.path.exists
    - hashes.check_against_path
    - os.path.join
    - os.unlink
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - session
    - progress_bar
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 123
    functionName: pip._internal.network.download.Downloader.__init__
    functionSourceFile: ''
    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: hashes.check_against_path
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9933610>
    - <ast.Constant object at 0x7f30f99336d0>
    argNames:
    - link
    - download_dir
    - hashes
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 116
    functionName: pip._internal.operations.prepare.get_file_url
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 8
    functionsReached:
    - typing.cast.info
    - typing.cast.warning
    - mimetypes.guess_type
    - os.path.exists
    - pip._internal.operations.prepare._check_download_dir
    - hashes.check_against_path
    - os.path.join
    - pip._internal.operations.prepare.File.__init__
    - os.unlink
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc6f550>
    - <ast.Constant object at 0x7f30fcc6f1f0>
    argNames:
    - link
    - location
    - download
    - verbosity
    - download_dir
    - hashes
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 140
    functionName: pip._internal.operations.prepare.unpack_url
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 7
    functionsReached:
    - link.is_existing_dir
    - pip._internal.operations.prepare.get_http_url
    - tarfile.is_tarfile
    - pip._internal.utils.unpacking.is_within_directory
    - hashes.check_against_path
    - path.split
    - pip._internal.operations.prepare.File.__init__
    - pip._internal.utils.misc._redact_netloc
    - tar._extract_member
    - pip._internal.utils.unpacking.unpack_file
    - pip._internal.utils.temp_dir.TempDirectory._create
    - os.path.realpath
    - filename.endswith
    - tar.utime
    - pip._internal.utils.unpacking.current_umask
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.utils.unpacking.split_leading_dir
    - urllib.parse.quote
    - pip._internal.utils.unpacking.zip_item_is_executable
    - os.path.split
    - logger.warning
    - path.lstrip
    - pip._internal.utils.unpacking.unzip_file
    - zipfp.close
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - zip.open
    - zip.namelist
    - fn.endswith
    - os.path.join
    - zipfile.is_zipfile
    - pip._internal.utils.misc.split_auth_from_netloc
    - tar.getmembers
    - <builtin>.super
    - os.chmod
    - member.issym
    - zipfile.ZipFile
    - pip._internal.utils.unpacking.has_leading_dir
    - zip.infolist
    - tar.close
    - os.path.abspath
    - os.path.exists
    - os.path.dirname
    - pip._internal.operations.prepare._check_download_dir
    - pip._internal.utils.misc.ensure_dir
    - <builtin>.range
    - pip._internal.utils.misc._get_netloc
    - <builtin>.bool
    - filename.lower
    - pip._internal.utils.unpacking.untar_file
    - os.makedirs
    - tempfile.mkdtemp
    - mimetypes.guess_type
    - auth.split
    - pip._internal.utils.misc.hide_url
    - <builtin>.len
    - os.mkdir
    - typing.cast
    - stat.S_ISREG
    - pip._internal.operations.prepare.get_file_url
    - typing.cast.info
    - fp.close
    - typing.cast.warning
    - urllib.parse.urlsplit
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - pip._internal.utils.misc._transform_url
    - <builtin>.open
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - tarfile.open
    - os.unlink
    - path.find
    - urllib.parse.unquote
    - logger.critical
    - pip._internal.utils.misc.redact_netloc
    - logger.debug
    - _tempdir_manager.enter_context
    - shutil.copyfileobj
    - tar.extractfile
    - itertools.combinations_with_replacement
    - os.umask
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - urllib.parse.urlunsplit
    - pip._internal.operations.prepare.unpack_vcs_link
    - member.isdir
    - os.path.commonprefix
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._internal.network.download.Downloader.__init__
    - pip._internal.utils.misc.HiddenText.__init__
    - vcs_backend.unpack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - session
    - progress_bar
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 154
    functionName: pip._internal.network.download.BatchDownloader.__init__
    functionSourceFile: ''
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 274
    functionName: pip._internal.operations.prepare.RequirementPreparer._log_preparing_link
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 1
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.misc._redact_netloc
    - <builtin>.str
    - pip._internal.utils.misc.display_path
    - pip._internal.utils.misc.split_auth_from_netloc
    - pip._internal.utils.logging.indent_log
    - req.comes_from.from_path
    - auth.split
    - <builtin>.len
    - pip._internal.utils.misc.redact_auth_from_requirement
    - os.getcwd
    - urllib.parse.urlunsplit
    - os.path.abspath
    - typing.cast
    - pip._internal.utils.logging.get_indentation
    - typing.cast.info
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - os.path.normcase
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req.comes_from.from_path
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - req
    - parallel_builds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 301
    functionName: pip._internal.operations.prepare.RequirementPreparer._ensure_link_req_src_dir
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 7
    functionsReached:
    - req.link.is_existing_dir
    - req.ensure_has_source_dir
    - req.ensure_pristine_source_checkout
    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.link.is_existing_dir
    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: req.ensure_has_source_dir
    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: req.ensure_pristine_source_checkout
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 324
    functionName: pip._internal.operations.prepare.RequirementPreparer._get_linked_req_hashes
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 7
    functionsReached:
    - req.link.is_existing_dir
    - pip._internal.utils.hashes.MissingHashes.__init__
    - req.hashes
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - HashUnpinned
    - DirectoryUrlHashUnsupported
    - VcsHashUnsupported
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 356
    functionName: pip._internal.operations.prepare.RequirementPreparer._fetch_metadata_only
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 1
    functionsReached:
    - pip._internal.operations.prepare.get_http_url
    - pip._internal.models.wheel.Wheel.__init__
    - hashes.check_against_path
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stay
    - link.url.split
    - pip._internal.operations.prepare.File.__init__
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.truncate
    - _canonicalize_regex.sub
    - pip._internal.operations.prepare.RequirementPreparer._fetch_metadata_using_lazy_wheel
    - pip._internal.utils.temp_dir.TempDirectory._create
    - os.path.realpath
    - <builtin>.hash
    - typing.cast.verbose
    - pip._internal.metadata.select_backend
    - pip._internal.metadata.base.MemoryWheel.__init__
    - response.raw.read
    - <builtin>.zip
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.__init__
    - tempfile.NamedTemporaryFile
    - abi.lower
    - typing.cast.debug
    - os.path.split
    - pip._vendor.packaging.utils.canonicalize_name
    - wheel_info.group
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - response.raise_for_status
    - os.path.join
    - <builtin>.min
    - <builtin>.super
    - zipfile.ZipFile
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stream_response
    - pip._internal.metadata.get_metadata_distribution
    - resp.reason.decode
    - bisect.bisect_left
    - os.path.exists
    - pip._internal.operations.prepare._check_download_dir
    - f.read
    - <builtin>.max
    - tempfile.NamedTemporaryFile.truncate
    - <builtin>.range
    - pip._internal.operations.prepare.RequirementPreparer._fetch_metadata_using_link_data_attr
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - base_headers.copy
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._merge
    - session.head
    - tempfile.mkdtemp
    - mimetypes.guess_type
    - <builtin>.len
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.seek
    - os.mkdir
    - typing.cast
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.tell
    - typing.cast.info
    - typing.cast.warning
    - <builtin>.int
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - pip._internal.network.lazy_wheel.dist_from_wheel_url
    - <builtin>.open
    - <builtin>.getattr
    - os.unlink
    - contextlib.suppress
    - tempfile.NamedTemporaryFile.seek
    - val.lower
    - interpreter.lower
    - logger.debug
    - head.headers.get
    - _tempdir_manager.enter_context
    - typing.cast.Distribution.from_metadata_file_contents
    - typing.cast.Distribution.from_wheel
    - metadata_link.as_hashes
    - pip._internal.metadata.get_wheel_distribution
    - itertools.combinations_with_replacement
    - bisect.bisect_right
    - pip._internal.network.utils.raise_for_status
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._download
    - tempfile.NamedTemporaryFile.tell
    - pip._internal.network.utils.response_chunks
    - req.link.metadata_link
    - platform.lower
    - response.raw.stream
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._internal.utils.misc.strtobool
    - <builtin>.reversed
    - pip._internal.network.download.Downloader.__init__
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._check_zip
    - tempfile.NamedTemporaryFile.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 375
    functionName: pip._internal.operations.prepare.RequirementPreparer._fetch_metadata_using_link_data_attr
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 2
    functionsReached:
    - val.lower
    - pip._internal.operations.prepare.get_http_url
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - hashes.check_against_path
    - logger.debug
    - _tempdir_manager.enter_context
    - pip._internal.operations.prepare.File.__init__
    - _canonicalize_regex.sub
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - typing.cast.Distribution.from_metadata_file_contents
    - metadata_link.as_hashes
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - os.path.join
    - os.path.realpath
    - req.link.metadata_link
    - <builtin>.super
    - typing.cast.verbose
    - tempfile.mkdtemp
    - mimetypes.guess_type
    - pip._internal.metadata.select_backend
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - os.mkdir
    - pip._internal.metadata.get_metadata_distribution
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - typing.cast.info
    - <builtin>.range
    - typing.cast.warning
    - pip._internal.network.download.Downloader.__init__
    - os.path.exists
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - pip._internal.operations.prepare._check_download_dir
    - <builtin>.open
    - <builtin>.getattr
    - f.read
    - os.unlink
    - os.path.split
    - contextlib.suppress
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised:
    - MetadataInconsistent
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - link
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 416
    functionName: pip._internal.operations.prepare.RequirementPreparer._fetch_metadata_using_lazy_wheel
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 2
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - interpreter.lower
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - tempfile.NamedTemporaryFile.truncate
    - pip._internal.models.wheel.Wheel.__init__
    - head.headers.get
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stay
    - link.url.split
    - wheel_info.group
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.truncate
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    - base_headers.copy
    - typing.cast.Distribution.from_wheel
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._merge
    - response.raise_for_status
    - pip._internal.metadata.get_wheel_distribution
    - bisect.bisect_right
    - pip._internal.network.utils.raise_for_status
    - session.head
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._download
    - <builtin>.min
    - tempfile.NamedTemporaryFile.tell
    - pip._internal.network.utils.response_chunks
    - <builtin>.hash
    - platform.lower
    - response.raw.stream
    - zipfile.ZipFile
    - pip._internal.metadata.select_backend
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.seek
    - pip._internal.metadata.base.MemoryWheel.__init__
    - response.raw.read
    - <builtin>.zip
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stream_response
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.__init__
    - typing.cast
    - resp.reason.decode
    - tempfile.NamedTemporaryFile.seek
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.tell
    - bisect.bisect_left
    - pip._internal.utils.misc.strtobool
    - tempfile.NamedTemporaryFile
    - typing.cast.info
    - <builtin>.reversed
    - <builtin>.max
    - <builtin>.int
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.network.lazy_wheel.dist_from_wheel_url
    - <builtin>.getattr
    - abi.lower
    - typing.cast.debug
    - contextlib.suppress
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._check_zip
    - tempfile.NamedTemporaryFile.write
    - <builtin>.range
    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.link.metadata_link
    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: metadata_link.as_hashes
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - name
    - url
    - session
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 23
    functionName: pip._internal.network.lazy_wheel.dist_from_wheel_url
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 3
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - head.headers.get
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stay
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.truncate
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    - base_headers.copy
    - typing.cast.Distribution.from_wheel
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._merge
    - response.raise_for_status
    - pip._internal.metadata.get_wheel_distribution
    - bisect.bisect_right
    - pip._internal.network.utils.raise_for_status
    - session.head
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._download
    - <builtin>.min
    - tempfile.NamedTemporaryFile.tell
    - pip._internal.network.utils.response_chunks
    - response.raw.stream
    - zipfile.ZipFile
    - pip._internal.metadata.select_backend
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.seek
    - pip._internal.metadata.base.MemoryWheel.__init__
    - response.raw.read
    - <builtin>.zip
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stream_response
    - tempfile.NamedTemporaryFile.write
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.__init__
    - typing.cast
    - tempfile.NamedTemporaryFile.seek
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.tell
    - resp.reason.decode
    - bisect.bisect_left
    - pip._internal.utils.misc.strtobool
    - tempfile.NamedTemporaryFile
    - <builtin>.reversed
    - <builtin>.int
    - <builtin>.getattr
    - <builtin>.max
    - contextlib.suppress
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._check_zip
    - tempfile.NamedTemporaryFile.truncate
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30faa7d2b0>
    argNames:
    - self
    - partially_downloaded_reqs
    - parallel_builds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 445
    functionName: pip._internal.operations.prepare.RequirementPreparer._complete_partial_requirements
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 4
    functionsReached:
    - pip._internal.distributions.sdist.SourceDistribution._raise_missing_reqs
    - link.is_existing_dir
    - pip._internal.operations.prepare.get_http_url
    - pathlib.Path
    - tarfile.is_tarfile
    - pip._internal.utils.unpacking.is_within_directory
    - sysconfig.get_paths
    - hashes.check_against_path
    - pip._internal.distributions.sdist.SourceDistribution._install_build_reqs
    - pip._internal.operations.prepare.File.__init__
    - pip._internal.models.direct_url.DirInfo.__init__
    - path.split
    - cmd.finalize_options
    - itertools.dropwhile
    - variables.get
    - req.ensure_pristine_source_checkout
    - pip._internal.utils.misc._redact_netloc
    - _canonicalize_regex.sub
    - hashes.has_one_of
    - pip._internal.locations._distutils.get_platlib
    - <builtin>.str
    - tar._extract_member
    - distutils.command.install.install
    - pip._internal.utils.unpacking.unpack_file
    - pip._internal.utils.temp_dir.TempDirectory._create
    - <builtin>.tuple
    - os.path.realpath
    - pip._internal.utils.misc.read_chunks
    - pip._internal.distributions.sdist.SourceDistribution.prepare_distribution_metadata
    - filename.endswith
    - pip._internal.operations.prepare.unpack_url
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - unpatched.replace
    - pip._internal.build_env._dedup
    - tar.utime
    - os.path.normpath
    - distutils.dist.Distribution.parse_config_files
    - logger.log
    - pip._internal.locations._distutils.get_scheme
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - pip._internal.utils.unpacking.current_umask
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - os.path.basename
    - pip._internal.utils.misc.redact_auth_from_url
    - collections.OrderedDict
    - pip._internal.utils.unpacking.split_leading_dir
    - typing.cast.info
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - <builtin>.setattr
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.utils.unpacking.zip_item_is_executable
    - old_v.name.startswith
    - pip._internal.locations._looks_like_debian_scheme
    - urllib.parse.quote
    - typing.cast.debug
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - req.needs_unpacked_archive
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._internal.locations._sysconfig.get_purelib
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - path.lstrip
    - pip._internal.utils.unpacking.unzip_file
    - textwrap.dedent
    - zipfp.close
    - pip._internal.operations.prepare.RequirementPreparer._ensure_link_req_src_dir
    - part.startswith
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - zip.open
    - zip.namelist
    - fn.endswith
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._looks_like_red_hat_scheme
    - pip._internal.locations._sysconfig.get_platlib
    - new_v.name.startswith
    - tar.getmembers
    - part.lower
    - pip._internal.utils.misc.split_auth_from_netloc
    - <builtin>.super
    - os.chmod
    - pip._internal.network.download.BatchDownloader.__init__
    - member.issym
    - zipfile.ZipFile
    - <builtin>.map
    - pip._internal.utils.unpacking.has_leading_dir
    - zip.infolist
    - pip._internal.build_env._get_system_sitepackages
    - req.hashes
    - vcs_backend.get_revision
    - tar.close
    - os.path.abspath
    - warning_contexts.append
    - build_tracker.track
    - pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - os.path.exists
    - match.group
    - os.path.normcase
    - os.path.dirname
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - pip._internal.operations.prepare._check_download_dir
    - links_to_fully_download.keys
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.utils.misc.ensure_dir
    - <builtin>.range
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - format_string.format
    - pip._internal.locations.get_purelib
    - <builtin>.bool
    - backend.get_requires_for_build_editable
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - h.update
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - filename.lower
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - os.path.isabs
    - pip._internal.locations._distutils.get_purelib
    - file.read
    - req.ensure_has_source_dir
    - p.endswith
    - <builtin>.list
    - pip._internal.utils.unpacking.untar_file
    - os.makedirs
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - tempfile.mkdtemp
    - mimetypes.guess_type
    - req.link.is_existing_dir
    - pip._internal.locations._looks_like_bpo_44860
    - pip._internal.utils.misc.hide_url
    - <builtin>.len
    - auth.split
    - sysconfig.get_config_var
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - stat.S_ISREG
    - pip._internal.operations.prepare.get_file_url
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel
    - pip._internal.locations.get_platlib
    - parts.pop
    - pip._internal.distributions.sdist.SourceDistribution._prepare_build_backend
    - pip._internal.locations._warn_mismatched
    - _local_version_separators.split
    - fp.close
    - typing.cast.warning
    - pip._vendor.packaging.version._cmpkey
    - backend.subprocess_runner
    - <builtin>.int
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - collections.OrderedDict.values
    - part.isdigit
    - distutils.sysconfig.get_python_lib
    - _legacy_version_replacement_map.get
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - urllib.parse.urlsplit
    - pip._internal.utils.misc._transform_url
    - <builtin>.open
    - vcs_backend.get_url_rev_and_auth
    - <builtin>.all
    - <builtin>.getattr
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - tarfile.open
    - os.unlink
    - contextlib.suppress
    - path.find
    - val.lower
    - urllib.parse.unquote
    - pip._internal.build_env.BuildEnvironment.__init__
    - logger.critical
    - format_str.format
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.distributions.make_distribution_for_install_requirement
    - logger.debug
    - sysconfig.is_python_build
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - _tempdir_manager.enter_context
    - pip._vendor.packaging.version.parse
    - site.getsitepackages
    - _legacy_version_component_re.split
    - shutil.copyfileobj
    - tar.extractfile
    - typing.cast.Distribution.from_wheel
    - itertools.combinations_with_replacement
    - pip._internal.metadata.get_wheel_distribution
    - letter.lower
    - pip._internal.locations._warn_if_mismatch
    - pip._internal.operations.prepare.RequirementPreparer._get_linked_req_hashes
    - pip._internal.utils.hashes.MissingHashes.__init__
    - pip._internal.distributions.wheel.WheelDistribution.prepare_distribution_metadata
    - pip._internal.build_env._Prefix.__init__
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - os.umask
    - pip._internal.operations.prepare._get_prepared_distribution
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - backend.get_requires_for_build_wheel
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - urllib.parse.urlunsplit
    - hashlib.sha256
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.operations.prepare.unpack_vcs_link
    - member.isdir
    - pip._internal.utils.misc.strtobool
    - os.path.commonprefix
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.operations.prepare.RequirementPreparer._prepare_linked_requirement
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable
    - pip._internal.locations._sysconfig.get_scheme
    - pip._internal.network.download.Downloader.__init__
    - platlib.replace
    - fp.write
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.utils.misc.HiddenText.__init__
    - pip._internal.utils.misc.hash_file
    - pip._internal.utils.virtualenv._running_under_venv
    - vcs_backend.unpack
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    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: links_to_fully_download.keys
    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: req.needs_unpacked_archive
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 3
    IfCount: 8
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - req
    - parallel_builds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 557
    functionName: pip._internal.operations.prepare.RequirementPreparer._prepare_linked_requirement
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 6
    functionsReached:
    - pip._internal.distributions.sdist.SourceDistribution._raise_missing_reqs
    - link.is_existing_dir
    - pip._internal.operations.prepare.get_http_url
    - pathlib.Path
    - tarfile.is_tarfile
    - pip._internal.utils.unpacking.is_within_directory
    - sysconfig.get_paths
    - hashes.check_against_path
    - pip._internal.distributions.sdist.SourceDistribution._install_build_reqs
    - pip._internal.models.direct_url.DirInfo.__init__
    - pip._internal.operations.prepare.File.__init__
    - pip._internal.utils.misc._redact_netloc
    - cmd.finalize_options
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - req.ensure_pristine_source_checkout
    - path.split
    - variables.get
    - hashes.has_one_of
    - pip._internal.locations._distutils.get_platlib
    - <builtin>.str
    - tar._extract_member
    - distutils.command.install.install
    - pip._internal.utils.unpacking.unpack_file
    - pip._internal.utils.temp_dir.TempDirectory._create
    - <builtin>.tuple
    - os.path.realpath
    - pip._internal.utils.misc.read_chunks
    - pip._internal.distributions.sdist.SourceDistribution.prepare_distribution_metadata
    - filename.endswith
    - pip._internal.operations.prepare.unpack_url
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - unpatched.replace
    - pip._internal.build_env._dedup
    - tar.utime
    - os.path.normpath
    - distutils.dist.Distribution.parse_config_files
    - logger.log
    - pip._internal.locations._distutils.get_scheme
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - pip._internal.utils.unpacking.current_umask
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - os.path.basename
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.utils.unpacking.split_leading_dir
    - collections.OrderedDict
    - typing.cast.info
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - urllib.parse.quote
    - pip._internal.locations.base.get_major_minor_version
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.utils.unpacking.zip_item_is_executable
    - old_v.name.startswith
    - pip._internal.locations._looks_like_debian_scheme
    - <builtin>.setattr
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._internal.locations._sysconfig.get_purelib
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - path.lstrip
    - pip._internal.utils.unpacking.unzip_file
    - textwrap.dedent
    - zipfp.close
    - pip._internal.operations.prepare.RequirementPreparer._ensure_link_req_src_dir
    - part.startswith
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - zip.open
    - zip.namelist
    - fn.endswith
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._looks_like_red_hat_scheme
    - pip._internal.utils.misc.split_auth_from_netloc
    - new_v.name.startswith
    - tar.getmembers
    - part.lower
    - pip._internal.locations._sysconfig.get_platlib
    - <builtin>.super
    - os.chmod
    - member.issym
    - zipfile.ZipFile
    - <builtin>.map
    - pip._internal.utils.unpacking.has_leading_dir
    - zip.infolist
    - pip._internal.build_env._get_system_sitepackages
    - req.hashes
    - vcs_backend.get_revision
    - tar.close
    - os.path.abspath
    - warning_contexts.append
    - build_tracker.track
    - pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - os.path.exists
    - os.path.normcase
    - match.group
    - os.path.dirname
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - pip._internal.operations.prepare._check_download_dir
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.utils.misc.ensure_dir
    - <builtin>.range
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - format_string.format
    - pip._internal.locations.get_purelib
    - <builtin>.bool
    - backend.get_requires_for_build_editable
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - h.update
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - filename.lower
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - os.path.isabs
    - pip._internal.locations._distutils.get_purelib
    - file.read
    - req.ensure_has_source_dir
    - p.endswith
    - <builtin>.list
    - pip._internal.utils.unpacking.untar_file
    - os.makedirs
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - tempfile.mkdtemp
    - mimetypes.guess_type
    - req.link.is_existing_dir
    - auth.split
    - pip._internal.utils.misc.hide_url
    - <builtin>.len
    - pip._internal.locations._looks_like_bpo_44860
    - sysconfig.get_config_var
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - stat.S_ISREG
    - pip._internal.operations.prepare.get_file_url
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel
    - pip._internal.locations.get_platlib
    - parts.pop
    - pip._internal.distributions.sdist.SourceDistribution._prepare_build_backend
    - pip._internal.locations._warn_mismatched
    - _local_version_separators.split
    - fp.close
    - typing.cast.warning
    - pip._vendor.packaging.version._cmpkey
    - backend.subprocess_runner
    - urllib.parse.urlsplit
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - <builtin>.int
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - distutils.sysconfig.get_python_lib
    - part.isdigit
    - collections.OrderedDict.values
    - _legacy_version_replacement_map.get
    - pip._internal.utils.misc._transform_url
    - <builtin>.open
    - vcs_backend.get_url_rev_and_auth
    - <builtin>.getattr
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - tarfile.open
    - <builtin>.all
    - os.unlink
    - contextlib.suppress
    - path.find
    - urllib.parse.unquote
    - val.lower
    - pip._internal.build_env.BuildEnvironment.__init__
    - logger.critical
    - format_str.format
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.distributions.make_distribution_for_install_requirement
    - logger.debug
    - sysconfig.is_python_build
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - _tempdir_manager.enter_context
    - pip._vendor.packaging.version.parse
    - site.getsitepackages
    - _legacy_version_component_re.split
    - shutil.copyfileobj
    - tar.extractfile
    - typing.cast.Distribution.from_wheel
    - itertools.combinations_with_replacement
    - pip._internal.metadata.get_wheel_distribution
    - letter.lower
    - pip._internal.locations._warn_if_mismatch
    - pip._internal.operations.prepare.RequirementPreparer._get_linked_req_hashes
    - pip._internal.utils.hashes.MissingHashes.__init__
    - pip._internal.distributions.wheel.WheelDistribution.prepare_distribution_metadata
    - pip._internal.build_env._Prefix.__init__
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - os.umask
    - pip._internal.operations.prepare._get_prepared_distribution
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - backend.get_requires_for_build_wheel
    - urllib.parse.urlunsplit
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - hashlib.sha256
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.operations.prepare.unpack_vcs_link
    - member.isdir
    - pip._internal.utils.misc.strtobool
    - os.path.commonprefix
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable
    - pip._internal.network.download.Downloader.__init__
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - fp.write
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.utils.misc.HiddenText.__init__
    - pip._internal.utils.misc.hash_file
    - pip._internal.utils.virtualenv._running_under_venv
    - vcs_backend.unpack
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30faa7fe80>
    argNames:
    - self
    - req
    - parallel_builds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 489
    functionName: pip._internal.operations.prepare.RequirementPreparer.prepare_linked_requirement
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 0
    functionsReached:
    - pip._internal.distributions.sdist.SourceDistribution._raise_missing_reqs
    - link.is_existing_dir
    - pip._internal.operations.prepare.get_http_url
    - pathlib.Path
    - tarfile.is_tarfile
    - pip._internal.utils.unpacking.is_within_directory
    - sysconfig.get_paths
    - pip._internal.models.wheel.Wheel.__init__
    - hashes.check_against_path
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stay
    - pip._internal.distributions.sdist.SourceDistribution._install_build_reqs
    - pip._internal.operations.prepare.File.__init__
    - pip._internal.models.direct_url.DirInfo.__init__
    - link.url.split
    - pip._internal.utils.misc._redact_netloc
    - path.split
    - _canonicalize_regex.sub
    - req.ensure_pristine_source_checkout
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.truncate
    - cmd.finalize_options
    - hashes.has_one_of
    - pip._internal.operations.prepare.RequirementPreparer._fetch_metadata_using_lazy_wheel
    - itertools.dropwhile
    - pip._internal.locations._distutils.get_platlib
    - <builtin>.str
    - tar._extract_member
    - distutils.command.install.install
    - pip._internal.utils.unpacking.unpack_file
    - pip._internal.utils.temp_dir.TempDirectory._create
    - <builtin>.tuple
    - os.path.realpath
    - pip._internal.utils.misc.read_chunks
    - <builtin>.hash
    - pip._internal.utils.logging.indent_log
    - pip._internal.distributions.sdist.SourceDistribution.prepare_distribution_metadata
    - filename.endswith
    - pip._internal.operations.prepare.unpack_url
    - typing.cast.verbose
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - os.getcwd
    - unpatched.replace
    - pip._internal.build_env._dedup
    - pip._internal.metadata.base.MemoryWheel.__init__
    - response.raw.read
    - tar.utime
    - os.path.normpath
    - tempfile.NamedTemporaryFile.write
    - <builtin>.zip
    - distutils.dist.Distribution.parse_config_files
    - logger.log
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.__init__
    - pip._internal.locations._distutils.get_scheme
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - tempfile.NamedTemporaryFile
    - pip._internal.utils.unpacking.current_umask
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - os.path.basename
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.utils.unpacking.split_leading_dir
    - collections.OrderedDict
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - old_v.name.startswith
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.utils.unpacking.zip_item_is_executable
    - <builtin>.setattr
    - pip._internal.locations._looks_like_debian_scheme
    - urllib.parse.quote
    - abi.lower
    - typing.cast.debug
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._internal.locations._sysconfig.get_purelib
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - distutils.dist.Distribution.get_option_dict
    - path.lstrip
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - pip._internal.utils.unpacking.unzip_file
    - textwrap.dedent
    - zipfp.close
    - pip._internal.operations.prepare.RequirementPreparer._ensure_link_req_src_dir
    - wheel_info.group
    - part.startswith
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - zip.open
    - zip.namelist
    - pip._internal.utils.misc.display_path
    - parts.pop
    - response.raise_for_status
    - fn.endswith
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - os.path.join
    - <builtin>.min
    - scheme.update
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._looks_like_red_hat_scheme
    - pip._internal.utils.misc.split_auth_from_netloc
    - new_v.name.startswith
    - tar.getmembers
    - part.lower
    - pip._internal.locations._sysconfig.get_platlib
    - <builtin>.super
    - pip._internal.operations.prepare.RequirementPreparer._log_preparing_link
    - os.chmod
    - req.comes_from.from_path
    - member.issym
    - zipfile.ZipFile
    - <builtin>.map
    - pip._internal.utils.unpacking.has_leading_dir
    - zip.infolist
    - pip._internal.build_env._get_system_sitepackages
    - req.hashes
    - vcs_backend.get_revision
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stream_response
    - tar.close
    - os.path.abspath
    - pip._internal.metadata.get_metadata_distribution
    - warning_contexts.append
    - build_tracker.track
    - resp.reason.decode
    - pip._internal.utils.logging.get_indentation
    - bisect.bisect_left
    - pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - os.path.exists
    - match.group
    - os.path.normcase
    - os.path.dirname
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - _local_version_separators.split
    - pip._internal.operations.prepare._check_download_dir
    - f.read
    - <builtin>.max
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.utils.misc.ensure_dir
    - tempfile.NamedTemporaryFile.truncate
    - <builtin>.range
    - pip._internal.operations.prepare.RequirementPreparer._fetch_metadata_using_link_data_attr
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - format_string.format
    - pip._internal.locations.get_purelib
    - <builtin>.bool
    - backend.get_requires_for_build_editable
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - h.update
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - base_headers.copy
    - filename.lower
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._merge
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - os.path.isabs
    - pip._internal.locations._distutils.get_purelib
    - session.head
    - file.read
    - req.ensure_has_source_dir
    - p.endswith
    - <builtin>.list
    - pip._internal.utils.unpacking.untar_file
    - os.makedirs
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - tempfile.mkdtemp
    - mimetypes.guess_type
    - req.link.is_existing_dir
    - pip._internal.locations._looks_like_bpo_44860
    - pip._internal.utils.misc.hide_url
    - <builtin>.len
    - auth.split
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.seek
    - sysconfig.get_config_var
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - variables.get
    - typing.cast
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.tell
    - pip._internal.operations.prepare.get_file_url
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel
    - stat.S_ISREG
    - pip._internal.locations.get_platlib
    - pip._internal.distributions.sdist.SourceDistribution._prepare_build_backend
    - pip._internal.locations._warn_mismatched
    - typing.cast.info
    - fp.close
    - typing.cast.warning
    - backend.subprocess_runner
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - collections.OrderedDict.values
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - pip._vendor.packaging.version._cmpkey
    - part.isdigit
    - pip._internal.network.lazy_wheel.dist_from_wheel_url
    - distutils.sysconfig.get_python_lib
    - pip._internal.utils.misc._transform_url
    - <builtin>.open
    - vcs_backend.get_url_rev_and_auth
    - _legacy_version_replacement_map.get
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - <builtin>.getattr
    - <builtin>.all
    - tarfile.open
    - os.unlink
    - contextlib.suppress
    - tempfile.NamedTemporaryFile.seek
    - pip._internal.operations.prepare.RequirementPreparer._fetch_metadata_only
    - urllib.parse.unquote
    - val.lower
    - path.find
    - pip._internal.build_env.BuildEnvironment.__init__
    - logger.critical
    - interpreter.lower
    - format_str.format
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.distributions.make_distribution_for_install_requirement
    - logger.debug
    - sysconfig.is_python_build
    - head.headers.get
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - _tempdir_manager.enter_context
    - pip._vendor.packaging.version.parse
    - site.getsitepackages
    - _legacy_version_component_re.split
    - shutil.copyfileobj
    - tar.extractfile
    - typing.cast.Distribution.from_metadata_file_contents
    - typing.cast.Distribution.from_wheel
    - metadata_link.as_hashes
    - itertools.combinations_with_replacement
    - pip._internal.metadata.get_wheel_distribution
    - bisect.bisect_right
    - pip._internal.network.utils.raise_for_status
    - pip._internal.operations.prepare.RequirementPreparer._get_linked_req_hashes
    - pip._internal.locations._warn_if_mismatch
    - pip._internal.utils.hashes.MissingHashes.__init__
    - letter.lower
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._download
    - tempfile.NamedTemporaryFile.tell
    - pip._internal.network.utils.response_chunks
    - pip._internal.distributions.wheel.WheelDistribution.prepare_distribution_metadata
    - req.link.metadata_link
    - pip._internal.build_env._Prefix.__init__
    - platform.lower
    - response.raw.stream
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - os.umask
    - pip._internal.utils.misc.redact_auth_from_requirement
    - pip._internal.operations.prepare._get_prepared_distribution
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - backend.get_requires_for_build_wheel
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - urllib.parse.urlunsplit
    - hashlib.sha256
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.operations.prepare.unpack_vcs_link
    - pip._internal.utils.misc.strtobool
    - member.isdir
    - os.path.commonprefix
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - <builtin>.reversed
    - pip._internal.operations.prepare.RequirementPreparer._prepare_linked_requirement
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable
    - pip._internal.network.download.Downloader.__init__
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - pip._vendor.packaging.tags.Tag.__init__
    - distutils.dist.Distribution
    - fp.write
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.utils.misc.HiddenText.__init__
    - pip._internal.utils.misc.hash_file
    - pip._internal.utils.virtualenv._running_under_venv
    - vcs_backend.unpack
    - os.path.splitdrive
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._check_zip
    - pip._internal.locations.base.is_osx_framework
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30eaf36c70>
    argNames:
    - self
    - reqs
    - parallel_builds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 527
    functionName: pip._internal.operations.prepare.RequirementPreparer.prepare_linked_requirements_more
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 3
    functionsReached:
    - pip._internal.distributions.sdist.SourceDistribution._raise_missing_reqs
    - link.is_existing_dir
    - pip._internal.operations.prepare.get_http_url
    - pathlib.Path
    - tarfile.is_tarfile
    - pip._internal.utils.unpacking.is_within_directory
    - sysconfig.get_paths
    - hashes.check_against_path
    - pip._internal.distributions.sdist.SourceDistribution._install_build_reqs
    - pip._internal.models.direct_url.DirInfo.__init__
    - pip._internal.operations.prepare.File.__init__
    - pip._internal.utils.misc._redact_netloc
    - cmd.finalize_options
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - req.ensure_pristine_source_checkout
    - variables.get
    - path.split
    - hashes.has_one_of
    - pip._internal.locations._distutils.get_platlib
    - <builtin>.str
    - tar._extract_member
    - distutils.command.install.install
    - pip._internal.utils.unpacking.unpack_file
    - pip._internal.utils.temp_dir.TempDirectory._create
    - <builtin>.tuple
    - os.path.realpath
    - pip._internal.utils.misc.read_chunks
    - pip._internal.distributions.sdist.SourceDistribution.prepare_distribution_metadata
    - filename.endswith
    - pip._internal.operations.prepare.unpack_url
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - unpatched.replace
    - pip._internal.build_env._dedup
    - tar.utime
    - os.path.normpath
    - distutils.dist.Distribution.parse_config_files
    - logger.log
    - pip._internal.locations._distutils.get_scheme
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - pip._internal.utils.unpacking.current_umask
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - os.path.basename
    - pip._internal.utils.misc.redact_auth_from_url
    - collections.OrderedDict
    - pip._internal.utils.unpacking.split_leading_dir
    - typing.cast.info
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - old_v.name.startswith
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.utils.unpacking.zip_item_is_executable
    - urllib.parse.quote
    - pip._internal.locations._looks_like_debian_scheme
    - <builtin>.setattr
    - typing.cast.debug
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - req.needs_unpacked_archive
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._internal.locations._sysconfig.get_purelib
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - path.lstrip
    - pip._internal.utils.unpacking.unzip_file
    - textwrap.dedent
    - zipfp.close
    - pip._internal.operations.prepare.RequirementPreparer._ensure_link_req_src_dir
    - part.startswith
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - zip.open
    - zip.namelist
    - fn.endswith
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - zipfile.is_zipfile
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._looks_like_red_hat_scheme
    - pip._internal.locations._sysconfig.get_platlib
    - new_v.name.startswith
    - tar.getmembers
    - part.lower
    - pip._internal.utils.misc.split_auth_from_netloc
    - <builtin>.super
    - os.chmod
    - pip._internal.network.download.BatchDownloader.__init__
    - member.issym
    - zipfile.ZipFile
    - <builtin>.map
    - pip._internal.utils.unpacking.has_leading_dir
    - zip.infolist
    - pip._internal.build_env._get_system_sitepackages
    - req.hashes
    - vcs_backend.get_revision
    - tar.close
    - os.path.abspath
    - warning_contexts.append
    - build_tracker.track
    - pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - os.path.exists
    - os.path.normcase
    - match.group
    - os.path.dirname
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - pip._internal.operations.prepare._check_download_dir
    - links_to_fully_download.keys
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.utils.misc.ensure_dir
    - <builtin>.range
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - format_string.format
    - pip._internal.locations.get_purelib
    - <builtin>.bool
    - backend.get_requires_for_build_editable
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - h.update
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - filename.lower
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - os.path.isabs
    - pip._internal.locations._distutils.get_purelib
    - file.read
    - req.ensure_has_source_dir
    - p.endswith
    - <builtin>.list
    - pip._internal.utils.unpacking.untar_file
    - os.makedirs
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - tempfile.mkdtemp
    - mimetypes.guess_type
    - req.link.is_existing_dir
    - pip._internal.locations._looks_like_bpo_44860
    - pip._internal.utils.misc.hide_url
    - <builtin>.len
    - auth.split
    - sysconfig.get_config_var
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - stat.S_ISREG
    - pip._internal.operations.prepare.get_file_url
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel
    - pip._internal.locations.get_platlib
    - parts.pop
    - pip._internal.distributions.sdist.SourceDistribution._prepare_build_backend
    - pip._internal.locations._warn_mismatched
    - _local_version_separators.split
    - fp.close
    - typing.cast.warning
    - backend.subprocess_runner
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - part.isdigit
    - urllib.parse.urlsplit
    - distutils.sysconfig.get_python_lib
    - collections.OrderedDict.values
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - _legacy_version_replacement_map.get
    - pip._internal.utils.misc._transform_url
    - <builtin>.open
    - vcs_backend.get_url_rev_and_auth
    - <builtin>.getattr
    - <builtin>.all
    - tarfile.open
    - pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable
    - os.unlink
    - contextlib.suppress
    - path.find
    - val.lower
    - urllib.parse.unquote
    - pip._internal.build_env.BuildEnvironment.__init__
    - logger.critical
    - format_str.format
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.distributions.make_distribution_for_install_requirement
    - logger.debug
    - sysconfig.is_python_build
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - _tempdir_manager.enter_context
    - pip._vendor.packaging.version.parse
    - site.getsitepackages
    - _legacy_version_component_re.split
    - shutil.copyfileobj
    - tar.extractfile
    - typing.cast.Distribution.from_wheel
    - pip._internal.operations.prepare.RequirementPreparer._complete_partial_requirements
    - itertools.combinations_with_replacement
    - partially_downloaded_reqs.append
    - pip._internal.metadata.get_wheel_distribution
    - letter.lower
    - pip._internal.locations._warn_if_mismatch
    - pip._internal.operations.prepare.RequirementPreparer._get_linked_req_hashes
    - pip._internal.utils.hashes.MissingHashes.__init__
    - pip._internal.distributions.wheel.WheelDistribution.prepare_distribution_metadata
    - pip._internal.build_env._Prefix.__init__
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - os.umask
    - pip._internal.operations.prepare._get_prepared_distribution
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - backend.get_requires_for_build_wheel
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - hashlib.sha256
    - urllib.parse.urlunsplit
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.operations.prepare.unpack_vcs_link
    - member.isdir
    - pip._internal.utils.misc.strtobool
    - os.path.commonprefix
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.operations.prepare.RequirementPreparer._prepare_linked_requirement
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable
    - pip._internal.network.download.Downloader.__init__
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - fp.write
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.utils.misc.hash_file
    - pip._internal.utils.misc.HiddenText.__init__
    - pip._internal.utils.virtualenv._running_under_venv
    - vcs_backend.unpack
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    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: partially_downloaded_reqs.append
    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: hashes.has_one_of
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 649
    functionName: pip._internal.operations.prepare.RequirementPreparer.save_linked_requirement
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 3
    functionsReached:
    - link.is_existing_dir
    - typing.cast.info
    - pip._internal.utils.misc.display_path
    - os.path.exists
    - os.path.normcase
    - <builtin>.len
    - os.getcwd
    - os.path.join
    - os.path.abspath
    - typing.cast.debug
    - req.archive
    - shutil.copy
    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.archive
    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: shutil.copy
    functionSourceFile: shutil
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 675
    functionName: pip._internal.operations.prepare.RequirementPreparer.prepare_editable_requirement
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 0
    functionsReached:
    - pip._internal.distributions.sdist.SourceDistribution._raise_missing_reqs
    - pathlib.Path
    - pip._internal.utils.urls.path_to_url
    - sysconfig.get_paths
    - pip._internal.distributions.sdist.SourceDistribution._install_build_reqs
    - pip._internal.models.direct_url.DirInfo.__init__
    - cmd.finalize_options
    - variables.get
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._internal.locations._distutils.get_platlib
    - <builtin>.str
    - distutils.command.install.install
    - pip._internal.utils.temp_dir.TempDirectory._create
    - <builtin>.tuple
    - req.check_if_exists
    - os.path.realpath
    - pip._internal.utils.logging.indent_log
    - pip._internal.distributions.sdist.SourceDistribution.prepare_distribution_metadata
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - unpatched.replace
    - pip._internal.build_env._dedup
    - os.path.normpath
    - logger.log
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.locations._distutils.get_scheme
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - os.path.basename
    - collections.OrderedDict
    - <builtin>.setattr
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - old_v.name.startswith
    - distutils.dist.Distribution.get_command_obj
    - urllib.parse.urljoin
    - pip._internal.locations._looks_like_debian_scheme
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._internal.locations._sysconfig.get_purelib
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - textwrap.dedent
    - part.startswith
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - pip._internal.utils.direct_url_helpers.direct_url_for_editable
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._sysconfig.get_platlib
    - pip._internal.locations._looks_like_red_hat_scheme
    - new_v.name.startswith
    - part.lower
    - <builtin>.super
    - <builtin>.map
    - pip._internal.build_env._get_system_sitepackages
    - os.path.abspath
    - warning_contexts.append
    - build_tracker.track
    - pip._internal.utils.logging.get_indentation
    - pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - os.path.exists
    - os.path.normcase
    - match.group
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - req.update_editable
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.range
    - <builtin>.isinstance
    - format_string.format
    - pip._internal.locations.get_purelib
    - <builtin>.bool
    - backend.get_requires_for_build_editable
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - os.path.isabs
    - pip._internal.locations._distutils.get_purelib
    - req.ensure_has_source_dir
    - p.endswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - tempfile.mkdtemp
    - pip._internal.locations._looks_like_bpo_44860
    - <builtin>.len
    - sysconfig.get_config_var
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - pip._internal.locations.get_platlib
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel
    - parts.pop
    - pip._internal.distributions.sdist.SourceDistribution._prepare_build_backend
    - urllib.request.pathname2url
    - typing.cast.info
    - pip._internal.locations._warn_mismatched
    - backend.subprocess_runner
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - _local_version_separators.split
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - collections.OrderedDict.values
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - distutils.sysconfig.get_python_lib
    - _legacy_version_replacement_map.get
    - part.isdigit
    - <builtin>.open
    - <builtin>.getattr
    - <builtin>.all
    - contextlib.suppress
    - val.lower
    - pip._internal.build_env.BuildEnvironment.__init__
    - format_str.format
    - pip._internal.distributions.make_distribution_for_install_requirement
    - sysconfig.is_python_build
    - logger.debug
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - _tempdir_manager.enter_context
    - pip._vendor.packaging.version.parse
    - site.getsitepackages
    - _legacy_version_component_re.split
    - typing.cast.Distribution.from_wheel
    - itertools.combinations_with_replacement
    - pip._internal.metadata.get_wheel_distribution
    - letter.lower
    - pip._internal.locations._warn_if_mismatch
    - pip._internal.distributions.wheel.WheelDistribution.prepare_distribution_metadata
    - pip._internal.build_env._Prefix.__init__
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.operations.prepare._get_prepared_distribution
    - backend.get_requires_for_build_wheel
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.misc.strtobool
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - fp.write
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    linkageType: pythonLinkage
    raised:
    - InstallationError
    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.update_editable
    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: req.check_if_exists
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - req
    - skip_reason
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 708
    functionName: pip._internal.operations.prepare.RequirementPreparer.prepare_installed_requirement
    functionSourceFile: pip._internal.operations.prepare
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._internal.distributions.installed.InstalledDistribution.get_metadata_distribution
    - typing.cast.info
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - <builtin>.getattr
    - typing.cast.debug
    - pip._internal.utils.logging.indent_log
    - pip._internal.utils.logging.get_indentation
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: pip._internal.distributions.base.AbstractDistribution.__init__
    functionSourceFile: pip._internal.distributions.base
    functionUses: 15
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 19
    functionName: pip._internal.distributions.installed.InstalledDistribution.get_metadata_distribution
    functionSourceFile: ''
    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: pip._internal.distributions.installed
    functionSourceFile: pip._internal.distributions.installed
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 16
    functionName: pip._internal.distributions.installed.InstalledDistribution.build_tracker_id
    functionSourceFile: pip._internal.distributions.installed
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - finder
    - build_isolation
    - check_build_deps
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 23
    functionName: pip._internal.distributions.installed.InstalledDistribution.prepare_distribution_metadata
    functionSourceFile: pip._internal.distributions.installed
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.distributions.base
    functionSourceFile: pip._internal.distributions.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.distributions.base.AbstractDistribution
    functionSourceFile: pip._internal.distributions.base
    functionUses: 0
    functionsReached:
    - abc.abstractproperty
    - abc.abstractmethod
    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: 33
    functionName: pip._internal.distributions.base.AbstractDistribution.build_tracker_id
    functionSourceFile: pip._internal.distributions.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 41
    functionName: pip._internal.distributions.base.AbstractDistribution.get_metadata_distribution
    functionSourceFile: pip._internal.distributions.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - finder
    - build_isolation
    - check_build_deps
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 45
    functionName: pip._internal.distributions.base.AbstractDistribution.prepare_distribution_metadata
    functionSourceFile: pip._internal.distributions.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.network.download
    functionSourceFile: pip._internal.network.download
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - resp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: pip._internal.network.download._get_http_response_size
    functionSourceFile: pip._internal.network.download
    functionUses: 3
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 3
    argDefaultValues: []
    argNames:
    - resp
    - link
    - progress_bar
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 30
    functionName: pip._internal.network.download._prepare_download
    functionSourceFile: pip._internal.network.download
    functionUses: 2
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.misc._redact_netloc
    - pip._internal.network.utils.response_chunks
    - pip._internal.utils.misc.split_auth_from_netloc
    - pip._internal.network.cache.is_from_cache
    - response.raw.stream
    - auth.split
    - urllib.parse.urlunsplit
    - response.raw.read
    - pip._internal.cli.progress_bars.get_download_progress_renderer
    - typing.cast
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - logger.getEffectiveLevel
    - functools.partial
    - logger.info
    - pip._internal.utils.misc._transform_url
    - pip._internal.utils.misc.format_size
    - urllib.parse.quote
    - <builtin>.getattr
    - pip._internal.network.download._get_http_response_size
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 72
    functionName: pip._internal.network.download.sanitize_content_filename
    functionSourceFile: pip._internal.network.download
    functionUses: 4
    functionsReached:
    - os.path.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - content_disposition
    - default_filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 79
    functionName: pip._internal.network.download.parse_content_disposition
    functionSourceFile: pip._internal.network.download
    functionUses: 3
    functionsReached:
    - <builtin>.str
    - os.path.basename
    - email.message.Message
    - pip._internal.network.download.sanitize_content_filename
    - m.get_param
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - resp
    - link
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 94
    functionName: pip._internal.network.download._get_http_response_filename
    functionSourceFile: pip._internal.network.download
    functionUses: 2
    functionsReached:
    - base.lower
    - <builtin>.str
    - os.path.basename
    - posixpath.splitext
    - mimetypes.guess_extension
    - pip._internal.utils.misc.splitext
    - resp.headers.get
    - pip._internal.network.download.parse_content_disposition
    - pip._internal.network.download.sanitize_content_filename
    - email.message.Message
    - os.path.splitext
    - m.get_param
    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: mimetypes.guess_extension
    functionSourceFile: mimetypes
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - session
    - link
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 115
    functionName: pip._internal.network.download._http_get_download
    functionSourceFile: pip._internal.network.download
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.network.utils.raise_for_status
    - session.get
    - link.url.split
    - resp.reason.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - link
    - location
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 131
    functionName: pip._internal.network.download.Downloader.__call__
    functionSourceFile: pip._internal.network.download
    functionUses: 0
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - logger.critical
    - posixpath.splitext
    - content_file.write
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.network.download._prepare_download
    - resp.headers.get
    - email.message.Message
    - link.url.split
    - pip._internal.utils.misc._redact_netloc
    - pip._internal.network.download._get_http_response_filename
    - base.lower
    - <builtin>.str
    - pip._internal.network.download._http_get_download
    - pip._internal.network.utils.raise_for_status
    - pip._internal.network.download.sanitize_content_filename
    - os.path.join
    - os.path.splitext
    - pip._internal.network.utils.response_chunks
    - pip._internal.utils.misc.split_auth_from_netloc
    - pip._internal.network.cache.is_from_cache
    - response.raw.stream
    - auth.split
    - mimetypes.guess_extension
    - urllib.parse.urlunsplit
    - session.get
    - response.raw.read
    - pip._internal.cli.progress_bars.get_download_progress_renderer
    - resp.reason.decode
    - typing.cast
    - <builtin>.int
    - os.path.basename
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - logger.getEffectiveLevel
    - functools.partial
    - pip._internal.utils.misc.splitext
    - logger.info
    - pip._internal.utils.misc.format_size
    - pip._internal.utils.misc._transform_url
    - <builtin>.open
    - pip._internal.network.download.parse_content_disposition
    - urllib.parse.quote
    - pip._internal.network.download._get_http_response_size
    - <builtin>.getattr
    - m.get_param
    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: content_file.write
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - links
    - location
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 162
    functionName: pip._internal.network.download.BatchDownloader.__call__
    functionSourceFile: pip._internal.network.download
    functionUses: 0
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.utils.misc._get_netloc
    - <builtin>.isinstance
    - logger.critical
    - posixpath.splitext
    - content_file.write
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.network.download._prepare_download
    - resp.headers.get
    - email.message.Message
    - link.url.split
    - pip._internal.utils.misc._redact_netloc
    - pip._internal.network.download._get_http_response_filename
    - base.lower
    - <builtin>.str
    - pip._internal.network.download._http_get_download
    - pip._internal.network.utils.raise_for_status
    - pip._internal.network.download.sanitize_content_filename
    - os.path.join
    - os.path.splitext
    - pip._internal.network.utils.response_chunks
    - pip._internal.utils.misc.split_auth_from_netloc
    - pip._internal.network.cache.is_from_cache
    - response.raw.stream
    - auth.split
    - mimetypes.guess_extension
    - urllib.parse.urlunsplit
    - session.get
    - response.raw.read
    - pip._internal.cli.progress_bars.get_download_progress_renderer
    - resp.reason.decode
    - typing.cast
    - <builtin>.int
    - os.path.basename
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - logger.getEffectiveLevel
    - functools.partial
    - pip._internal.utils.misc.splitext
    - logger.info
    - pip._internal.utils.misc.format_size
    - pip._internal.utils.misc._transform_url
    - <builtin>.open
    - pip._internal.network.download.parse_content_disposition
    - urllib.parse.quote
    - pip._internal.network.download._get_http_response_size
    - <builtin>.getattr
    - m.get_param
    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: pip._internal.distributions
    functionSourceFile: pip._internal.distributions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.distributions.sdist
    functionSourceFile: pip._internal.distributions.sdist
    functionUses: 0
    functionsReached:
    - logging.getLogger
    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: 22
    functionName: pip._internal.distributions.sdist.SourceDistribution.build_tracker_id
    functionSourceFile: pip._internal.distributions.sdist
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - finder
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 69
    functionName: pip._internal.distributions.sdist.SourceDistribution._prepare_build_backend
    functionSourceFile: pip._internal.distributions.sdist
    functionUses: 10
    functionsReached:
    - pathlib.Path
    - sysconfig.get_paths
    - cmd.finalize_options
    - variables.get
    - itertools.dropwhile
    - pip._internal.locations._distutils.get_platlib
    - <builtin>.str
    - distutils.command.install.install
    - pip._internal.utils.temp_dir.TempDirectory._create
    - <builtin>.tuple
    - os.path.realpath
    - <builtin>.sorted
    - unpatched.replace
    - pip._internal.build_env._dedup
    - os.path.normpath
    - logger.log
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.locations._distutils.get_scheme
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - collections.OrderedDict
    - <builtin>.setattr
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - old_v.name.startswith
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.locations._looks_like_debian_scheme
    - os.path.split
    - logger.warning
    - <builtin>.hasattr
    - pip._internal.locations._sysconfig.get_purelib
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - textwrap.dedent
    - part.startswith
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._sysconfig.get_platlib
    - pip._internal.locations._looks_like_red_hat_scheme
    - new_v.name.startswith
    - part.lower
    - <builtin>.super
    - <builtin>.map
    - pip._internal.build_env._get_system_sitepackages
    - os.path.abspath
    - warning_contexts.append
    - pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    - os.path.exists
    - os.path.normcase
    - match.group
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.range
    - <builtin>.isinstance
    - format_string.format
    - pip._internal.locations.get_purelib
    - <builtin>.bool
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - pip._internal.locations._looks_like_deb_system_dist_packages
    - os.path.isabs
    - pip._internal.locations._distutils.get_purelib
    - p.endswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - tempfile.mkdtemp
    - pip._internal.locations._looks_like_bpo_44860
    - <builtin>.len
    - sysconfig.get_config_var
    - os.mkdir
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - pip._internal.locations.get_platlib
    - parts.pop
    - pip._internal.locations._warn_mismatched
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - collections.OrderedDict.values
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - distutils.sysconfig.get_python_lib
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - <builtin>.getattr
    - <builtin>.all
    - pip._internal.build_env.BuildEnvironment.__init__
    - format_str.format
    - sysconfig.is_python_build
    - logger.debug
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - _tempdir_manager.enter_context
    - pip._vendor.packaging.version.parse
    - site.getsitepackages
    - _legacy_version_component_re.split
    - itertools.combinations_with_replacement
    - letter.lower
    - pip._internal.locations._warn_if_mismatch
    - pip._internal.build_env._Prefix.__init__
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - fp.write
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - finder
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 113
    functionName: pip._internal.distributions.sdist.SourceDistribution._install_build_reqs
    functionSourceFile: pip._internal.distributions.sdist
    functionUses: 10
    functionsReached:
    - pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable
    - backend.subprocess_runner
    - format_string.format
    - pip._internal.utils.subprocess.runner_with_spinner_message
    - backend.get_requires_for_build_editable
    - <builtin>.sorted
    - backend.get_requires_for_build_wheel
    - pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - conflicting_with
    - conflicting_reqs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 132
    functionName: pip._internal.distributions.sdist.SourceDistribution._raise_conflicts
    functionSourceFile: pip._internal.distributions.sdist
    functionUses: 12
    functionsReached:
    - <builtin>.sorted
    - format_string.format
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - missing
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 149
    functionName: pip._internal.distributions.sdist.SourceDistribution._raise_missing_reqs
    functionSourceFile: pip._internal.distributions.sdist
    functionUses: 10
    functionsReached:
    - <builtin>.map
    - <builtin>.sorted
    - format_string.format
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 95
    functionName: pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel
    functionSourceFile: pip._internal.distributions.sdist
    functionUses: 11
    functionsReached:
    - backend.subprocess_runner
    - backend.get_requires_for_build_wheel
    - pip._internal.utils.subprocess.runner_with_spinner_message
    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: backend.get_requires_for_build_wheel
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable
    functionSourceFile: pip._internal.distributions.sdist
    functionUses: 11
    functionsReached:
    - backend.get_requires_for_build_editable
    - backend.subprocess_runner
    - pip._internal.utils.subprocess.runner_with_spinner_message
    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: backend.get_requires_for_build_editable
    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: pip._internal.distributions.wheel
    functionSourceFile: pip._internal.distributions.wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 21
    functionName: pip._internal.distributions.wheel.WheelDistribution.build_tracker_id
    functionSourceFile: pip._internal.distributions.wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.network.lazy_wheel
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f30d568b610>
    argNames:
    - self
    - url
    - session
    - chunk_size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 49
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.__init__
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - head.headers.get
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stay
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.truncate
    - base_headers.copy
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._merge
    - response.raise_for_status
    - bisect.bisect_right
    - pip._internal.network.utils.raise_for_status
    - session.head
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._download
    - <builtin>.min
    - tempfile.NamedTemporaryFile.tell
    - pip._internal.network.utils.response_chunks
    - response.raw.stream
    - zipfile.ZipFile
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.seek
    - response.raw.read
    - <builtin>.zip
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stream_response
    - tempfile.NamedTemporaryFile.write
    - resp.reason.decode
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.tell
    - tempfile.NamedTemporaryFile.seek
    - tempfile.NamedTemporaryFile
    - bisect.bisect_left
    - <builtin>.reversed
    - <builtin>.int
    - <builtin>.max
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._check_zip
    - tempfile.NamedTemporaryFile.truncate
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - HTTPRangeRequestUnsupported
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36caa30>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 120
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.truncate
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 5
    functionsReached:
    - tempfile.NamedTemporaryFile.truncate
    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: head.headers.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 153
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP._check_zip
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 5
    functionsReached:
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stay
    - base_headers.copy
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._merge
    - response.raise_for_status
    - bisect.bisect_right
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._download
    - <builtin>.min
    - tempfile.NamedTemporaryFile.tell
    - pip._internal.network.utils.response_chunks
    - response.raw.stream
    - zipfile.ZipFile
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.seek
    - response.raw.read
    - <builtin>.zip
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stream_response
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.tell
    - bisect.bisect_left
    - <builtin>.reversed
    - <builtin>.max
    - tempfile.NamedTemporaryFile.seek
    - tempfile.NamedTemporaryFile.write
    - <builtin>.range
    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: 66
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.mode
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 71
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.name
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 75
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.seekable
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.close
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 0
    functionsReached:
    - tempfile.NamedTemporaryFile.close
    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: 84
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.closed
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7f30f99333a0>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 88
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.read
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 0
    functionsReached:
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stay
    - base_headers.copy
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._merge
    - response.raise_for_status
    - bisect.bisect_right
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._download
    - <builtin>.min
    - tempfile.NamedTemporaryFile.tell
    - pip._internal.network.utils.response_chunks
    - response.raw.stream
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.seek
    - response.raw.read
    - <builtin>.zip
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stream_response
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.tell
    - bisect.bisect_left
    - tempfile.NamedTemporaryFile.read
    - <builtin>.max
    - tempfile.NamedTemporaryFile.seek
    - tempfile.NamedTemporaryFile.write
    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: 116
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.tell
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 9
    functionsReached:
    - tempfile.NamedTemporaryFile.tell
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 200
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP._download
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 7
    functionsReached:
    - bisect.bisect_left
    - base_headers.copy
    - response.raw.stream
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._merge
    - response.raise_for_status
    - bisect.bisect_right
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.seek
    - response.raw.read
    - <builtin>.zip
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stay
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP._stream_response
    - <builtin>.min
    - tempfile.NamedTemporaryFile.tell
    - <builtin>.max
    - pip._internal.network.utils.response_chunks
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.tell
    - tempfile.NamedTemporaryFile.seek
    - tempfile.NamedTemporaryFile.write
    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.NamedTemporaryFile.read
    functionSourceFile: tempfile
    functionUses: 1
    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: 102
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.readable
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a8ee0>
    argNames:
    - self
    - offset
    - whence
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 106
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.seek
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 9
    functionsReached:
    - tempfile.NamedTemporaryFile.seek
    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.NamedTemporaryFile.truncate
    functionSourceFile: tempfile
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 130
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.writable
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 134
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.__enter__
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 0
    functionsReached:
    - tempfile.NamedTemporaryFile.__enter__
    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.NamedTemporaryFile.__enter__
    functionSourceFile: tempfile
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - exc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 138
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP.__exit__
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 0
    functionsReached:
    - tempfile.NamedTemporaryFile.__exit__
    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.NamedTemporaryFile.__exit__
    functionSourceFile: tempfile
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 0
    functionsReached:
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 142
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP._stay
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 8
    functionsReached:
    - tempfile.NamedTemporaryFile.tell
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.tell
    - tempfile.NamedTemporaryFile.seek
    - pip._internal.network.lazy_wheel.LazyZipOverHTTP.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f30d6b89d90>
    argNames:
    - self
    - start
    - end
    - base_headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 168
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP._stream_response
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 8
    functionsReached:
    - base_headers.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base_headers.copy
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - start
    - end
    - left
    - right
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 178
    functionName: pip._internal.network.lazy_wheel.LazyZipOverHTTP._merge
    functionSourceFile: pip._internal.network.lazy_wheel
    functionUses: 8
    functionsReached:
    - <builtin>.max
    - <builtin>.zip
    - <builtin>.min
    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: bisect.bisect_right
    functionSourceFile: bisect
    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: response.raise_for_status
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.operations.build.build_tracker
    functionSourceFile: pip._internal.operations.build.build_tracker
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - changes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 16
    functionName: pip._internal.operations.build.build_tracker.update_env_context_manager
    functionSourceFile: pip._internal.operations.build.build_tracker
    functionUses: 5
    functionsReached:
    - <builtin>.object
    - changes.items
    - saved_values.items
    - <builtin>.isinstance
    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: changes.items
    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: saved_values.items
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 42
    functionName: pip._internal.operations.build.build_tracker.get_build_tracker
    functionSourceFile: pip._internal.operations.build.build_tracker
    functionUses: 4
    functionsReached:
    - ctx.enter_context
    - <builtin>.isinstance
    - <builtin>.object
    - logger.debug
    - _tempdir_manager.enter_context
    - saved_values.items
    - os.environ.get
    - pip._internal.utils.temp_dir.TempDirectory.__init__
    - itertools.combinations_with_replacement
    - pip._internal.utils.temp_dir.TempDirectory._create
    - os.path.join
    - os.path.realpath
    - <builtin>.super
    - tempfile.mkdtemp
    - contextlib.ExitStack
    - <builtin>.len
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._create
    - os.mkdir
    - changes.items
    - pip._internal.operations.build.build_tracker.BuildTracker.__init__
    - pip._internal.operations.build.build_tracker.update_env_context_manager
    - pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names
    - os.path.split
    - <builtin>.range
    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: ctx.enter_context
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - root
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 67
    functionName: pip._internal.operations.build.build_tracker.BuildTracker.__init__
    functionSourceFile: pip._internal.operations.build.build_tracker
    functionUses: 5
    functionsReached:
    - logger.debug
    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: 72
    functionName: pip._internal.operations.build.build_tracker.BuildTracker.__enter__
    functionSourceFile: pip._internal.operations.build.build_tracker
    functionUses: 0
    functionsReached:
    - logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 76
    functionName: pip._internal.operations.build.build_tracker.BuildTracker.__exit__
    functionSourceFile: pip._internal.operations.build.build_tracker
    functionUses: 0
    functionsReached:
    - pip._internal.operations.build.build_tracker.BuildTracker.cleanup
    - pip._internal.operations.build.build_tracker.BuildTracker.remove
    - logger.debug
    - hashlib.sha224
    - key.encode
    - os.path.join
    - os.unlink
    - pip._internal.operations.build.build_tracker.BuildTracker._entry_path
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 124
    functionName: pip._internal.operations.build.build_tracker.BuildTracker.cleanup
    functionSourceFile: pip._internal.operations.build.build_tracker
    functionUses: 1
    functionsReached:
    - pip._internal.operations.build.build_tracker.BuildTracker.remove
    - logger.debug
    - hashlib.sha224
    - key.encode
    - os.path.join
    - os.unlink
    - pip._internal.operations.build.build_tracker.BuildTracker._entry_path
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: pip._internal.operations.build.build_tracker.BuildTracker._entry_path
    functionSourceFile: pip._internal.operations.build.build_tracker
    functionUses: 5
    functionsReached:
    - hashlib.sha224
    - key.encode
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - req
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 88
    functionName: pip._internal.operations.build.build_tracker.BuildTracker.add
    functionSourceFile: pip._internal.operations.build.build_tracker
    functionUses: 1
    functionsReached:
    - <builtin>.str
    - logger.debug
    - <builtin>.open
    - hashlib.sha224
    - fp.write
    - key.encode
    - os.path.join
    - fp.read
    - pip._internal.operations.build.build_tracker.BuildTracker._entry_path
    linkageType: pythonLinkage
    raised:
    - LookupError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - req
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 115
    functionName: pip._internal.operations.build.build_tracker.BuildTracker.remove
    functionSourceFile: pip._internal.operations.build.build_tracker
    functionUses: 3
    functionsReached:
    - logger.debug
    - hashlib.sha224
    - key.encode
    - os.path.join
    - os.unlink
    - pip._internal.operations.build.build_tracker.BuildTracker._entry_path
    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: pip._internal.operations.build.build_tracker.BuildTracker
    functionSourceFile: pip._internal.operations.build.build_tracker
    functionUses: 0
    functionsReached:
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - req
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 131
    functionName: pip._internal.operations.build.build_tracker.BuildTracker.track
    functionSourceFile: pip._internal.operations.build.build_tracker
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - pip._internal.operations.build.build_tracker.BuildTracker.remove
    - logger.debug
    - <builtin>.open
    - fp.write
    - pip._internal.operations.build.build_tracker.BuildTracker.add
    - hashlib.sha224
    - key.encode
    - os.path.join
    - fp.read
    - os.unlink
    - pip._internal.operations.build.build_tracker.BuildTracker._entry_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.resolution.legacy.resolver
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e9534040>
    argNames:
    - dist
    - version_info
    - ignore_requires_python
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 58
    functionName: pip._internal.resolution.legacy.resolver._check_dist_requires_python
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - logger.debug
    - <builtin>.frozenset
    - parsed.add
    - pip._internal.utils.packaging.check_requires_python
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - s.strip
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - <builtin>.map
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - specifiers.split
    - pip._vendor.packaging.version._legacy_cmpkey
    - logger.warning
    linkageType: pythonLinkage
    raised:
    - NoneMetadataError
    - UnsupportedPythonVersion
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3fd3d0>
    argNames:
    - self
    - preparer
    - finder
    - wheel_cache
    - make_install_req
    - use_user_site
    - ignore_dependencies
    - ignore_installed
    - ignore_requires_python
    - force_reinstall
    - upgrade_strategy
    - py_version_info
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 120
    functionName: pip._internal.resolution.legacy.resolver.Resolver.__init__
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - collections.defaultdict
    - pip._internal.utils.misc.normalize_version_info
    - <builtin>.len
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - root_reqs
    - check_supported_wheels
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 158
    functionName: pip._internal.resolution.legacy.resolver.Resolver.resolve
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 0
    functionsReached:
    - link.is_existing_dir
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.resolution.legacy.resolver.Resolver._is_upgrade_allowed
    - <builtin>.str
    - itertools.chain
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - pip._internal.resolution.legacy.resolver.Resolver._add_requirement_to_set
    - <builtin>.tuple
    - req.check_if_exists
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.utils.logging.indent_log
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - pip._internal.resolution.legacy.resolver._check_dist_requires_python
    - result.extend
    - pip._internal.req.req_set.RequirementSet.get_requirement
    - subprocess.run
    - itertools.chain.match_markers
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - collections.OrderedDict
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - abi.lower
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - req_to_install.check_if_exists
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.req.req_set.RequirementSet.__init__
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - dist.iter_provided_extras
    - <builtin>.super
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - dist.iter_dependencies
    - vcs_backend.get_revision
    - abis.insert
    - output.splitlines
    - pip._internal.utils.logging.get_indentation
    - more_reqs.extend
    - struct.calcsize
    - match.group
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.req_set.RequirementSet.add_named_requirement
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._internal.utils.packaging.check_requires_python
    - pip._vendor.packaging.tags._normalize_string
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - version.lower
    - part.zfill
    - pip._internal.exceptions.HashErrors.append
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.resolution.legacy.resolver.Resolver._resolve_one.add_req
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - parts.pop
    - discovered_reqs.extend
    - sysconfig.get_platform
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - pip._internal.resolution.legacy.resolver.Resolver._resolve_one
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - pip._internal.resolution.legacy.resolver.Resolver._get_dist_for
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - vcs_backend.get_url_rev_and_auth
    - <builtin>.getattr
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - format_str.format
    - logger.debug
    - <builtin>.frozenset
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._internal.resolution.legacy.resolver.Resolver._check_skip_installed
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - requirement_set.has_requirement
    - pip._internal.req.req_set.RequirementSet.add_unnamed_requirement
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._internal.resolution.legacy.resolver.Resolver._populate_link
    - pip._vendor.packaging.tags._get_config_var
    - pip._internal.resolution.legacy.resolver.Resolver._set_req_to_reinstall
    - platform.lower
    - pip._internal.resolution.legacy.resolver.Resolver._find_requirement_link
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.exceptions.HashErrors.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.utils.deprecation.deprecated
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - <builtin>.reversed
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - version_str.decode
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.req.req_install.check_invalid_constraint_type
    - logger.info
    - pip._internal.models.direct_url.VcsInfo.__init__
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 5
    IfCount: 9
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b893d0>
    - <ast.Constant object at 0x7f30d6b89370>
    argNames:
    - self
    - requirement_set
    - install_req
    - parent_req_name
    - extras_requested
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 195
    functionName: pip._internal.resolution.legacy.resolver.Resolver._add_requirement_to_set
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 3
    functionsReached:
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - os.confstr
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - pip._internal.req.req_set.RequirementSet.get_requirement
    - subprocess.run
    - itertools.chain.match_markers
    - _osx_arch_pat.match
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - abi.lower
    - pip._vendor.packaging.tags.compatible_tags
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - seen.update
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - warnings.warn
    - f.read
    - pip._internal.req.req_set.RequirementSet.add_named_requirement
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.req.req_set.RequirementSet.add_unnamed_requirement
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - logger.info
    - abis.append
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - requirement_set
    - req_to_install
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 489
    functionName: pip._internal.resolution.legacy.resolver.Resolver._resolve_one
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 1
    functionsReached:
    - link.is_existing_dir
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - pip._vendor.packaging.tags._version_nodot
    - parsed.add
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._internal.resolution.legacy.resolver.Resolver._is_upgrade_allowed
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - pip._internal.resolution.legacy.resolver.Resolver._add_requirement_to_set
    - <builtin>.tuple
    - req.check_if_exists
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.utils.logging.indent_log
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - pip._internal.resolution.legacy.resolver._check_dist_requires_python
    - result.extend
    - pip._internal.req.req_set.RequirementSet.get_requirement
    - subprocess.run
    - itertools.chain.match_markers
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - abi.lower
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - stack.enter_context
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - req_to_install.check_if_exists
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - dist.iter_provided_extras
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - arch.startswith
    - <builtin>.super
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - dist.iter_dependencies
    - vcs_backend.get_revision
    - abis.insert
    - output.splitlines
    - pip._internal.utils.logging.get_indentation
    - more_reqs.extend
    - struct.calcsize
    - match.group
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.req_set.RequirementSet.add_named_requirement
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._internal.utils.packaging.check_requires_python
    - pip._vendor.packaging.tags._normalize_string
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - version.lower
    - part.zfill
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.resolution.legacy.resolver.Resolver._resolve_one.add_req
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - typing.cast
    - platform.system
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - parts.pop
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - pip._internal.resolution.legacy.resolver.Resolver._get_dist_for
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - vcs_backend.get_url_rev_and_auth
    - specifiers.split
    - <builtin>.getattr
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - logger.debug
    - <builtin>.frozenset
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._internal.resolution.legacy.resolver.Resolver._check_skip_installed
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - requirement_set.has_requirement
    - pip._internal.req.req_set.RequirementSet.add_unnamed_requirement
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._internal.resolution.legacy.resolver.Resolver._populate_link
    - pip._internal.resolution.legacy.resolver.Resolver._set_req_to_reinstall
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.resolution.legacy.resolver.Resolver._find_requirement_link
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - logger.info
    - pip._internal.models.direct_url.VcsInfo.__init__
    - abis.append
    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: discovered_reqs.extend
    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: itertools.chain.match_markers
    functionSourceFile: itertools
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 311
    functionName: pip._internal.resolution.legacy.resolver.Resolver._is_upgrade_allowed
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 320
    functionName: pip._internal.resolution.legacy.resolver.Resolver._set_req_to_reinstall
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req_to_install
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 330
    functionName: pip._internal.resolution.legacy.resolver.Resolver._check_skip_installed
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 3
    functionsReached:
    - req_to_install.check_if_exists
    - pip._internal.resolution.legacy.resolver.Resolver._is_upgrade_allowed
    - pip._internal.resolution.legacy.resolver.Resolver._set_req_to_reinstall
    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_to_install.check_if_exists
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 384
    functionName: pip._internal.resolution.legacy.resolver.Resolver._find_requirement_link
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 4
    functionsReached:
    - pip._internal.resolution.legacy.resolver.Resolver._is_upgrade_allowed
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 406
    functionName: pip._internal.resolution.legacy.resolver.Resolver._populate_link
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 3
    functionsReached:
    - link.is_existing_dir
    - formats.append
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.resolution.legacy.resolver.Resolver._is_upgrade_allowed
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - abi.lower
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - pip._internal.models.direct_url.DirectUrl.__init__
    - seen.update
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - vcs_backend.get_revision
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - warnings.warn
    - f.read
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - vcs_backend.get_url_rev_and_auth
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - pip._internal.resolution.legacy.resolver.Resolver._find_requirement_link
    - platform.lower
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - pip._internal.models.direct_url.VcsInfo.__init__
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 443
    functionName: pip._internal.resolution.legacy.resolver.Resolver._get_dist_for
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 2
    functionsReached:
    - link.is_existing_dir
    - formats.append
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - pip._internal.resolution.legacy.resolver.Resolver._is_upgrade_allowed
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - req.check_if_exists
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - abi.lower
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - req_to_install.check_if_exists
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - pip._internal.models.direct_url.DirectUrl.__init__
    - seen.update
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - vcs_backend.get_revision
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - warnings.warn
    - f.read
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - vcs_backend.get_url_rev_and_auth
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._internal.resolution.legacy.resolver.Resolver._check_skip_installed
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._internal.resolution.legacy.resolver.Resolver._populate_link
    - pip._internal.resolution.legacy.resolver.Resolver._set_req_to_reinstall
    - pip._vendor.packaging.tags._get_config_var
    - pip._internal.resolution.legacy.resolver.Resolver._find_requirement_link
    - platform.lower
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - logger.info
    - pip._internal.models.direct_url.VcsInfo.__init__
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - subreq
    - extras_requested
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 518
    functionName: pip._internal.resolution.legacy.resolver.Resolver._resolve_one.add_req
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 2
    functionsReached:
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - pip._internal.resolution.legacy.resolver.Resolver._add_requirement_to_set
    - <builtin>.tuple
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - os.confstr
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - pip._internal.req.req_set.RequirementSet.get_requirement
    - subprocess.run
    - itertools.chain.match_markers
    - _osx_arch_pat.match
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - abi.lower
    - pip._vendor.packaging.tags.compatible_tags
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - seen.update
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - abis.insert
    - output.splitlines
    - more_reqs.extend
    - struct.calcsize
    - warnings.warn
    - f.read
    - pip._internal.req.req_set.RequirementSet.add_named_requirement
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.req.req_set.RequirementSet.add_unnamed_requirement
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - logger.info
    - abis.append
    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: more_reqs.extend
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: requirement_set.has_requirement
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dist.iter_provided_extras
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dist.iter_dependencies
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req_set
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 571
    functionName: pip._internal.resolution.legacy.resolver.Resolver.get_installation_order
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 0
    functionsReached:
    - ordered_reqs.add
    - req_set.requirements.values
    - <builtin>.set
    - order.append
    - pip._internal.resolution.legacy.resolver.Resolver.get_installation_order.schedule
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - req
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 586
    functionName: pip._internal.resolution.legacy.resolver.Resolver.get_installation_order.schedule
    functionSourceFile: pip._internal.resolution.legacy.resolver
    functionUses: 1
    functionsReached:
    - pip._internal.resolution.legacy.resolver.Resolver.get_installation_order.schedule
    - order.append
    - ordered_reqs.add
    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: ordered_reqs.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: order.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req_set.requirements.values
    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: pip._internal.resolution.base
    functionSourceFile: pip._internal.resolution.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - root_reqs
    - check_supported_wheels
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 12
    functionName: pip._internal.resolution.base.BaseResolver.resolve
    functionSourceFile: pip._internal.resolution.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req_set
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 17
    functionName: pip._internal.resolution.base.BaseResolver.get_installation_order
    functionSourceFile: pip._internal.resolution.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.req.constructors
    functionSourceFile: pip._internal.req.constructors
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - Specifier._operators.keys
    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: Specifier._operators.keys
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: pip._internal.req.constructors._strip_extras
    functionSourceFile: pip._internal.req.constructors
    functionUses: 34
    functionsReached:
    - m.group
    - re.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - extras
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 55
    functionName: pip._internal.req.constructors.convert_extras
    functionSourceFile: pip._internal.req.constructors
    functionUses: 29
    functionsReached:
    - <builtin>.super
    - req.extras.asList
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - urllib.parse.urlunparse
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.packaging.get_requirement
    - extras.lower
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.set
    - <builtin>.frozenset
    - specifiers.split
    - parsed.add
    - warnings.warn
    - s.strip
    - urllib.parse.urlparse
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: extras.lower
    functionSourceFile: <builtin>
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - req
    - new_extras
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 61
    functionName: pip._internal.req.constructors._set_requirement_extras
    functionSourceFile: pip._internal.req.constructors
    functionUses: 9
    functionsReached:
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - <builtin>.str
    - <builtin>.set
    - s.strip
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - urllib.parse.urlunparse
    - <builtin>.sorted
    - re.fullmatch
    - req.extras.asList
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - warnings.warn
    - specifiers.split
    - urllib.parse.urlparse
    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.fullmatch
    functionSourceFile: re
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - editable_req
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 86
    functionName: pip._internal.req.constructors.parse_editable
    functionSourceFile: pip._internal.req.constructors
    functionUses: 24
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - format_str.format
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - part.startswith
    - pip._vendor.packaging.version.parse
    - re.match
    - version.lower
    - itertools.dropwhile
    - match.groups
    - part.zfill
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - _legacy_version_component_re.split
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - <builtin>.str
    - url.lower
    - letter.lower
    - extras.lower
    - <builtin>.set
    - m.group
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.tuple
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - s.strip
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.models.link.Link._egg_fragment
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.isdir
    - os.path.abspath
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - req.extras.asList
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - _legacy_version_replacement_map.get
    - warnings.warn
    - specifiers.split
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised:
    - InstallationError
    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_no_extras.lower
    functionSourceFile: <builtin>
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 141
    functionName: pip._internal.req.constructors.check_first_requirement_in_file
    functionSourceFile: pip._internal.req.constructors
    functionUses: 31
    functionsReached:
    - line.startswith
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - line.strip
    - <builtin>.set
    - line.endswith
    - s.strip
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - urllib.parse.urlunparse
    - <builtin>.next
    - line.find
    - req.extras.asList
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - warnings.warn
    - <builtin>.open
    - specifiers.split
    - urllib.parse.urlparse
    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.find
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - req
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 169
    functionName: pip._internal.req.constructors.deduce_helpful_msg
    functionSourceFile: pip._internal.req.constructors
    functionUses: 30
    functionsReached:
    - line.startswith
    - pip._vendor.packaging.requirements.Requirement.__init__
    - logger.debug
    - <builtin>.frozenset
    - parsed.add
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - line.strip
    - <builtin>.set
    - line.endswith
    - s.strip
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - urllib.parse.urlunparse
    - <builtin>.next
    - line.find
    - req.extras.asList
    - os.path.exists
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - warnings.warn
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - requirement
    - link
    - markers
    - extras
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 195
    functionName: pip._internal.req.constructors.RequirementParts.__init__
    functionSourceFile: pip._internal.req.constructors
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - editable_req
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 208
    functionName: pip._internal.req.constructors.parse_req_from_editable
    functionSourceFile: pip._internal.req.constructors
    functionUses: 23
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - format_str.format
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - part.startswith
    - pip._internal.req.constructors.parse_editable
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - re.match
    - part.zfill
    - match.groups
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - _legacy_version_component_re.split
    - <builtin>.str
    - url.lower
    - letter.lower
    - extras.lower
    - <builtin>.set
    - m.group
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.tuple
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - s.strip
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - url_no_extras.lower
    - pip._internal.models.link.Link._egg_fragment
    - urllib.parse.urlunparse
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.isdir
    - os.path.abspath
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - req.extras.asList
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - _legacy_version_replacement_map.get
    - warnings.warn
    - specifiers.split
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    - pip._internal.req.constructors.RequirementParts.__init__
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 259
    functionName: pip._internal.req.constructors._looks_like_path
    functionSourceFile: pip._internal.req.constructors
    functionUses: 30
    functionsReached:
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 278
    functionName: pip._internal.req.constructors._get_url_from_path
    functionSourceFile: pip._internal.req.constructors
    functionUses: 29
    functionsReached:
    - urllib.request.pathname2url
    - base.lower
    - pip._internal.utils.filetypes.is_archive_file
    - name.startswith
    - name.split
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.urls.path_to_url
    - pip._internal.utils.misc.splitext
    - posixpath.splitext
    - urllib.parse.urljoin
    - os.path.isdir
    - os.path.join
    - pip._internal.utils.misc.is_installable_dir
    - os.path.abspath
    - os.path.normpath
    - pip._internal.req.constructors._looks_like_path
    - logger.warning
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 0
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - name
    - line_source
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 312
    functionName: pip._internal.req.constructors.parse_req_from_line
    functionSourceFile: pip._internal.req.constructors
    functionUses: 28
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - match.groups
    - itertools.dropwhile
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - <builtin>.tuple
    - s.strip
    - <builtin>.hash
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.path.normpath
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.urljoin
    - abi.lower
    - pip._internal.req.constructors._looks_like_path
    - urllib.parse.urlparse
    - logger.warning
    - cls._hash_url_fragment_re.search
    - pip._internal.req.constructors.deduce_helpful_msg
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - line.strip
    - extras.lower
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - os.path.join
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.packaging.version._parse_version_parts
    - part.lower
    - <builtin>.super
    - urllib.parse.urlunparse
    - os.path.isdir
    - os.path.abspath
    - name.startswith
    - pip._vendor.packaging.markers.Marker.__init__
    - os.path.exists
    - match.group
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - <builtin>.isinstance
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - version.lower
    - part.zfill
    - name.split
    - <builtin>.list
    - name.strip
    - <builtin>.any
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.utils.misc.is_installable_dir
    - spec_str.endswith
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - pip._internal.utils.urls.get_url_scheme
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - logger.debug
    - <builtin>.frozenset
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - url.split
    - letter.lower
    - <builtin>.set
    - m.group
    - line.endswith
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    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: markers_as_string.strip
    functionSourceFile: <builtin>
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 360
    functionName: pip._internal.req.constructors.parse_req_from_line.with_source
    functionSourceFile: pip._internal.req.constructors
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - req_as_string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 365
    functionName: pip._internal.req.constructors.parse_req_from_line._parse_req_string
    functionSourceFile: pip._internal.req.constructors
    functionUses: 29
    functionsReached:
    - line.startswith
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._vendor.packaging.requirements.Requirement.__init__
    - logger.debug
    - <builtin>.frozenset
    - parsed.add
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - <builtin>.str
    - line.strip
    - <builtin>.set
    - line.endswith
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - s.strip
    - <builtin>.super
    - <builtin>.any
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - urllib.parse.urlunparse
    - pip._internal.utils.packaging.get_requirement
    - <builtin>.next
    - line.find
    - spec_str.endswith
    - req.extras.asList
    - os.path.exists
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - warnings.warn
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised:
    - InstallationError
    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: spec_str.endswith
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30ee02f940>
    - <ast.Constant object at 0x7f30ee02f910>
    - <ast.Constant object at 0x7f30ee02f8e0>
    - <ast.Constant object at 0x7f30ee02f8b0>
    argNames:
    - req_string
    - comes_from
    - isolated
    - use_pep517
    - user_supplied
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 439
    functionName: pip._internal.req.constructors.install_req_from_req_string
    functionSourceFile: pip._internal.req.constructors
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - format_str.format
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - itertools.dropwhile
    - version.lower
    - part.zfill
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - _legacy_version_component_re.split
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - <builtin>.str
    - letter.lower
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - s.strip
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.models.link.Link._egg_fragment
    - urllib.parse.urlunparse
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.abspath
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - req.extras.asList
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - part.isdigit
    - _legacy_version_replacement_map.get
    - warnings.warn
    - specifiers.split
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    - logger.warning
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - link
    - ireq
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 517
    functionName: pip._internal.req.constructors.install_req_from_link_and_ireq
    functionSourceFile: pip._internal.req.constructors
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - format_str.format
    - pip._internal.utils.urls.path_to_url
    - link_hash.as_dict
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - <builtin>.str
    - letter.lower
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.abspath
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - match.group
    - part.isdigit
    - _legacy_version_replacement_map.get
    - warnings.warn
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - logger.warning
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - ireq
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 535
    functionName: pip._internal.req.constructors.install_req_drop_extras
    functionSourceFile: pip._internal.req.constructors
    functionUses: 7
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - format_str.format
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - itertools.dropwhile
    - version.lower
    - part.zfill
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - _legacy_version_component_re.split
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - <builtin>.str
    - pip._internal.req.constructors._set_requirement_extras
    - letter.lower
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - s.strip
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.models.link.Link._egg_fragment
    - urllib.parse.urlunparse
    - <builtin>.sorted
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.abspath
    - pip._vendor.packaging.version._parse_letter_version
    - parts.pop
    - re.fullmatch
    - req.extras.asList
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - part.isdigit
    - _legacy_version_replacement_map.get
    - warnings.warn
    - specifiers.split
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    - logger.warning
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - ireq
    - extras
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 561
    functionName: pip._internal.req.constructors.install_req_extend_extras
    functionSourceFile: pip._internal.req.constructors
    functionUses: 1
    functionsReached:
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - <builtin>.str
    - pip._internal.req.constructors._set_requirement_extras
    - copy.copy
    - <builtin>.set
    - s.strip
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - urllib.parse.urlunparse
    - <builtin>.sorted
    - re.fullmatch
    - req.extras.asList
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - warnings.warn
    - specifiers.split
    - urllib.parse.urlparse
    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: pip._internal.resolution.resolvelib.resolver
    functionSourceFile: pip._internal.resolution.resolvelib.resolver
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4ab71f0>
    argNames:
    - self
    - preparer
    - finder
    - wheel_cache
    - make_install_req
    - use_user_site
    - ignore_dependencies
    - ignore_installed
    - ignore_requires_python
    - force_reinstall
    - upgrade_strategy
    - py_version_info
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 41
    functionName: pip._internal.resolution.resolvelib.resolver.Resolver.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.resolver
    functionUses: 0
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._internal.utils.misc.normalize_version_info
    - pip._internal.metadata._should_use_importlib_metadata
    - itertools.dropwhile
    - env.iter_installed_distributions
    - <builtin>.str
    - pip._internal.metadata.get_default_environment
    - pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate.__init__
    - letter.lower
    - <builtin>.tuple
    - pip._internal.resolution.resolvelib.factory.Factory.__init__
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._internal.metadata.select_backend
    - <builtin>.len
    - pip._vendor.packaging.version._parse_local_version
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    - <builtin>.getattr
    - contextlib.suppress
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f30d78e71f0>
    argNames:
    - self
    - finder
    - preparer
    - make_install_req
    - wheel_cache
    - use_user_site
    - force_reinstall
    - ignore_installed
    - ignore_requires_python
    - py_version_info
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 93
    functionName: pip._internal.resolution.resolvelib.factory.Factory.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 1
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._internal.utils.misc.normalize_version_info
    - pip._internal.metadata._should_use_importlib_metadata
    - itertools.dropwhile
    - env.iter_installed_distributions
    - <builtin>.str
    - pip._internal.metadata.get_default_environment
    - pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate.__init__
    - letter.lower
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._internal.metadata.select_backend
    - <builtin>.len
    - pip._vendor.packaging.version._parse_local_version
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    - <builtin>.getattr
    - contextlib.suppress
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 5
    IfCount: 10
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - root_reqs
    - check_supported_wheels
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 73
    functionName: pip._internal.resolution.resolvelib.resolver.Resolver.resolve
    functionSourceFile: pip._internal.resolution.resolvelib.resolver
    functionUses: 0
    functionsReached:
    - pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.__init__
    - link.is_existing_dir
    - typing.NamedTuple.requirements.extend
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - typing.cast.parent.format_for_error
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - candidate.get_install_requirement
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.models.direct_url.DirInfo.__init__
    - cause.requirement.is_satisfied_by
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - supported.extend
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.resolution.resolvelib.factory.Factory._fail_if_link_is_unsupported_wheel
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - req.format_for_error
    - <builtin>.str
    - base.lower
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - pip._internal.resolution.resolvelib.factory.Factory._make_requirements_from_install_req
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - subprocess.run
    - pip._internal.req.req_set.RequirementSet.get_requirement
    - result.extend
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - collections.OrderedDict
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - pip._vendor.packaging.tags.generic_tags
    - abi.lower
    - stack.enter_context
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__
    - pip._vendor.packaging.tags.compatible_tags
    - pip._vendor.packaging.tags.mac_platforms
    - urllib.parse.urlparse
    - extras.difference
    - pip._internal.req.constructors._looks_like_path
    - <builtin>.hasattr
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - logger.warning
    - pip._internal.req.constructors.deduce_helpful_msg
    - f.seek
    - formats.extend
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - pip._internal.resolution.resolvelib.reporter.PipReporter.__init__
    - pip._internal.req.constructors.install_req_from_line
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - pip._internal.resolution.resolvelib.base.Constraint.__init__
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.enumerate
    - extras.lower
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - os.path.join
    - pip._internal.req.req_set.RequirementSet.__init__
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version._parse_version_parts
    - part.lower
    - seen.update
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - url_no_extras.lower
    - result.mapping.values
    - urllib.parse.urlunparse
    - <builtin>.map
    - triggers.add
    - pip._vendor.packaging._musllinux._parse_musl_version
    - os.path.isdir
    - versions_set.add
    - vcs_backend.get_revision
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - relevant_constraints.add
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - struct.calcsize
    - name.startswith
    - match.group
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._internal.req.constructors.install_req_drop_extras
    - os.path.exists
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.req_set.RequirementSet.add_named_requirement
    - pip._internal.req.constructors.RequirementParts.__init__
    - pip._vendor.packaging._musllinux._read_unpacked
    - glibc_max_list.append
    - <builtin>.range
    - pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.__init__
    - line.startswith
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.resolution.resolvelib.factory.Factory._make_base_candidate_from_link
    - pip._internal.resolution.resolvelib.factory.Factory.collect_root_requirements
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - yanked_versions_set.add
    - pip._internal.req.constructors.parse_req_from_editable
    - pip._internal.req.constructors.install_req_extend_extras
    - pip._internal.resolution.resolvelib.factory.Factory.get_dist_to_uninstall
    - pip._vendor.packaging.requirements.Requirement.__init__
    - link_hash.as_dict
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._internal.resolution.resolvelib.provider.PipProvider.__init__
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - part.zfill
    - collections.defaultdict
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    - name.split
    - ireq.hashes
    - url.lower
    - pip._internal.resolution.resolvelib.factory.Factory._report_single_requirement_conflict
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - name.strip
    - pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    - <builtin>.any
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.packaging.get_requirement
    - <builtin>.id
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._internal.resolution.resolvelib.requirements.SpecifierWithoutExtrasRequirement.__init__
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - spec_str.endswith
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - parts.pop
    - version_str.split
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - <builtin>.int
    - sysconfig.get_platform
    - urllib.parse.urlsplit
    - part.isdigit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - vcs_backend.get_url_rev_and_auth
    - <builtin>.getattr
    - pip._internal.req.constructors.check_first_requirement_in_file
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - contextlib.suppress
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - logger.critical
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._internal.resolution.resolvelib.factory.Factory.get_installation_error
    - typing.NamedTuple.requirements.sort
    - pip._vendor.packaging.version.parse
    - re.match
    - pip._vendor.packaging.tags._abi3_applies
    - parent.get_install_requirement
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.req.constructors._set_requirement_extras
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - pip._internal.resolution.resolvelib.factory.Factory.get_installation_error.describe_trigger
    - letter.lower
    - url.split
    - arch.partition
    - copy.copy
    - <builtin>.set
    - line.endswith
    - m.group
    - pip._internal.req.constructors.install_req_from_editable
    - linux.replace
    - pip._vendor.resolvelib.providers.AbstractResolver.__init__
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.__init__
    - ireq.match_markers
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - typing.NamedTuple.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - pip._internal.resolution.resolvelib.factory.Factory.get_installation_error.text_join
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._internal.utils.compatibility_tags.get_supported
    - line.find
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - re.fullmatch
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - <builtin>.reversed
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.resolution.resolvelib.base.Constraint.from_ireq
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - version_str.decode
    - logger.info
    - pip._internal.req.req_install.check_invalid_constraint_type
    - pip._internal.resolution.resolvelib.factory.Factory._report_requires_python_error
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - pip._internal.utils.virtualenv._running_under_venv
    - abis.append
    - pip._internal.resolution.resolvelib.factory.Factory.make_requirement_from_candidate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - root_ireqs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 515
    functionName: pip._internal.resolution.resolvelib.factory.Factory.collect_root_requirements
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 1
    functionsReached:
    - pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.__init__
    - link.is_existing_dir
    - typing.NamedTuple.requirements.extend
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.resolution.resolvelib.factory.Factory._fail_if_link_is_unsupported_wheel
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - pip._internal.resolution.resolvelib.factory.Factory._make_requirements_from_install_req
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - pip._vendor.packaging.tags.generic_tags
    - extras.difference
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__
    - stack.enter_context
    - urllib.parse.urlparse
    - abi.lower
    - pip._internal.req.constructors._looks_like_path
    - logger.warning
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - <builtin>.hasattr
    - pip._internal.req.constructors.deduce_helpful_msg
    - formats.extend
    - f.seek
    - pip._internal.req.constructors.install_req_from_line
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - pip._internal.resolution.resolvelib.base.Constraint.__init__
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - <builtin>.enumerate
    - extras.lower
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - os.path.join
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.packaging.version._parse_version_parts
    - seen.update
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - os.path.isdir
    - vcs_backend.get_revision
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - struct.calcsize
    - name.startswith
    - match.group
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._internal.req.constructors.install_req_drop_extras
    - os.path.exists
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.__init__
    - line.startswith
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.resolution.resolvelib.factory.Factory._make_base_candidate_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - part.zfill
    - name.split
    - abis.remove
    - ireq.hashes
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    - url.lower
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - name.strip
    - pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    - <builtin>.any
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - <builtin>.id
    - pip._internal.utils.packaging.get_requirement
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._internal.resolution.resolvelib.requirements.SpecifierWithoutExtrasRequirement.__init__
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - spec_str.endswith
    - version_str.split
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - vcs_backend.get_url_rev_and_auth
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - typing.NamedTuple.requirements.sort
    - re.match
    - pip._vendor.packaging.tags._abi3_applies
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.req.constructors._set_requirement_extras
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - url.split
    - letter.lower
    - arch.partition
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.__init__
    - ireq.match_markers
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - typing.NamedTuple.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._internal.utils.compatibility_tags.get_supported
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - re.fullmatch
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - <builtin>.reversed
    - pip._vendor.packaging.tags._cpython_abis
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.resolution.resolvelib.base.Constraint.from_ireq
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - version_str.decode
    - logger.info
    - pip._internal.req.req_install.check_invalid_constraint_type
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - abis.append
    - pip._internal.resolution.resolvelib.factory.Factory.make_requirement_from_candidate
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - factory
    - constraints
    - ignore_dependencies
    - upgrade_strategy
    - user_requested
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 89
    functionName: pip._internal.resolution.resolvelib.provider.PipProvider.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.provider
    functionUses: 1
    functionsReached:
    - collections.defaultdict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 13
    functionName: pip._internal.resolution.resolvelib.reporter.PipReporter.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.reporter
    functionUses: 1
    functionsReached:
    - collections.defaultdict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - provider
    - reporter
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 117
    functionName: pip._vendor.resolvelib.providers.AbstractResolver.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - e
    - constraints
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 712
    functionName: pip._internal.resolution.resolvelib.factory.Factory.get_installation_error
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - logger.critical
    - yanked_versions_set.add
    - typing.cast.parent.format_for_error
    - cause.requirement.is_satisfied_by
    - parent.get_install_requirement
    - req.format_for_error
    - <builtin>.str
    - pip._internal.resolution.resolvelib.factory.Factory.get_installation_error.describe_trigger
    - pip._internal.resolution.resolvelib.factory.Factory._report_single_requirement_conflict
    - <builtin>.set
    - pip._internal.resolution.resolvelib.factory.Factory.get_installation_error.text_join
    - <builtin>.len
    - triggers.add
    - <builtin>.sorted
    - versions_set.add
    - typing.cast
    - relevant_constraints.add
    - logger.info
    - pip._internal.resolution.resolvelib.factory.Factory._report_requires_python_error
    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.mapping.values
    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: pip._internal.resolution.resolvelib.resolver.Resolver.resolve.<lambda1>
    functionSourceFile: pip._internal.resolution.resolvelib.resolver
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: candidate.get_install_requirement
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 610
    functionName: pip._internal.resolution.resolvelib.factory.Factory.get_dist_to_uninstall
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 1
    functionsReached:
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - <builtin>.hasattr
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    linkageType: pythonLinkage
    raised:
    - InstallationError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req_set
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 185
    functionName: pip._internal.resolution.resolvelib.resolver.Resolver.get_installation_order
    functionSourceFile: pip._internal.resolution.resolvelib.resolver
    functionUses: 0
    functionsReached:
    - path.add
    - graph.iter_children
    - graph.remove
    - weights.get
    - functools.partial
    - path.remove
    - <builtin>.len
    - pip._internal.resolution.resolvelib.resolver.get_topological_weights
    - <builtin>.sorted
    - req_set.requirements.keys
    - <builtin>.set
    - req_set.requirements.items
    - pip._internal.resolution.resolvelib.resolver.get_topological_weights.visit
    - <builtin>.max
    - weights.keys
    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_set.requirements.keys
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - graph
    - requirement_keys
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 217
    functionName: pip._internal.resolution.resolvelib.resolver.get_topological_weights
    functionSourceFile: pip._internal.resolution.resolvelib.resolver
    functionUses: 1
    functionsReached:
    - path.add
    - graph.iter_children
    - graph.remove
    - weights.get
    - path.remove
    - <builtin>.len
    - <builtin>.set
    - pip._internal.resolution.resolvelib.resolver.get_topological_weights.visit
    - <builtin>.max
    - weights.keys
    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_set.requirements.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - node
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 248
    functionName: pip._internal.resolution.resolvelib.resolver.get_topological_weights.visit
    functionSourceFile: pip._internal.resolution.resolvelib.resolver
    functionUses: 2
    functionsReached:
    - path.add
    - graph.iter_children
    - weights.get
    - path.remove
    - <builtin>.len
    - <builtin>.max
    - pip._internal.resolution.resolvelib.resolver.get_topological_weights.visit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.add
    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: graph.iter_children
    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: path.remove
    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: weights.get
    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: graph.remove
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: weights.keys
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - item
    - weights
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 306
    functionName: pip._internal.resolution.resolvelib.resolver._req_set_item_sorter
    functionSourceFile: pip._internal.resolution.resolvelib.resolver
    functionUses: 0
    functionsReached:
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    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: pip._vendor.resolvelib.structs
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 9
    functionName: pip._vendor.resolvelib.structs.DirectedGraph.__init__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 3
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 14
    functionName: pip._vendor.resolvelib.structs.DirectedGraph.__iter__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 17
    functionName: pip._vendor.resolvelib.structs.DirectedGraph.__len__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 20
    functionName: pip._vendor.resolvelib.structs.DirectedGraph.__contains__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 23
    functionName: pip._vendor.resolvelib.structs.DirectedGraph.copy
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - pip._vendor.resolvelib.structs.DirectedGraph.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._vendor.resolvelib.structs.DirectedGraph.add
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 2
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 39
    functionName: pip._vendor.resolvelib.structs.DirectedGraph.remove
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - f
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 47
    functionName: pip._vendor.resolvelib.structs.DirectedGraph.connected
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - f
    - t
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 50
    functionName: pip._vendor.resolvelib.structs.DirectedGraph.connect
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    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: 60
    functionName: pip._vendor.resolvelib.structs.DirectedGraph.iter_edges
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 65
    functionName: pip._vendor.resolvelib.structs.DirectedGraph.iter_children
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 68
    functionName: pip._vendor.resolvelib.structs.DirectedGraph.iter_parents
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9933eb0>
    argNames:
    - self
    - mapping
    - accessor
    - appends
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 73
    functionName: pip._vendor.resolvelib.structs.IteratorMapping.__init__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 78
    functionName: pip._vendor.resolvelib.structs.IteratorMapping.__repr__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 85
    functionName: pip._vendor.resolvelib.structs.IteratorMapping.__bool__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 90
    functionName: pip._vendor.resolvelib.structs.IteratorMapping.__contains__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - k
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 93
    functionName: pip._vendor.resolvelib.structs.IteratorMapping.__getitem__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - itertools.chain
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 100
    functionName: pip._vendor.resolvelib.structs.IteratorMapping.__iter__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - itertools.chain
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 104
    functionName: pip._vendor.resolvelib.structs.IteratorMapping.__len__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - factory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 118
    functionName: pip._vendor.resolvelib.structs._FactoryIterableView.__init__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 122
    functionName: pip._vendor.resolvelib.structs._FactoryIterableView.__repr__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.list
    - <builtin>.type
    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: 125
    functionName: pip._vendor.resolvelib.structs._FactoryIterableView.__bool__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 134
    functionName: pip._vendor.resolvelib.structs._FactoryIterableView.__iter__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - itertools.tee
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sequence
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 149
    functionName: pip._vendor.resolvelib.structs._SequenceIterableView.__init__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 152
    functionName: pip._vendor.resolvelib.structs._SequenceIterableView.__repr__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 155
    functionName: pip._vendor.resolvelib.structs._SequenceIterableView.__bool__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 160
    functionName: pip._vendor.resolvelib.structs._SequenceIterableView.__iter__
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - matches
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 164
    functionName: pip._vendor.resolvelib.structs.build_iter_view
    functionSourceFile: pip._vendor.resolvelib.structs
    functionUses: 7
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.resolvelib.structs._FactoryIterableView.__init__
    - <builtin>.callable
    - pip._vendor.resolvelib.structs._SequenceIterableView.__init__
    - <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: pip._vendor.resolvelib.compat.collections_abc
    functionSourceFile: pip._vendor.resolvelib.compat.collections_abc
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.resolvelib.compat
    functionSourceFile: pip._vendor.resolvelib.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.resolvelib
    functionSourceFile: pip._vendor.resolvelib
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.resolvelib.reporters
    functionSourceFile: pip._vendor.resolvelib.reporters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 4
    functionName: pip._vendor.resolvelib.reporters.BaseReporter.starting
    functionSourceFile: pip._vendor.resolvelib.reporters
    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
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 7
    functionName: pip._vendor.resolvelib.reporters.BaseReporter.starting_round
    functionSourceFile: pip._vendor.resolvelib.reporters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - index
    - state
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 13
    functionName: pip._vendor.resolvelib.reporters.BaseReporter.ending_round
    functionSourceFile: pip._vendor.resolvelib.reporters
    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
    - state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 20
    functionName: pip._vendor.resolvelib.reporters.BaseReporter.ending
    functionSourceFile: pip._vendor.resolvelib.reporters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - requirement
    - parent
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 23
    functionName: pip._vendor.resolvelib.reporters.BaseReporter.adding_requirement
    functionSourceFile: pip._vendor.resolvelib.reporters
    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
    - causes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 33
    functionName: pip._vendor.resolvelib.reporters.BaseReporter.resolving_conflicts
    functionSourceFile: pip._vendor.resolvelib.reporters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - criterion
    - candidate
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 39
    functionName: pip._vendor.resolvelib.reporters.BaseReporter.rejecting_candidate
    functionSourceFile: pip._vendor.resolvelib.reporters
    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
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: pip._vendor.resolvelib.reporters.BaseReporter.pinning
    functionSourceFile: pip._vendor.resolvelib.reporters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.resolvelib.providers
    functionSourceFile: pip._vendor.resolvelib.providers
    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
    - requirement_or_candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 4
    functionName: pip._vendor.resolvelib.providers.AbstractProvider.identify
    functionSourceFile: pip._vendor.resolvelib.providers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - identifier
    - resolutions
    - candidates
    - information
    - backtrack_causes
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 12
    functionName: pip._vendor.resolvelib.providers.AbstractProvider.get_preference
    functionSourceFile: pip._vendor.resolvelib.providers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - identifier
    - requirements
    - incompatibilities
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 63
    functionName: pip._vendor.resolvelib.providers.AbstractProvider.find_matches
    functionSourceFile: pip._vendor.resolvelib.providers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - requirement
    - candidate
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 92
    functionName: pip._vendor.resolvelib.providers.AbstractProvider.is_satisfied_by
    functionSourceFile: pip._vendor.resolvelib.providers
    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
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 103
    functionName: pip._vendor.resolvelib.providers.AbstractProvider.get_dependencies
    functionSourceFile: pip._vendor.resolvelib.providers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - requirements
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 121
    functionName: pip._vendor.resolvelib.providers.AbstractResolver.resolve
    functionSourceFile: pip._vendor.resolvelib.providers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.resolvelib.resolvers
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 0
    functionsReached:
    - collections.namedtuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - criterion
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 22
    functionName: pip._vendor.resolvelib.resolvers.RequirementsConflicted.__init__
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 26
    functionName: pip._vendor.resolvelib.resolvers.RequirementsConflicted.__str__
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 0
    functionsReached:
    - pip._vendor.resolvelib.resolvers.Criterion.iter_requirement
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 77
    functionName: pip._vendor.resolvelib.resolvers.Criterion.iter_requirement
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - candidate
    - criterion
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 33
    functionName: pip._vendor.resolvelib.resolvers.InconsistentCandidate.__init__
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 38
    functionName: pip._vendor.resolvelib.resolvers.InconsistentCandidate.__str__
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - candidates
    - information
    - incompatibilities
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 65
    functionName: pip._vendor.resolvelib.resolvers.Criterion.__init__
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 70
    functionName: pip._vendor.resolvelib.resolvers.Criterion.__repr__
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 80
    functionName: pip._vendor.resolvelib.resolvers.Criterion.iter_parent
    functionSourceFile: pip._vendor.resolvelib.resolvers
    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
    - causes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 89
    functionName: pip._vendor.resolvelib.resolvers.ResolutionImpossible.__init__
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - round_count
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 96
    functionName: pip._vendor.resolvelib.resolvers.ResolutionTooDeep.__init__
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - provider
    - reporter
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 112
    functionName: pip._vendor.resolvelib.resolvers.Resolution.__init__
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 118
    functionName: pip._vendor.resolvelib.resolvers.Resolution.state
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 124
    functionName: pip._vendor.resolvelib.resolvers.Resolution._push_new_state
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 3
    functionsReached:
    - base.mapping.copy
    - base.criteria.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base.mapping.copy
    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: base.criteria.copy
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - criteria
    - requirement
    - parent
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 138
    functionName: pip._vendor.resolvelib.resolvers.Resolution._add_to_criteria
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 4
    functionsReached:
    - information.append
    - pip._vendor.resolvelib.structs.IteratorMapping.__init__
    - <builtin>.isinstance
    - pip._vendor.resolvelib.structs._FactoryIterableView.__init__
    - operator.methodcaller
    - operator.attrgetter
    - <builtin>.callable
    - pip._vendor.resolvelib.structs.build_iter_view
    - pip._vendor.resolvelib.resolvers.Criterion.__init__
    - pip._vendor.resolvelib.structs._SequenceIterableView.__init__
    - criteria.get
    - <builtin>.list
    linkageType: pythonLinkage
    raised:
    - RequirementsConflicted
    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: criteria.get
    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: information.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - criteria
    - parents
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 177
    functionName: pip._vendor.resolvelib.resolvers.Resolution._remove_information_from_criteria
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 2
    functionsReached:
    - criteria.items
    - pip._vendor.resolvelib.resolvers.Criterion.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: criteria.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 202
    functionName: pip._vendor.resolvelib.resolvers.Resolution._get_preference
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 0
    functionsReached:
    - pip._vendor.resolvelib.structs.IteratorMapping.__init__
    - operator.attrgetter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - criterion
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 217
    functionName: pip._vendor.resolvelib.resolvers.Resolution._is_current_pin_satisfying
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 2
    functionsReached:
    - <builtin>.all
    - criterion.iter_requirement
    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: criterion.iter_requirement
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 227
    functionName: pip._vendor.resolvelib.resolvers.Resolution._get_updated_criteria
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 3
    functionsReached:
    - pip._vendor.resolvelib.resolvers.Resolution._add_to_criteria
    - information.append
    - pip._vendor.resolvelib.structs.IteratorMapping.__init__
    - <builtin>.isinstance
    - pip._vendor.resolvelib.structs._FactoryIterableView.__init__
    - operator.methodcaller
    - operator.attrgetter
    - <builtin>.callable
    - pip._vendor.resolvelib.structs.build_iter_view
    - pip._vendor.resolvelib.resolvers.Criterion.__init__
    - pip._vendor.resolvelib.structs._SequenceIterableView.__init__
    - criteria.get
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 233
    functionName: pip._vendor.resolvelib.resolvers.Resolution._attempt_to_pin_criterion
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 2
    functionsReached:
    - pip._vendor.resolvelib.resolvers.Resolution._add_to_criteria
    - information.append
    - pip._vendor.resolvelib.structs.IteratorMapping.__init__
    - <builtin>.isinstance
    - pip._vendor.resolvelib.structs._FactoryIterableView.__init__
    - operator.methodcaller
    - criterion.iter_requirement
    - operator.attrgetter
    - <builtin>.callable
    - pip._vendor.resolvelib.structs.build_iter_view
    - <builtin>.all
    - pip._vendor.resolvelib.resolvers.Criterion.__init__
    - <builtin>.list
    - pip._vendor.resolvelib.structs._SequenceIterableView.__init__
    - criteria.get
    - pip._vendor.resolvelib.resolvers.Resolution._get_updated_criteria
    - causes.append
    linkageType: pythonLinkage
    raised:
    - InconsistentCandidate
    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: causes.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - causes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 270
    functionName: pip._vendor.resolvelib.resolvers.Resolution._backjump
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 2
    functionsReached:
    - incompatibilities_from_broken.append
    - <builtin>.isinstance
    - operator.methodcaller
    - operator.attrgetter
    - pip._vendor.resolvelib.structs.IteratorMapping.__init__
    - itertools.chain
    - base.mapping.copy
    - pip._vendor.resolvelib.resolvers.Resolution._push_new_state
    - pip._vendor.resolvelib.resolvers.Criterion.__init__
    - pip._vendor.resolvelib.structs._SequenceIterableView.__init__
    - <builtin>.list
    - broken_state.mapping.popitem
    - base.criteria.copy
    - <builtin>.len
    - current_dependencies.isdisjoint
    - broken_state.criteria.items
    - pip._vendor.resolvelib.structs._FactoryIterableView.__init__
    - incompatibilities.extend
    - <builtin>.callable
    - pip._vendor.resolvelib.resolvers.Resolution._backjump._patch_criteria
    - pip._vendor.resolvelib.structs.build_iter_view
    linkageType: pythonLinkage
    raised:
    - ResolutionImpossible
    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: broken_state.mapping.popitem
    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: current_dependencies.isdisjoint
    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: broken_state.criteria.items
    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: incompatibilities_from_broken.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 337
    functionName: pip._vendor.resolvelib.resolvers.Resolution._backjump._patch_criteria
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 3
    functionsReached:
    - pip._vendor.resolvelib.structs.IteratorMapping.__init__
    - <builtin>.isinstance
    - pip._vendor.resolvelib.structs._FactoryIterableView.__init__
    - operator.methodcaller
    - incompatibilities.extend
    - operator.attrgetter
    - <builtin>.callable
    - pip._vendor.resolvelib.structs.build_iter_view
    - pip._vendor.resolvelib.resolvers.Criterion.__init__
    - pip._vendor.resolvelib.structs._SequenceIterableView.__init__
    - <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: incompatibilities.extend
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 9
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - requirements
    - max_rounds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 381
    functionName: pip._vendor.resolvelib.resolvers.Resolution.resolve
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 1
    functionsReached:
    - information.append
    - pip._vendor.resolvelib.resolvers.Resolution._attempt_to_pin_criterion
    - incompatibilities_from_broken.append
    - <builtin>.isinstance
    - operator.methodcaller
    - pip._vendor.resolvelib.resolvers.Resolution._is_current_pin_satisfying
    - operator.attrgetter
    - pip._vendor.resolvelib.resolvers.Resolution._get_updated_criteria
    - pip._vendor.resolvelib.structs.IteratorMapping.__init__
    - itertools.chain
    - <builtin>.set
    - base.mapping.copy
    - pip._vendor.resolvelib.resolvers.Resolution._push_new_state
    - pip._vendor.resolvelib.resolvers.Criterion.__init__
    - <builtin>.min
    - pip._vendor.resolvelib.structs._SequenceIterableView.__init__
    - <builtin>.list
    - broken_state.mapping.popitem
    - pip._vendor.resolvelib.resolvers.Resolution._add_to_criteria
    - base.criteria.copy
    - <builtin>.len
    - current_dependencies.isdisjoint
    - criterion.iter_requirement
    - criteria.get
    - broken_state.criteria.items
    - pip._vendor.resolvelib.resolvers.Resolution._backjump
    - <builtin>.range
    - pip._vendor.resolvelib.structs._FactoryIterableView.__init__
    - collections.OrderedDict
    - incompatibilities.extend
    - <builtin>.callable
    - pip._vendor.resolvelib.structs.build_iter_view
    - pip._vendor.resolvelib.resolvers.Resolution._backjump._patch_criteria
    - pip._vendor.resolvelib.resolvers.Resolution._remove_information_from_criteria
    - <builtin>.all
    - criteria.items
    - causes.append
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    - ResolutionImpossible
    - ResolutionTooDeep
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - criteria
    - key
    - all_keys
    - connected
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 460
    functionName: pip._vendor.resolvelib.resolvers._has_route_to_root
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 2
    functionsReached:
    - connected.add
    - pip._vendor.resolvelib.resolvers._has_route_to_root
    - <builtin>.id
    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: connected.add
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 482
    functionName: pip._vendor.resolvelib.resolvers._build_result
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 1
    functionsReached:
    - pip._vendor.resolvelib.structs.DirectedGraph.add
    - pip._vendor.resolvelib.resolvers._has_route_to_root
    - criterion.iter_parent
    - state.criteria.items
    - mapping.items
    - connected.add
    - <builtin>.id
    - <builtin>.set
    - pip._vendor.resolvelib.structs.DirectedGraph.__init__
    - pip._vendor.resolvelib.structs.DirectedGraph.connect
    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: mapping.items
    functionSourceFile: <builtin>
    functionUses: 29
    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: state.criteria.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: criterion.iter_parent
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e511f160>
    argNames:
    - self
    - requirements
    - max_rounds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 517
    functionName: pip._vendor.resolvelib.resolvers.Resolver.resolve
    functionSourceFile: pip._vendor.resolvelib.resolvers
    functionUses: 0
    functionsReached:
    - information.append
    - pip._vendor.resolvelib.resolvers.Resolution._attempt_to_pin_criterion
    - incompatibilities_from_broken.append
    - <builtin>.isinstance
    - pip._vendor.resolvelib.structs.DirectedGraph.add
    - criterion.iter_parent
    - state.criteria.items
    - operator.methodcaller
    - mapping.items
    - pip._vendor.resolvelib.resolvers.Resolution._is_current_pin_satisfying
    - operator.attrgetter
    - pip._vendor.resolvelib.resolvers.Resolution._get_updated_criteria
    - pip._vendor.resolvelib.structs.IteratorMapping.__init__
    - pip._vendor.resolvelib.resolvers._has_route_to_root
    - itertools.chain
    - <builtin>.set
    - base.mapping.copy
    - pip._vendor.resolvelib.resolvers.Resolution._push_new_state
    - pip._vendor.resolvelib.resolvers.Criterion.__init__
    - <builtin>.min
    - pip._vendor.resolvelib.structs._SequenceIterableView.__init__
    - <builtin>.list
    - broken_state.mapping.popitem
    - pip._vendor.resolvelib.resolvers._build_result
    - pip._vendor.resolvelib.resolvers.Resolution._add_to_criteria
    - base.criteria.copy
    - <builtin>.len
    - current_dependencies.isdisjoint
    - criterion.iter_requirement
    - pip._vendor.resolvelib.resolvers.Resolution.__init__
    - connected.add
    - <builtin>.id
    - pip._vendor.resolvelib.resolvers.Resolution.resolve
    - pip._vendor.resolvelib.structs.DirectedGraph.__init__
    - criteria.get
    - broken_state.criteria.items
    - causes.append
    - pip._vendor.resolvelib.structs.DirectedGraph.connect
    - pip._vendor.resolvelib.resolvers.Resolution._backjump
    - pip._vendor.resolvelib.structs._FactoryIterableView.__init__
    - collections.OrderedDict
    - incompatibilities.extend
    - <builtin>.callable
    - pip._vendor.resolvelib.structs.build_iter_view
    - pip._vendor.resolvelib.resolvers.Resolution._backjump._patch_criteria
    - pip._vendor.resolvelib.resolvers.Resolution._remove_information_from_criteria
    - <builtin>.all
    - criteria.items
    - <builtin>.range
    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: pip._internal.resolution.resolvelib.reporter
    functionSourceFile: pip._internal.resolution.resolvelib.reporter
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - criterion
    - candidate
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._internal.resolution.resolvelib.reporter.PipReporter.rejecting_candidate
    functionSourceFile: pip._internal.resolution.resolvelib.reporter
    functionUses: 0
    functionsReached:
    - message.format
    - logging.getLogger.debug
    - logging.getLogger.info
    - req.format_for_error
    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: message.format
    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: logging.getLogger.info
    functionSourceFile: logging
    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: req.format_for_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: logging.getLogger.debug
    functionSourceFile: logging
    functionUses: 2
    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: 61
    functionName: pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.starting
    functionSourceFile: pip._internal.resolution.resolvelib.reporter
    functionUses: 0
    functionsReached:
    - logging.getLogger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    functionName: pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.starting_round
    functionSourceFile: pip._internal.resolution.resolvelib.reporter
    functionUses: 0
    functionsReached:
    - logging.getLogger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - index
    - state
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 67
    functionName: pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.ending_round
    functionSourceFile: pip._internal.resolution.resolvelib.reporter
    functionUses: 0
    functionsReached:
    - logging.getLogger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 70
    functionName: pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.ending
    functionSourceFile: pip._internal.resolution.resolvelib.reporter
    functionUses: 0
    functionsReached:
    - logging.getLogger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - requirement
    - parent
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 73
    functionName: pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.adding_requirement
    functionSourceFile: pip._internal.resolution.resolvelib.reporter
    functionUses: 0
    functionsReached:
    - logging.getLogger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - criterion
    - candidate
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.rejecting_candidate
    functionSourceFile: pip._internal.resolution.resolvelib.reporter
    functionUses: 0
    functionsReached:
    - logging.getLogger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.pinning
    functionSourceFile: pip._internal.resolution.resolvelib.reporter
    functionUses: 0
    functionsReached:
    - logging.getLogger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.resolution.resolvelib.provider
    functionSourceFile: pip._internal.resolution.resolvelib.provider
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - mapping
    - identifier
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: pip._internal.resolution.resolvelib.provider._get_with_identifier
    functionSourceFile: pip._internal.resolution.resolvelib.provider
    functionUses: 2
    functionsReached:
    - identifier.partition
    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: identifier.partition
    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: pip._internal.resolution.resolvelib.provider.PipProvider.__init__.<lambda1>
    functionSourceFile: pip._internal.resolution.resolvelib.provider
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - requirement_or_candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 104
    functionName: pip._internal.resolution.resolvelib.provider.PipProvider.identify
    functionSourceFile: pip._internal.resolution.resolvelib.provider
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - identifier
    - resolutions
    - candidates
    - information
    - backtrack_causes
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 107
    functionName: pip._internal.resolution.resolvelib.provider.PipProvider.get_preference
    functionSourceFile: pip._internal.resolution.resolvelib.provider
    functionUses: 0
    functionsReached:
    - pip._internal.resolution.resolvelib.provider.PipProvider.is_backtrack_cause
    - <builtin>.any
    - typing.NamedTuple.user_requested.get
    - <builtin>.bool
    - r.get_candidate_lookup
    - <builtin>.iter
    - <builtin>.zip
    - <builtin>.min
    - <builtin>.next
    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: r.get_candidate_lookup
    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: typing.NamedTuple.user_requested.get
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - identifier
    - backtrack_causes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 247
    functionName: pip._internal.resolution.resolvelib.provider.PipProvider.is_backtrack_cause
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - identifier
    - requirements
    - incompatibilities
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 198
    functionName: pip._internal.resolution.resolvelib.provider.PipProvider.find_matches
    functionSourceFile: pip._internal.resolution.resolvelib.provider
    functionUses: 0
    functionsReached:
    - link.is_existing_dir
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.resolution.resolvelib.factory.Factory._fail_if_link_is_unsupported_wheel
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - hashes.items
    - pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates
    - os.confstr
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - pip._internal.resolution.resolvelib.factory.Factory.find_candidates
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - _osx_arch_pat.match
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - pip._vendor.packaging.tags.generic_tags
    - abi.lower
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__
    - pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates._get_installed_candidate
    - urllib.parse.urlparse
    - pip._internal.req.constructors._looks_like_path
    - logger.warning
    - extras.difference
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.tags._mac_binary_formats
    - <builtin>.hasattr
    - pip._internal.req.constructors.deduce_helpful_msg
    - formats.extend
    - explicit_candidates.update
    - f.seek
    - pip._internal.req.constructors.install_req_from_line
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._internal.resolution.resolvelib.provider._get_with_identifier
    - factory.preparer.prepare_installed_requirement
    - wheel_info.group
    - pip._internal.resolution.resolvelib.base.Constraint.__init__
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - pip._internal.resolution.resolvelib.base.Constraint.empty
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - pip._internal.utils.hashes.Hashes.__init__
    - extras.lower
    - parsed.netloc.rsplit
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.vcs.versioncontrol.is_url
    - req.is_satisfied_by
    - pip._vendor.packaging.version.Version.__init__
    - os.path.join
    - part.lower
    - seen.update
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - stack.enter_context
    - INTERPRETER_SHORT_NAMES.get
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - <builtin>.map
    - req.get_candidate_lookup
    - pip._vendor.packaging._musllinux._parse_musl_version
    - os.path.isdir
    - vcs_backend.get_revision
    - os.path.abspath
    - pip._internal.models.link.links_equivalent
    - abis.insert
    - output.splitlines
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - struct.unpack
    - struct.calcsize
    - name.startswith
    - match.group
    - pip._internal.resolution.resolvelib.factory.Factory._make_candidate_from_dist
    - pip._vendor.packaging.markers.Marker.__init__
    - os.path.exists
    - warnings.warn
    - pip._internal.resolution.resolvelib.factory.Factory._iter_candidates_from_constraints
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__
    - f.read
    - pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__init__
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._vendor.packaging.specifiers.SpecifierSet.contains
    - pip._internal.req.constructors.RequirementParts.__init__
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - line.startswith
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - <builtin>.isinstance
    - pip._internal.resolution.resolvelib.factory.Factory._make_base_candidate_from_link
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - identifier.partition
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - pip._internal.resolution.resolvelib.found_candidates.FoundCandidates.__init__
    - part.zfill
    - name.split
    - abis.remove
    - ireq.hashes
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    - url.lower
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - name.strip
    - pip._internal.resolution.resolvelib.provider.PipProvider.find_matches._eligible_for_upgrade
    - pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    - <builtin>.any
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - parsed._replace
    - pip._internal.resolution.resolvelib.factory.Factory._iter_explicit_candidates_from_base
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.resolution.resolvelib.base.Constraint.is_satisfied_by
    - markers_as_string.strip
    - <builtin>.len
    - pip._internal.utils.packaging.get_requirement
    - <builtin>.id
    - os.path.isfile
    - pip._vendor.packaging._manylinux._is_linux_i686
    - incompatibilities.get
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.resolution.resolvelib.base._match_link
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - platform.system
    - spec_str.endswith
    - version_str.split
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - sysconfig.get_platform
    - <builtin>.int
    - urllib.parse.urlsplit
    - requirements.get
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - vcs_backend.get_url_rev_and_auth
    - <builtin>.all
    - pip._internal.req.constructors.check_first_requirement_in_file
    - ireqs.append
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - contextlib.suppress
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.resolution.resolvelib.candidates._make_install_req_from_dist
    - operator.itemgetter
    - s.contains
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - pip._internal.models.link._clean_link
    - <builtin>.frozenset
    - urllib.parse.parse_qs
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._internal.resolution.resolvelib.candidates.as_base_candidate
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - url.split
    - letter.lower
    - arch.partition
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - typing.NamedTuple.__init__
    - pip._internal.req.constructors.install_req_from_link_and_ireq
    - pip._internal.utils.compatibility_tags._get_python_version
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._internal.utils.compatibility_tags.get_supported
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - logger.info
    - explicit_candidates.add
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - identifier
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 204
    functionName: pip._internal.resolution.resolvelib.provider.PipProvider.find_matches._eligible_for_upgrade
    functionSourceFile: pip._internal.resolution.resolvelib.provider
    functionUses: 1
    functionsReached:
    - pip._internal.resolution.resolvelib.provider._get_with_identifier
    - identifier.partition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 31
    functionName: pip._internal.resolution.resolvelib.base.Constraint.empty
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - hashes.items
    - match.group
    - <builtin>.sorted
    - pip._internal.utils.hashes.Hashes.__init__
    - warnings.warn
    - <builtin>.frozenset
    - <builtin>.set
    - specifiers.split
    - parsed.add
    - s.strip
    - pip._internal.resolution.resolvelib.base.Constraint.__init__
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - identifier
    - requirements
    - incompatibilities
    - constraint
    - prefers_installed
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 387
    functionName: pip._internal.resolution.resolvelib.factory.Factory.find_candidates
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 1
    functionsReached:
    - link.is_existing_dir
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.resolution.resolvelib.factory.Factory._fail_if_link_is_unsupported_wheel
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - pip._vendor.packaging.tags.generic_tags
    - extras.difference
    - pip._vendor.packaging.tags.mac_platforms
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__
    - pip._vendor.packaging.tags.compatible_tags
    - pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates._get_installed_candidate
    - urllib.parse.urlparse
    - abi.lower
    - logger.warning
    - stack.enter_context
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - pip._internal.req.constructors._looks_like_path
    - <builtin>.hasattr
    - f.seek
    - formats.extend
    - explicit_candidates.update
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - factory.preparer.prepare_installed_requirement
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - extras.lower
    - parsed.netloc.rsplit
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - seen.update
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - req.is_satisfied_by
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - part.lower
    - pip._internal.vcs.versioncontrol.is_url
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - <builtin>.map
    - req.get_candidate_lookup
    - pip._vendor.packaging._musllinux._parse_musl_version
    - os.path.isdir
    - vcs_backend.get_revision
    - os.path.abspath
    - pip._internal.models.link.links_equivalent
    - abis.insert
    - output.splitlines
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - struct.calcsize
    - name.startswith
    - match.group
    - pip._internal.resolution.resolvelib.factory.Factory._make_candidate_from_dist
    - pip._vendor.packaging.markers.Marker.__init__
    - os.path.exists
    - warnings.warn
    - pip._internal.resolution.resolvelib.factory.Factory._iter_candidates_from_constraints
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__
    - f.read
    - pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__init__
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._vendor.packaging.specifiers.SpecifierSet.contains
    - pip._internal.req.constructors.RequirementParts.__init__
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - line.startswith
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - <builtin>.isinstance
    - pip._internal.resolution.resolvelib.factory.Factory._make_base_candidate_from_link
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - pip._internal.resolution.resolvelib.found_candidates.FoundCandidates.__init__
    - part.zfill
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    - url.lower
    - ireq.hashes
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - name.split
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - name.strip
    - pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    - <builtin>.any
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - parsed._replace
    - pip._internal.resolution.resolvelib.factory.Factory._iter_explicit_candidates_from_base
    - pip._internal.models.link.Link._egg_fragment
    - pip._internal.resolution.resolvelib.base.Constraint.is_satisfied_by
    - struct.unpack
    - <builtin>.len
    - pip._internal.utils.packaging.get_requirement
    - <builtin>.id
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - incompatibilities.get
    - markers_as_string.strip
    - pip._vendor.packaging._manylinux._is_compatible
    - os.path.isfile
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.resolution.resolvelib.base._match_link
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - typing.cast
    - platform.system
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - spec_str.endswith
    - parts.pop
    - version_str.split
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - requirements.get
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - vcs_backend.get_url_rev_and_auth
    - <builtin>.all
    - pip._internal.req.constructors.check_first_requirement_in_file
    - ireqs.append
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - contextlib.suppress
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.resolution.resolvelib.candidates._make_install_req_from_dist
    - operator.itemgetter
    - s.contains
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - pip._internal.models.link._clean_link
    - <builtin>.frozenset
    - urllib.parse.parse_qs
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - re.match
    - pip._vendor.packaging.tags._abi3_applies
    - _legacy_version_component_re.split
    - pip._internal.resolution.resolvelib.candidates.as_base_candidate
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - url.split
    - arch.partition
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - typing.NamedTuple.__init__
    - pip._internal.req.constructors.install_req_from_link_and_ireq
    - pip._internal.utils.compatibility_tags._get_python_version
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._internal.utils.compatibility_tags.get_supported
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - logger.info
    - explicit_candidates.add
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - requirement
    - candidate
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 239
    functionName: pip._internal.resolution.resolvelib.provider.PipProvider.is_satisfied_by
    functionSourceFile: pip._internal.resolution.resolvelib.provider
    functionUses: 0
    functionsReached:
    - requirement.is_satisfied_by
    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: requirement.is_satisfied_by
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 242
    functionName: pip._internal.resolution.resolvelib.provider.PipProvider.get_dependencies
    functionSourceFile: pip._internal.resolution.resolvelib.provider
    functionUses: 0
    functionsReached:
    - candidate.iter_dependencies
    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: candidate.iter_dependencies
    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: pip._internal.resolution.resolvelib.base
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - project
    - extras
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 15
    functionName: pip._internal.resolution.resolvelib.base.format_name
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 2
    functionsReached:
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - specifier
    - hashes
    - links
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 23
    functionName: pip._internal.resolution.resolvelib.base.Constraint.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - ireq
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._internal.resolution.resolvelib.base.Constraint.from_ireq
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 2
    functionsReached:
    - <builtin>.frozenset
    - pip._internal.resolution.resolvelib.base.Constraint.__init__
    - ireq.hashes
    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: ireq.hashes
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 39
    functionName: pip._internal.resolution.resolvelib.base.Constraint.__bool__
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: pip._internal.resolution.resolvelib.base.Constraint.__and__
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached:
    - pip._internal.resolution.resolvelib.base.Constraint.__init__
    - links.union
    - <builtin>.isinstance
    - other.hashes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other.hashes
    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: links.union
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 52
    functionName: pip._internal.resolution.resolvelib.base.Constraint.is_satisfied_by
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - s.contains
    - pip._internal.models.link._clean_link
    - logger.debug
    - urllib.parse.parse_qs
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parsed.netloc.rsplit
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - parsed._replace
    - typing.NamedTuple.__init__
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.models.link.links_equivalent
    - pip._internal.resolution.resolvelib.base._match_link
    - pip._vendor.packaging.version._parse_letter_version
    - parts.pop
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - <builtin>.all
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._vendor.packaging.specifiers.SpecifierSet.contains
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - link
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 92
    functionName: pip._internal.resolution.resolvelib.base._match_link
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 3
    functionsReached:
    - parsed._replace
    - typing.NamedTuple.__init__
    - pip._internal.models.link._clean_link
    - logger.debug
    - parsed.netloc.rsplit
    - urllib.parse.parse_qs
    - pip._internal.models.link.links_equivalent
    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: 64
    functionName: pip._internal.resolution.resolvelib.base.Requirement.project_name
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 74
    functionName: pip._internal.resolution.resolvelib.base.Requirement.name
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 82
    functionName: pip._internal.resolution.resolvelib.base.Requirement.is_satisfied_by
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 85
    functionName: pip._internal.resolution.resolvelib.base.Requirement.get_candidate_lookup
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 88
    functionName: pip._internal.resolution.resolvelib.base.Requirement.format_for_error
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 100
    functionName: pip._internal.resolution.resolvelib.base.Candidate.project_name
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 110
    functionName: pip._internal.resolution.resolvelib.base.Candidate.name
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 119
    functionName: pip._internal.resolution.resolvelib.base.Candidate.version
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 123
    functionName: pip._internal.resolution.resolvelib.base.Candidate.is_installed
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 127
    functionName: pip._internal.resolution.resolvelib.base.Candidate.is_editable
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 131
    functionName: pip._internal.resolution.resolvelib.base.Candidate.source_link
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - with_requires
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 134
    functionName: pip._internal.resolution.resolvelib.base.Candidate.iter_dependencies
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 137
    functionName: pip._internal.resolution.resolvelib.base.Candidate.get_install_requirement
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 140
    functionName: pip._internal.resolution.resolvelib.base.Candidate.format_for_error
    functionSourceFile: pip._internal.resolution.resolvelib.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: pip._internal.resolution.resolvelib.candidates
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - candidate
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: pip._internal.resolution.resolvelib.candidates.as_base_candidate
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - link
    - template
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 53
    functionName: pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 12
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - match.groups
    - itertools.dropwhile
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - <builtin>.tuple
    - s.strip
    - <builtin>.hash
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.path.normpath
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.urljoin
    - abi.lower
    - pip._internal.req.constructors._looks_like_path
    - urllib.parse.urlparse
    - logger.warning
    - cls._hash_url_fragment_re.search
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - extras.lower
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.super
    - urllib.parse.urlunparse
    - os.path.isdir
    - os.path.abspath
    - name.startswith
    - pip._vendor.packaging.markers.Marker.__init__
    - match.group
    - os.path.exists
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - <builtin>.isinstance
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - version.lower
    - part.zfill
    - name.split
    - <builtin>.list
    - name.strip
    - <builtin>.any
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.utils.misc.is_installable_dir
    - spec_str.endswith
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - pip._internal.utils.urls.get_url_scheme
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - logger.debug
    - <builtin>.frozenset
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - letter.lower
    - url.split
    - <builtin>.set
    - m.group
    - line.endswith
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - pip._internal.req.constructors.parse_req_from_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - link
    - template
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 78
    functionName: pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 12
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors.parse_req_from_editable
    - pip._internal.utils.urls.path_to_url
    - format_str.format
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - part.startswith
    - pip._internal.req.constructors.parse_editable
    - pip._vendor.packaging.version.parse
    - re.match
    - match.groups
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - part.zfill
    - version.lower
    - itertools.dropwhile
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - _legacy_version_component_re.split
    - pip._internal.req.req_install.InstallRequirement.__init__
    - <builtin>.str
    - url.lower
    - letter.lower
    - extras.lower
    - <builtin>.set
    - m.group
    - parts.append
    - <builtin>.tuple
    - pip._internal.req.constructors.install_req_from_editable
    - pip._vendor.packaging.version._parse_version_parts
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.models.link.Link._egg_fragment
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.isdir
    - os.path.abspath
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - req.extras.asList
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - part.isdigit
    - _legacy_version_replacement_map.get
    - warnings.warn
    - specifiers.split
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    - pip._internal.req.constructors.RequirementParts.__init__
    - logger.warning
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - dist
    - template
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 98
    functionName: pip._internal.resolution.resolvelib.candidates._make_install_req_from_dist
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 6
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - match.groups
    - itertools.dropwhile
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - <builtin>.tuple
    - s.strip
    - <builtin>.hash
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.path.normpath
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.urljoin
    - abi.lower
    - pip._internal.req.constructors._looks_like_path
    - urllib.parse.urlparse
    - logger.warning
    - cls._hash_url_fragment_re.search
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - extras.lower
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.super
    - urllib.parse.urlunparse
    - os.path.isdir
    - os.path.abspath
    - name.startswith
    - pip._vendor.packaging.markers.Marker.__init__
    - match.group
    - os.path.exists
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - <builtin>.isinstance
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - version.lower
    - part.zfill
    - name.split
    - <builtin>.list
    - name.strip
    - <builtin>.any
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.utils.misc.is_installable_dir
    - spec_str.endswith
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - pip._internal.utils.urls.get_url_scheme
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - logger.debug
    - <builtin>.frozenset
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - letter.lower
    - url.split
    - <builtin>.set
    - m.group
    - line.endswith
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - pip._internal.req.constructors.parse_req_from_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3fdf70>
    - <ast.Constant object at 0x7f30ce3fdc40>
    argNames:
    - self
    - link
    - source_link
    - ireq
    - factory
    - name
    - version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 141
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - preparer.prepare_linked_requirement
    - pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate._prepare
    - pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate._prepare_distribution
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate._prepare_distribution
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate._prepare_distribution
    - pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate._check_metadata_consistency
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 220
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate._prepare
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 1
    functionsReached:
    - preparer.prepare_linked_requirement
    - pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate._prepare_distribution
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate._prepare_distribution
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate._prepare_distribution
    - pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate._check_metadata_consistency
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 158
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.__str__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 161
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.__repr__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 164
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.__hash__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 167
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.__eq__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - parsed._replace
    - typing.NamedTuple.__init__
    - pip._internal.models.link._clean_link
    - logger.debug
    - parsed.netloc.rsplit
    - urllib.parse.parse_qs
    - pip._internal.models.link.links_equivalent
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 173
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.source_link
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    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: 0
    functionLinenumber: 177
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.project_name
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 184
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.name
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 188
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.version
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 193
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.format_for_error
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 200
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate._prepare_distribution
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 203
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate._check_metadata_consistency
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - MetadataInconsistent
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 324
    functionName: pip._internal.resolution.resolvelib.candidates.EditableCandidate._prepare_distribution
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 299
    functionName: pip._internal.resolution.resolvelib.candidates.LinkCandidate._prepare_distribution
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 2
    functionsReached:
    - preparer.prepare_linked_requirement
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - with_requires
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 237
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.iter_dependencies
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 243
    functionName: pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.get_install_requirement
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b89d30>
    - <ast.Constant object at 0x7f30d6b89520>
    argNames:
    - self
    - link
    - template
    - factory
    - name
    - version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 250
    functionName: pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 11
    functionsReached:
    - link.is_existing_dir
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - pip._vendor.packaging.tags._version_nodot
    - parsed.add
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - pip._vendor.packaging.tags.generic_tags
    - abi.lower
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - stack.enter_context
    - urllib.parse.urlparse
    - pip._internal.req.constructors._looks_like_path
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - pip._internal.req.constructors.deduce_helpful_msg
    - formats.extend
    - pip._internal.req.constructors.install_req_from_line
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - extras.lower
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - seen.update
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version._parse_version_parts
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - urllib.parse.urlunparse
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - os.path.isdir
    - vcs_backend.get_revision
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - name.startswith
    - match.group
    - pip._vendor.packaging.markers.Marker.__init__
    - os.path.exists
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - glibc_max_list.append
    - pip._internal.req.constructors.RequirementParts.__init__
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - line.startswith
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - version.lower
    - part.zfill
    - name.split
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - name.strip
    - pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    - <builtin>.any
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.packaging.get_requirement
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - spec_str.endswith
    - version_str.split
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - vcs_backend.get_url_rev_and_auth
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - logger.debug
    - <builtin>.frozenset
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - url.split
    - arch.partition
    - <builtin>.set
    - m.group
    - line.endswith
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._internal.utils.compatibility_tags.get_supported
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - <builtin>.reversed
    - pip._vendor.packaging.tags._cpython_abis
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - link
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 591
    functionName: pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 12
    functionsReached:
    - formats.append
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - supported.extend
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - abi.lower
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - seen.update
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - warnings.warn
    - f.read
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - abis.append
    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: preparer.prepare_linked_requirement
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f37f3040>
    - <ast.Constant object at 0x7f30f3812fd0>
    argNames:
    - self
    - link
    - template
    - factory
    - name
    - version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 307
    functionName: pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 11
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors.parse_req_from_editable
    - pip._internal.utils.urls.path_to_url
    - format_str.format
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - part.startswith
    - pip._internal.req.constructors.parse_editable
    - pip._vendor.packaging.version.parse
    - re.match
    - match.groups
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - part.zfill
    - version.lower
    - itertools.dropwhile
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - _legacy_version_component_re.split
    - pip._internal.req.req_install.InstallRequirement.__init__
    - <builtin>.str
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    - url.lower
    - letter.lower
    - extras.lower
    - <builtin>.set
    - m.group
    - parts.append
    - <builtin>.tuple
    - pip._internal.req.constructors.install_req_from_editable
    - pip._vendor.packaging.version._parse_version_parts
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.models.link.Link._egg_fragment
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.isdir
    - os.path.abspath
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - req.extras.asList
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - part.isdigit
    - _legacy_version_replacement_map.get
    - warnings.warn
    - specifiers.split
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    - pip._internal.req.constructors.RequirementParts.__init__
    - logger.warning
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dist
    - template
    - factory
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 332
    functionName: pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 5
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - match.groups
    - itertools.dropwhile
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - <builtin>.tuple
    - s.strip
    - <builtin>.hash
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.path.normpath
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.urljoin
    - abi.lower
    - pip._internal.req.constructors._looks_like_path
    - urllib.parse.urlparse
    - logger.warning
    - cls._hash_url_fragment_re.search
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - factory.preparer.prepare_installed_requirement
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - extras.lower
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.packaging.version._parse_version_parts
    - part.lower
    - <builtin>.super
    - urllib.parse.urlunparse
    - os.path.isdir
    - os.path.abspath
    - name.startswith
    - match.group
    - pip._vendor.packaging.markers.Marker.__init__
    - os.path.exists
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - <builtin>.isinstance
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - version.lower
    - part.zfill
    - name.split
    - <builtin>.list
    - name.strip
    - <builtin>.any
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.utils.misc.is_installable_dir
    - spec_str.endswith
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.resolution.resolvelib.candidates._make_install_req_from_dist
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - logger.debug
    - <builtin>.frozenset
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - url.split
    - letter.lower
    - <builtin>.set
    - m.group
    - line.endswith
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - pip._internal.req.constructors.parse_req_from_line
    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: factory.preparer.prepare_installed_requirement
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 350
    functionName: pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__str__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 353
    functionName: pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__repr__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 356
    functionName: pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__hash__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 359
    functionName: pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__eq__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 365
    functionName: pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.project_name
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 369
    functionName: pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.name
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 373
    functionName: pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.version
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 379
    functionName: pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.is_editable
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 382
    functionName: pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.format_for_error
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - with_requires
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 385
    functionName: pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.iter_dependencies
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.__init__
    - link.is_existing_dir
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.resolution.resolvelib.factory.Factory._fail_if_link_is_unsupported_wheel
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - pip._internal.resolution.resolvelib.factory.Factory._make_requirements_from_install_req
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - extras.difference
    - pip._vendor.packaging.tags.generic_tags
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__
    - abi.lower
    - urllib.parse.urlparse
    - stack.enter_context
    - logger.warning
    - pip._internal.req.constructors._looks_like_path
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - <builtin>.hasattr
    - f.seek
    - formats.extend
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - extras.lower
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - os.path.isdir
    - vcs_backend.get_revision
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - struct.calcsize
    - name.startswith
    - match.group
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._internal.req.constructors.install_req_drop_extras
    - os.path.exists
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.__init__
    - line.startswith
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.resolution.resolvelib.factory.Factory._make_base_candidate_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - part.zfill
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    - abis.remove
    - url.lower
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - name.split
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - name.strip
    - pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    - <builtin>.any
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - <builtin>.id
    - pip._internal.utils.packaging.get_requirement
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._internal.resolution.resolvelib.requirements.SpecifierWithoutExtrasRequirement.__init__
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.resolution.resolvelib.factory.Factory.make_requirements_from_spec
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - spec_str.endswith
    - parts.pop
    - version_str.split
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - vcs_backend.get_url_rev_and_auth
    - pip._internal.req.constructors.check_first_requirement_in_file
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.req.constructors._set_requirement_extras
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - url.split
    - arch.partition
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.__init__
    - ireq.match_markers
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._internal.utils.compatibility_tags.get_supported
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - re.fullmatch
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - logger.info
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - abis.append
    - pip._internal.resolution.resolvelib.factory.Factory.make_requirement_from_candidate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Tuple object at 0x7f30d78e5f40>
    argNames:
    - self
    - specifier
    - comes_from
    - requested_extras
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 562
    functionName: pip._internal.resolution.resolvelib.factory.Factory.make_requirements_from_spec
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 2
    functionsReached:
    - pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.__init__
    - link.is_existing_dir
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.resolution.resolvelib.factory.Factory._fail_if_link_is_unsupported_wheel
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - pip._internal.resolution.resolvelib.factory.Factory._make_requirements_from_install_req
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - extras.difference
    - pip._vendor.packaging.tags.generic_tags
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__
    - abi.lower
    - urllib.parse.urlparse
    - stack.enter_context
    - logger.warning
    - pip._internal.req.constructors._looks_like_path
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - <builtin>.hasattr
    - f.seek
    - formats.extend
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - extras.lower
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - os.path.isdir
    - vcs_backend.get_revision
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - struct.calcsize
    - name.startswith
    - match.group
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._internal.req.constructors.install_req_drop_extras
    - os.path.exists
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.__init__
    - line.startswith
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.resolution.resolvelib.factory.Factory._make_base_candidate_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - part.zfill
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    - abis.remove
    - url.lower
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - name.split
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - name.strip
    - pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    - <builtin>.any
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - <builtin>.id
    - pip._internal.utils.packaging.get_requirement
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._internal.resolution.resolvelib.requirements.SpecifierWithoutExtrasRequirement.__init__
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - spec_str.endswith
    - parts.pop
    - version_str.split
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - vcs_backend.get_url_rev_and_auth
    - pip._internal.req.constructors.check_first_requirement_in_file
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.req.constructors._set_requirement_extras
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - url.split
    - arch.partition
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.__init__
    - ireq.match_markers
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._internal.utils.compatibility_tags.get_supported
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - re.fullmatch
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - logger.info
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - abis.append
    - pip._internal.resolution.resolvelib.factory.Factory.make_requirement_from_candidate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 391
    functionName: pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.get_install_requirement
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - base
    - extras
    - comes_from
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 420
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 14
    functionsReached:
    - <builtin>.frozenset
    - extras.difference
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    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: extras.difference
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 447
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__str__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 451
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__repr__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 454
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__hash__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 457
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__eq__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 463
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.project_name
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 467
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.name
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - pip._internal.resolution.resolvelib.base.format_name
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 472
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.version
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 475
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.format_for_error
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 1
    functionsReached:
    - <builtin>.sorted
    - pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.format_for_error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 481
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.is_installed
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 485
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.is_editable
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 489
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.source_link
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - requested
    - valid
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 492
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate._warn_invalid_extras
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 2
    functionsReached:
    - <builtin>.frozenset
    - logger.warning
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 520
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate._calculate_valid_requested_extras
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 1
    functionsReached:
    - <builtin>.frozenset
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate._warn_invalid_extras
    - logger.warning
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - with_requires
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 536
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.iter_dependencies
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached:
    - pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.__init__
    - link.is_existing_dir
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.resolution.resolvelib.factory.Factory._fail_if_link_is_unsupported_wheel
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate._calculate_valid_requested_extras
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - pip._internal.resolution.resolvelib.factory.Factory._make_requirements_from_install_req
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - extras.difference
    - pip._vendor.packaging.tags.generic_tags
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__
    - abi.lower
    - urllib.parse.urlparse
    - stack.enter_context
    - logger.warning
    - pip._internal.req.constructors._looks_like_path
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - <builtin>.hasattr
    - f.seek
    - formats.extend
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - extras.lower
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - os.path.isdir
    - vcs_backend.get_revision
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - struct.calcsize
    - name.startswith
    - match.group
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._internal.req.constructors.install_req_drop_extras
    - os.path.exists
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__
    - warnings.warn
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate._warn_invalid_extras
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.__init__
    - line.startswith
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.resolution.resolvelib.factory.Factory._make_base_candidate_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - part.zfill
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    - abis.remove
    - url.lower
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - name.split
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - name.strip
    - pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    - <builtin>.any
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - <builtin>.id
    - pip._internal.utils.packaging.get_requirement
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._internal.resolution.resolvelib.requirements.SpecifierWithoutExtrasRequirement.__init__
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.resolution.resolvelib.factory.Factory.make_requirements_from_spec
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - spec_str.endswith
    - parts.pop
    - version_str.split
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - vcs_backend.get_url_rev_and_auth
    - pip._internal.req.constructors.check_first_requirement_in_file
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.req.constructors._set_requirement_extras
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - url.split
    - arch.partition
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.__init__
    - ireq.match_markers
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._internal.utils.compatibility_tags.get_supported
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - re.fullmatch
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - logger.info
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - abis.append
    - pip._internal.resolution.resolvelib.factory.Factory.make_requirement_from_candidate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 557
    functionName: pip._internal.resolution.resolvelib.factory.Factory.make_requirement_from_candidate
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 6
    functionsReached:
    - pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 553
    functionName: pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.get_install_requirement
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - py_version_info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 564
    functionName: pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.utils.misc.normalize_version_info
    - itertools.dropwhile
    - <builtin>.str
    - letter.lower
    - <builtin>.tuple
    - pip._vendor.packaging.version.Version.__init__
    - <builtin>.list
    - part.lower
    - <builtin>.len
    - pip._vendor.packaging.version._parse_local_version
    - typing.cast
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - <builtin>.int
    - part.isdigit
    - match.group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 575
    functionName: pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate.__str__
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 579
    functionName: pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate.project_name
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 583
    functionName: pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate.name
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 587
    functionName: pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate.version
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 590
    functionName: pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate.format_for_error
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - with_requires
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 593
    functionName: pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate.iter_dependencies
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 596
    functionName: pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate.get_install_requirement
    functionSourceFile: pip._internal.resolution.resolvelib.candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.resolution.resolvelib.factory
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 132
    functionName: pip._internal.resolution.resolvelib.factory.Factory.force_reinstall
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - link
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 135
    functionName: pip._internal.resolution.resolvelib.factory.Factory._fail_if_link_is_unsupported_wheel
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 9
    functionsReached:
    - pip._internal.models.wheel.Wheel.supported
    - interpreter.lower
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.models.wheel.Wheel.__init__
    - abi.lower
    - wheel_info.group
    - <builtin>.hash
    - platform.lower
    linkageType: pythonLinkage
    raised:
    - UnsupportedWheel
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - base
    - extras
    - comes_from
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 144
    functionName: pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 13
    functionsReached:
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - <builtin>.id
    - <builtin>.frozenset
    - extras.difference
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - dist
    - extras
    - template
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 159
    functionName: pip._internal.resolution.resolvelib.factory.Factory._make_candidate_from_dist
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 4
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - <builtin>.tuple
    - s.strip
    - <builtin>.hash
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.path.normpath
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.urljoin
    - extras.difference
    - abi.lower
    - pip._internal.req.constructors._looks_like_path
    - urllib.parse.urlparse
    - logger.warning
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - factory.preparer.prepare_installed_requirement
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - extras.lower
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.packaging.version._parse_version_parts
    - part.lower
    - <builtin>.super
    - urllib.parse.urlunparse
    - os.path.isdir
    - os.path.abspath
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - name.startswith
    - match.group
    - pip._vendor.packaging.markers.Marker.__init__
    - os.path.exists
    - warnings.warn
    - pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__init__
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - <builtin>.isinstance
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - version.lower
    - part.zfill
    - name.split
    - <builtin>.list
    - name.strip
    - <builtin>.any
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - <builtin>.id
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.utils.misc.is_installable_dir
    - typing.cast
    - spec_str.endswith
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.resolution.resolvelib.candidates._make_install_req_from_dist
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - <builtin>.frozenset
    - logger.debug
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - url.split
    - letter.lower
    - <builtin>.set
    - m.group
    - line.endswith
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - pip._internal.req.constructors.parse_req_from_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - link
    - extras
    - template
    - name
    - version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 174
    functionName: pip._internal.resolution.resolvelib.factory.Factory._make_candidate_from_link
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 0
    functionsReached:
    - link.is_existing_dir
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - extras.difference
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__
    - urllib.parse.urljoin
    - urllib.parse.urlparse
    - abi.lower
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.tags._mac_binary_formats
    - pip._internal.req.constructors._looks_like_path
    - f.seek
    - formats.extend
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - extras.lower
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - seen.update
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version._parse_version_parts
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - os.path.isdir
    - vcs_backend.get_revision
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - struct.calcsize
    - name.startswith
    - match.group
    - pip._vendor.packaging.markers.Marker.__init__
    - os.path.exists
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - line.startswith
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.resolution.resolvelib.factory.Factory._make_base_candidate_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - part.zfill
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    - url.lower
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - name.split
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - name.strip
    - pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    - <builtin>.any
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - <builtin>.id
    - pip._internal.utils.packaging.get_requirement
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - spec_str.endswith
    - version_str.split
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - vcs_backend.get_url_rev_and_auth
    - pip._internal.req.constructors.check_first_requirement_in_file
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - re.match
    - pip._vendor.packaging.tags._abi3_applies
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - url.split
    - arch.partition
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._internal.utils.compatibility_tags.get_supported
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - logger.info
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - link
    - template
    - name
    - version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 189
    functionName: pip._internal.resolution.resolvelib.factory.Factory._make_base_candidate_from_link
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 10
    functionsReached:
    - link.is_existing_dir
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - subprocess.run
    - result.extend
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - urllib.parse.urljoin
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__
    - abi.lower
    - urllib.parse.urlparse
    - pip._internal.req.constructors._looks_like_path
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - extras.lower
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - seen.update
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version._parse_version_parts
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - os.path.isdir
    - vcs_backend.get_revision
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - name.startswith
    - match.group
    - pip._vendor.packaging.markers.Marker.__init__
    - os.path.exists
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - glibc_max_list.append
    - pip._internal.req.constructors.RequirementParts.__init__
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - line.startswith
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - part.zfill
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    - url.lower
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - name.split
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - name.strip
    - pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    - <builtin>.any
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.packaging.get_requirement
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - spec_str.endswith
    - version_str.split
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - vcs_backend.get_url_rev_and_auth
    - pip._internal.req.constructors.check_first_requirement_in_file
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - re.match
    - pip._vendor.packaging.tags._abi3_applies
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - url.split
    - arch.partition
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._internal.utils.compatibility_tags.get_supported
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - logger.info
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - ireqs
    - specifier
    - hashes
    - prefers_installed
    - incompatible_ids
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 246
    functionName: pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 2
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - <builtin>.tuple
    - s.strip
    - <builtin>.hash
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.path.normpath
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.urljoin
    - extras.difference
    - abi.lower
    - pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates._get_installed_candidate
    - urllib.parse.urlparse
    - pip._internal.req.constructors._looks_like_path
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - factory.preparer.prepare_installed_requirement
    - part.startswith
    - wheel_info.group
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - extras.lower
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.vcs.versioncontrol.is_url
    - part.lower
    - <builtin>.super
    - urllib.parse.urlunparse
    - os.path.isdir
    - os.path.abspath
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - name.startswith
    - match.group
    - pip._internal.resolution.resolvelib.factory.Factory._make_candidate_from_dist
    - pip._vendor.packaging.markers.Marker.__init__
    - os.path.exists
    - warnings.warn
    - pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__init__
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._vendor.packaging.specifiers.SpecifierSet.contains
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - <builtin>.isinstance
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - version.lower
    - pip._internal.resolution.resolvelib.found_candidates.FoundCandidates.__init__
    - part.zfill
    - name.split
    - ireq.hashes
    - <builtin>.list
    - name.strip
    - <builtin>.any
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - <builtin>.id
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.utils.misc.is_installable_dir
    - typing.cast
    - spec_str.endswith
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - <builtin>.all
    - pip._internal.req.constructors.check_first_requirement_in_file
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.resolution.resolvelib.candidates._make_install_req_from_dist
    - s.contains
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - <builtin>.frozenset
    - logger.debug
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - letter.lower
    - url.split
    - <builtin>.set
    - m.group
    - line.endswith
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.req.constructors._strip_extras
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.utils.deprecation.deprecated
    - <builtin>.next
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - pip._internal.req.constructors.parse_req_from_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 272
    functionName: pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates._get_installed_candidate
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 3
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - <builtin>.tuple
    - s.strip
    - <builtin>.hash
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.path.normpath
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - urllib.parse.urljoin
    - extras.difference
    - abi.lower
    - urllib.parse.urlparse
    - pip._internal.req.constructors._looks_like_path
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - factory.preparer.prepare_installed_requirement
    - part.startswith
    - wheel_info.group
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - extras.lower
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.vcs.versioncontrol.is_url
    - part.lower
    - <builtin>.super
    - urllib.parse.urlunparse
    - os.path.isdir
    - os.path.abspath
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - name.startswith
    - match.group
    - pip._internal.resolution.resolvelib.factory.Factory._make_candidate_from_dist
    - pip._vendor.packaging.markers.Marker.__init__
    - os.path.exists
    - warnings.warn
    - pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__init__
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._vendor.packaging.specifiers.SpecifierSet.contains
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - <builtin>.isinstance
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - version.lower
    - part.zfill
    - name.split
    - <builtin>.list
    - name.strip
    - <builtin>.any
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - <builtin>.id
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.utils.misc.is_installable_dir
    - typing.cast
    - spec_str.endswith
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - <builtin>.all
    - pip._internal.req.constructors.check_first_requirement_in_file
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.resolution.resolvelib.candidates._make_install_req_from_dist
    - s.contains
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - <builtin>.frozenset
    - logger.debug
    - pip._vendor.packaging.version.parse
    - re.match
    - _legacy_version_component_re.split
    - letter.lower
    - url.split
    - <builtin>.set
    - m.group
    - line.endswith
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.req.constructors._strip_extras
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.utils.deprecation.deprecated
    - <builtin>.next
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - pip._internal.req.constructors.parse_req_from_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 296
    functionName: pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates.iter_index_candidate_infos
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 1
    functionsReached:
    - <builtin>.reversed
    - functools.partial
    - pip._vendor.packaging.specifiers.SpecifierSet.__iter__
    - pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates.iter_index_candidate_infos.is_pinned
    - sp.version.endswith
    - result.iter_applicable
    - <builtin>.iter
    - <builtin>.all
    - <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: result.iter_applicable
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - specifier
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 309
    functionName: pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates.iter_index_candidate_infos.is_pinned
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 2
    functionsReached:
    - pip._vendor.packaging.specifiers.SpecifierSet.__iter__
    - <builtin>.iter
    - sp.version.endswith
    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: sp.version.endswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - get_infos
    - installed
    - prefers_installed
    - incompatible_ids
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 117
    functionName: pip._internal.resolution.resolvelib.found_candidates.FoundCandidates.__init__
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - base_requirements
    - extras
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 343
    functionName: pip._internal.resolution.resolvelib.factory.Factory._iter_explicit_candidates_from_base
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 2
    functionsReached:
    - pip._internal.resolution.resolvelib.candidates.as_base_candidate
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - <builtin>.isinstance
    - <builtin>.id
    - req.get_candidate_lookup
    - <builtin>.frozenset
    - extras.difference
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    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.get_candidate_lookup
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - identifier
    - constraint
    - template
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 365
    functionName: pip._internal.resolution.resolvelib.factory.Factory._iter_candidates_from_constraints
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 2
    functionsReached:
    - link.is_existing_dir
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - pip._vendor.packaging.tags._version_nodot
    - parsed.add
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.resolution.resolvelib.factory.Factory._fail_if_link_is_unsupported_wheel
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - s.strip
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__
    - abi.lower
    - urllib.parse.urlparse
    - pip._internal.req.constructors._looks_like_path
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.tags._mac_binary_formats
    - pip._internal.req.constructors.deduce_helpful_msg
    - formats.extend
    - f.seek
    - pip._internal.req.constructors.install_req_from_line
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - extras.lower
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - seen.update
    - pip._internal.req.constructors.convert_extras
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - os.path.isdir
    - vcs_backend.get_revision
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - struct.calcsize
    - name.startswith
    - match.group
    - os.path.exists
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - line.startswith
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.resolution.resolvelib.factory.Factory._make_base_candidate_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - part.zfill
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - url.lower
    - name.split
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - name.strip
    - pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    - <builtin>.any
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - pip._internal.utils.packaging.get_requirement
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - spec_str.endswith
    - version_str.split
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - sysconfig.get_platform
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - vcs_backend.get_url_rev_and_auth
    - pip._internal.req.constructors.check_first_requirement_in_file
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - logger.debug
    - <builtin>.frozenset
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - url.split
    - letter.lower
    - arch.partition
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - pip._internal.req.constructors.install_req_from_link_and_ireq
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._internal.utils.compatibility_tags.get_supported
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - <builtin>.reversed
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - version_str.decode
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - logger.info
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - abis.append
    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: explicit_candidates.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ireqs.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: requirements.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: explicit_candidates.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: incompatibilities.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req.is_satisfied_by
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - ireq
    - requested_extras
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 462
    functionName: pip._internal.resolution.resolvelib.factory.Factory._make_requirements_from_install_req
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 5
    functionsReached:
    - pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.__init__
    - link.is_existing_dir
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - formats.append
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.packaging.tags._version_nodot
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_link
    - pip._internal.models.direct_url.DirInfo.__init__
    - match.groups
    - supported.extend
    - _canonicalize_regex.sub
    - itertools.dropwhile
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.resolution.resolvelib.factory.Factory._fail_if_link_is_unsupported_wheel
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.models.wheel.Wheel.supported
    - pip._vendor.packaging.tags._generic_platforms
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - os.confstr
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - os.path.normpath
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - urllib.parse.urljoin
    - extras.difference
    - pip._vendor.packaging.tags.generic_tags
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__
    - abi.lower
    - urllib.parse.urlparse
    - stack.enter_context
    - logger.warning
    - pip._internal.req.constructors._looks_like_path
    - cls._hash_url_fragment_re.search
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._vendor.packaging.tags._mac_binary_formats
    - <builtin>.hasattr
    - f.seek
    - formats.extend
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - extras.lower
    - pip._internal.models.direct_url.DirectUrl.__init__
    - parts.append
    - seen.update
    - pip._vendor.packaging.version._parse_version_parts
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - part.lower
    - arch.startswith
    - <builtin>.super
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - os.path.isdir
    - vcs_backend.get_revision
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__
    - struct.calcsize
    - name.startswith
    - match.group
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._internal.req.constructors.install_req_drop_extras
    - os.path.exists
    - pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.__init__
    - line.startswith
    - pip._internal.utils.direct_url_helpers.direct_url_from_link
    - pip._internal.resolution.resolvelib.factory.Factory._make_base_candidate_from_link
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._vendor.packaging.tags._normalize_string
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - part.zfill
    - pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable
    - abis.remove
    - url.lower
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - name.split
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - name.strip
    - pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry
    - <builtin>.any
    - pip._internal.models.direct_url.ArchiveInfo.__init__
    - struct.unpack
    - pip._internal.models.link.Link._egg_fragment
    - markers_as_string.strip
    - os.path.isfile
    - <builtin>.len
    - <builtin>.id
    - pip._internal.utils.packaging.get_requirement
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._internal.resolution.resolvelib.requirements.SpecifierWithoutExtrasRequirement.__init__
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.misc.is_installable_dir
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - spec_str.endswith
    - parts.pop
    - version_str.split
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - vcs_backend.get_url_rev_and_auth
    - pip._internal.req.constructors.check_first_requirement_in_file
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - pip._internal.utils.urls.get_url_scheme
    - operator.itemgetter
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - <builtin>.frozenset
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.req.constructors._set_requirement_extras
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - url.split
    - arch.partition
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.__init__
    - ireq.match_markers
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - pip._internal.utils.compatibility_tags.get_supported
    - line.find
    - pip._vendor.packaging.version._parse_letter_version
    - re.fullmatch
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - logger.info
    - pip._internal.models.direct_url.VcsInfo.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - abis.append
    - pip._internal.resolution.resolvelib.factory.Factory.make_requirement_from_candidate
    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: ireq.match_markers
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ireq
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 96
    functionName: pip._internal.resolution.resolvelib.requirements.SpecifierWithoutExtrasRequirement.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - pip._internal.models.link.Link.__init__
    - pip._internal.utils.urls.path_to_url
    - format_str.format
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - <builtin>.frozenset
    - parsed.add
    - part.startswith
    - pip._vendor.packaging.version.parse
    - match.groups
    - version.lower
    - _canonicalize_regex.sub
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._vendor.packaging.utils.canonicalize_name
    - part.zfill
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - itertools.dropwhile
    - pip._internal.req.req_install.InstallRequirement.__init__
    - _legacy_version_component_re.split
    - <builtin>.str
    - pip._internal.req.constructors._set_requirement_extras
    - letter.lower
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - s.strip
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.models.link.Link._egg_fragment
    - urllib.parse.urlunparse
    - <builtin>.sorted
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - os.path.normpath
    - os.path.abspath
    - pip._vendor.packaging.version._parse_letter_version
    - typing.cast
    - parts.pop
    - re.fullmatch
    - req.extras.asList
    - urllib.request.pathname2url
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - match.group
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.req.constructors.install_req_drop_extras
    - part.isdigit
    - warnings.warn
    - _legacy_version_replacement_map.get
    - specifiers.split
    - urllib.parse.urljoin
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlparse
    - logger.warning
    - cls._hash_url_fragment_re.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ireq
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 41
    functionName: pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.__init__
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 6
    functionsReached:
    - <builtin>.frozenset
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 142
    functionName: pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.__init__
    functionSourceFile: ''
    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: typing.NamedTuple.requirements.extend
    functionSourceFile: typing
    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: pip._internal.resolution.resolvelib.factory.Factory.collect_root_requirements.<lambda1>
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.requirements.sort
    functionSourceFile: typing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 11
    functionName: pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.__init__
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - specifier
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 580
    functionName: pip._internal.resolution.resolvelib.factory.Factory.make_requires_python_requirement
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 0
    functionsReached:
    - pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.__init__
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - specifier
    - match
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 105
    functionName: pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - causes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 638
    functionName: pip._internal.resolution.resolvelib.factory.Factory._report_requires_python_error
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - typing.cast.parent.format_for_error
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.parent.format_for_error
    functionSourceFile: typing
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - req
    - parent
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 660
    functionName: pip._internal.resolution.resolvelib.factory.Factory._report_single_requirement_conflict
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 2
    functionsReached:
    - <builtin>.str
    - logger.critical
    - yanked_versions_set.add
    - <builtin>.sorted
    - logger.info
    - <builtin>.set
    - versions_set.add
    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: yanked_versions_set.add
    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: versions_set.add
    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: cause.requirement.is_satisfied_by
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - parts
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 748
    functionName: pip._internal.resolution.resolvelib.factory.Factory.get_installation_error.text_join
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 2
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - parent
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 754
    functionName: pip._internal.resolution.resolvelib.factory.Factory.get_installation_error.describe_trigger
    functionSourceFile: pip._internal.resolution.resolvelib.factory
    functionUses: 2
    functionsReached:
    - parent.get_install_requirement
    - <builtin>.isinstance
    - <builtin>.str
    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: parent.get_install_requirement
    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: triggers.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: relevant_constraints.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.resolution.resolvelib.requirements
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 14
    functionName: pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.__str__
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 17
    functionName: pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.__repr__
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 21
    functionName: pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.project_name
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 26
    functionName: pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.name
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 30
    functionName: pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.format_for_error
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached:
    - pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.format_for_error
    - <builtin>.sorted
    - pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.format_for_error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 33
    functionName: pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.get_candidate_lookup
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 36
    functionName: pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.is_satisfied_by
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.__str__
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.__repr__
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 53
    functionName: pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.project_name
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached:
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 58
    functionName: pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.name
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached:
    - pip._internal.resolution.resolvelib.base.format_name
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 61
    functionName: pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.format_for_error
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached:
    - s.strip
    - <builtin>.len
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 74
    functionName: pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.get_candidate_lookup
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 77
    functionName: pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.is_satisfied_by
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached:
    - spec.contains
    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: spec.contains
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 109
    functionName: pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.__str__
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 112
    functionName: pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.__repr__
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 116
    functionName: pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.project_name
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 120
    functionName: pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.name
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 123
    functionName: pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.format_for_error
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 126
    functionName: pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.get_candidate_lookup
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 131
    functionName: pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.is_satisfied_by
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 145
    functionName: pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.__str__
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 148
    functionName: pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.__repr__
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 152
    functionName: pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.project_name
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 156
    functionName: pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.name
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 159
    functionName: pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.format_for_error
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 162
    functionName: pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.get_candidate_lookup
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - candidate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 165
    functionName: pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.is_satisfied_by
    functionSourceFile: pip._internal.resolution.resolvelib.requirements
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.resolution.resolvelib.found_candidates
    functionSourceFile: pip._internal.resolution.resolvelib.found_candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - infos
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: pip._internal.resolution.resolvelib.found_candidates._iter_built
    functionSourceFile: pip._internal.resolution.resolvelib.found_candidates
    functionUses: 1
    functionsReached:
    - <builtin>.set
    - versions_found.add
    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: versions_found.add
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - installed
    - infos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: pip._internal.resolution.resolvelib.found_candidates._iter_built_with_prepended
    functionSourceFile: pip._internal.resolution.resolvelib.found_candidates
    functionUses: 1
    functionsReached:
    - versions_found.add
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - installed
    - infos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: pip._internal.resolution.resolvelib.found_candidates._iter_built_with_inserted
    functionSourceFile: pip._internal.resolution.resolvelib.found_candidates
    functionUses: 1
    functionsReached:
    - <builtin>.set
    - versions_found.add
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 129
    functionName: pip._internal.resolution.resolvelib.found_candidates.FoundCandidates.__getitem__
    functionSourceFile: pip._internal.resolution.resolvelib.found_candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 135
    functionName: pip._internal.resolution.resolvelib.found_candidates.FoundCandidates.__iter__
    functionSourceFile: pip._internal.resolution.resolvelib.found_candidates
    functionUses: 0
    functionsReached:
    - <builtin>.reversed
    - functools.partial
    - pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates.iter_index_candidate_infos
    - pip._vendor.packaging.specifiers.SpecifierSet.__iter__
    - <builtin>.id
    - pip._internal.resolution.resolvelib.found_candidates._iter_built_with_inserted
    - pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates.iter_index_candidate_infos.is_pinned
    - <builtin>.set
    - versions_found.add
    - result.iter_applicable
    - <builtin>.iter
    - <builtin>.all
    - sp.version.endswith
    - <builtin>.list
    - pip._internal.resolution.resolvelib.found_candidates._iter_built
    - pip._internal.resolution.resolvelib.found_candidates._iter_built_with_prepended
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 145
    functionName: pip._internal.resolution.resolvelib.found_candidates.FoundCandidates.__len__
    functionSourceFile: pip._internal.resolution.resolvelib.found_candidates
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: pip._internal.resolution.resolvelib.found_candidates.FoundCandidates
    functionSourceFile: pip._internal.resolution.resolvelib.found_candidates
    functionUses: 0
    functionsReached:
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 152
    functionName: pip._internal.resolution.resolvelib.found_candidates.FoundCandidates.__bool__
    functionSourceFile: pip._internal.resolution.resolvelib.found_candidates
    functionUses: 0
    functionsReached:
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.resolution
    functionSourceFile: pip._internal.resolution
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.network.xmlrpc
    functionSourceFile: pip._internal.network.xmlrpc
    functionUses: 0
    functionsReached:
    - logging.getLogger
    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 0x7f30fa5b5820>
    argNames:
    - self
    - index_url
    - session
    - use_datetime
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 26
    functionName: pip._internal.network.xmlrpc.PipXmlrpcTransport.__init__
    functionSourceFile: pip._internal.network.xmlrpc
    functionUses: 2
    functionsReached:
    - <builtin>.super
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b5220>
    argNames:
    - self
    - host
    - handler
    - request_body
    - verbose
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 34
    functionName: pip._internal.network.xmlrpc.PipXmlrpcTransport.request
    functionSourceFile: pip._internal.network.xmlrpc
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - logger.critical
    - urllib.parse.urlunparse
    - pip._internal.network.utils.raise_for_status
    - resp.reason.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.models.installation_report
    functionSourceFile: pip._internal.models.installation_report
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - install_requirements
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 10
    functionName: pip._internal.models.installation_report.InstallationReport.__init__
    functionSourceFile: pip._internal.models.installation_report
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - ireq
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 14
    functionName: pip._internal.models.installation_report.InstallationReport._install_req_to_dict
    functionSourceFile: pip._internal.models.installation_report
    functionUses: 3
    functionsReached:
    - ireq.download_info.to_dict
    - <builtin>.sorted
    - ireq.get_dist
    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: ireq.download_info.to_dict
    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: ireq.get_dist
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 42
    functionName: pip._internal.models.installation_report.InstallationReport.to_dict
    functionSourceFile: pip._internal.models.installation_report
    functionUses: 2
    functionsReached:
    - <builtin>.str
    - platform.python_implementation
    - ireq.download_info.to_dict
    - <builtin>.sorted
    - pip._internal.models.installation_report.InstallationReport._install_req_to_dict
    - platform.machine
    - pip._vendor.packaging.markers.default_environment
    - platform.release
    - platform.python_version_tuple
    - pip._vendor.packaging.markers.format_full_version
    - platform.version
    - platform.system
    - ireq.get_dist
    - platform.python_version
    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: 2
    functionLinenumber: -1
    functionName: pip._internal.commands.install
    functionSourceFile: pip._internal.commands.install
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - typing.cast
    - pip._internal.utils._log.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 38
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 72
    functionName: pip._internal.commands.install.InstallCommand.add_options
    functionSourceFile: pip._internal.commands.install
    functionUses: 0
    functionsReached:
    - pip._internal.cli.cmdoptions.add_target_python_options
    - pip._internal.cli.cmdoptions.prefer_binary
    - pip._internal.cli.cmdoptions.editable
    - optparse.OptionParser.option_groups.pop
    - pip._internal.models.format_control.FormatControl.__init__
    - pip._internal.cli.cmdoptions.make_option_group
    - pip._internal.cli.cmdoptions.no_binary
    - optparse.OptionGroup
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - <builtin>.set
    - optparse.Option
    - pip._internal.cli.cmdoptions.only_binary
    - cmd_opts.add_option
    - pip._internal.cli.cmdoptions.constraints
    - optparse.OptionGroup.add_option
    - optparse.OptionParser.option_groups.insert
    - pip._internal.cli.cmdoptions.requirements
    - optparse.OptionParser.add_option_group
    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: pip._internal.commands.install.InstallCommand
    functionSourceFile: pip._internal.commands.install
    functionUses: 0
    functionsReached:
    - pip._internal.cli.req_command.with_cleanup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 7
    IfCount: 7
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f25660a0>
    - <ast.Constant object at 0x7f30f25660d0>
    - <ast.Constant object at 0x7f30f2566100>
    - <ast.Constant object at 0x7f30f2566130>
    argNames:
    - use_user_site
    - prefix_path
    - target_dir
    - root_path
    - isolated_mode
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 659
    functionName: pip._internal.commands.install.decide_user_install
    functionSourceFile: pip._internal.commands.install
    functionUses: 2
    functionsReached:
    - pathlib.Path
    - sysconfig.get_paths
    - cmd.finalize_options
    - variables.get
    - itertools.dropwhile
    - <builtin>.str
    - distutils.command.install.install
    - <builtin>.tuple
    - os.access
    - _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match
    - unpatched.replace
    - os.path.normpath
    - logger.log
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.locations._distutils.get_scheme
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - <builtin>.setattr
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - old_v.name.startswith
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.locations._looks_like_debian_scheme
    - pip._internal.commands.install.get_lib_location_guesses
    - typing.cast.debug
    - logger.warning
    - <builtin>.hasattr
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - part.startswith
    - pip._internal.utils.virtualenv._get_pyvenv_cfg_lines
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._looks_like_red_hat_scheme
    - new_v.name.startswith
    - part.lower
    - random.choice
    - pip._internal.utils.filesystem._test_writable_dir_win
    - os.path.isdir
    - os.path.abspath
    - warning_contexts.append
    - match.group
    - os.path.exists
    - os.path.dirname
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - f.read
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.range
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._internal.utils.filesystem.test_writable_dir
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - os.path.isabs
    - p.endswith
    - pip._internal.utils.virtualenv._no_global_under_venv
    - <builtin>.list
    - os.close
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - pip._internal.locations._looks_like_bpo_44860
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - parts.pop
    - pip._internal.locations._warn_mismatched
    - typing.cast.info
    - pip._internal.commands.install.site_packages_writable
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - _local_version_separators.split
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - <builtin>.all
    - <builtin>.getattr
    - os.unlink
    - format_str.format
    - sysconfig.is_python_build
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - pip._internal.utils.virtualenv.virtualenv_no_global
    - os.open
    - letter.lower
    - <builtin>.set
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.virtualenv._no_global_under_legacy_virtualenv
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    linkageType: pythonLinkage
    raised:
    - CommandError
    - InstallationError
    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: resolver.resolve
    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: requirement_set.warn_legacy_versions_and_specifiers
    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: requirement_set.get_requirement
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: requirement_set.requirements.values
    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: resolver.get_installation_order
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - to_install
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 571
    functionName: pip._internal.commands.install.InstallCommand._determine_conflicts
    functionSourceFile: pip._internal.commands.install
    functionUses: 2
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - typing.cast.Environment.default
    - missing_deps.add
    - <builtin>.bool
    - pip._internal.operations.check.check_package_set
    - format_str.format
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.distributions.make_distribution_for_install_requirement
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - env.iter_installed_distributions
    - _canonicalize_regex.sub
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.operations.check.warn_legacy_versions_and_specifiers
    - pip._internal.operations.check.check_install_conflicts.<lambda1>
    - pip._internal.metadata.get_default_environment
    - typing.cast.exception
    - <builtin>.str
    - typing.cast.Distribution.from_wheel
    - package_set.items
    - conflicting_deps.add
    - pip._internal.metadata.get_wheel_distribution
    - letter.lower
    - pip._internal.operations.check.check_install_conflicts
    - pip._internal.operations.check._create_whitelist
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - <builtin>.any
    - typing.NamedTuple.__init__
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.operations.check.create_package_set_from_installed
    - dist.iter_dependencies
    - pip._internal.operations.check._simulate_installation_of
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - req.marker.evaluate
    - parts.pop
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - <builtin>.int
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - match.group
    - part.isdigit
    - installed.add
    - _legacy_version_replacement_map.get
    - warnings.warn
    - req.specifier.contains
    - <builtin>.getattr
    - pip._vendor.packaging.version._legacy_cmpkey
    - packages_affected.add
    - contextlib.suppress
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30fc92deb0>
    - <ast.Constant object at 0x7f30fc92de80>
    - <ast.Constant object at 0x7f30fc92de50>
    - <ast.Constant object at 0x7f30fc92de20>
    - <ast.Constant object at 0x7f30fc92ddf0>
    argNames:
    - user
    - home
    - root
    - isolated
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 634
    functionName: pip._internal.commands.install.get_lib_location_guesses
    functionSourceFile: pip._internal.commands.install
    functionUses: 4
    functionsReached:
    - pathlib.Path
    - sysconfig.get_paths
    - cmd.finalize_options
    - variables.get
    - itertools.dropwhile
    - <builtin>.str
    - distutils.command.install.install
    - <builtin>.tuple
    - unpatched.replace
    - os.path.normpath
    - logger.log
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.locations._distutils.get_scheme
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - <builtin>.setattr
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - old_v.name.startswith
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.locations._looks_like_debian_scheme
    - logger.warning
    - <builtin>.hasattr
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - part.startswith
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._looks_like_red_hat_scheme
    - new_v.name.startswith
    - part.lower
    - os.path.abspath
    - warning_contexts.append
    - match.group
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - os.path.isabs
    - p.endswith
    - <builtin>.list
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - pip._internal.locations._looks_like_bpo_44860
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - parts.pop
    - pip._internal.locations._warn_mismatched
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.getattr
    - <builtin>.all
    - format_str.format
    - sysconfig.is_python_build
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - letter.lower
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    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: installed.sort
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: items.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - conflict_details
    - resolver_variant
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 583
    functionName: pip._internal.commands.install.InstallCommand._warn_about_conflicts
    functionSourceFile: pip._internal.commands.install
    functionUses: 2
    functionsReached:
    - typing.cast.critical
    - parts.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 9
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - error
    - show_traceback
    - using_user_site
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 720
    functionName: pip._internal.commands.install.create_os_error_message
    functionSourceFile: pip._internal.commands.install
    functionUses: 2
    functionsReached:
    - <builtin>.str
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.len
    - parts.append
    - <builtin>.getattr
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - <builtin>.hasattr
    - parts.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 9
    IfCount: 9
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - target_dir
    - target_temp_dir
    - upgrade
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 517
    functionName: pip._internal.commands.install.InstallCommand._handle_target_dir
    functionSourceFile: pip._internal.commands.install
    functionUses: 2
    functionsReached:
    - pathlib.Path
    - shutil.rmtree
    - sysconfig.get_paths
    - cmd.finalize_options
    - variables.get
    - itertools.dropwhile
    - <builtin>.str
    - distutils.command.install.install
    - <builtin>.tuple
    - unpatched.replace
    - os.path.normpath
    - logger.log
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.locations._distutils.get_scheme
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - <builtin>.setattr
    - pip._internal.locations.base.get_major_minor_version
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - distutils.dist.Distribution.get_command_obj
    - old_v.name.startswith
    - pip._internal.locations._looks_like_debian_scheme
    - logger.warning
    - <builtin>.hasattr
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - part.startswith
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._looks_like_red_hat_scheme
    - new_v.name.startswith
    - part.lower
    - lib_dir_list.append
    - os.path.isdir
    - os.path.abspath
    - warning_contexts.append
    - os.path.exists
    - match.group
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.utils.misc.ensure_dir
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - os.path.isabs
    - p.endswith
    - <builtin>.list
    - os.makedirs
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - pip._internal.locations._looks_like_bpo_44860
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - parts.pop
    - pip._internal.locations._warn_mismatched
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - typing.cast.warning
    - <builtin>.int
    - os.remove
    - part.isdigit
    - os.listdir
    - _legacy_version_replacement_map.get
    - <builtin>.getattr
    - <builtin>.all
    - format_str.format
    - sysconfig.is_python_build
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - shutil.move
    - letter.lower
    - s.startswith
    - pip._internal.locations._sysconfig._infer_home
    - os.path.islink
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    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: lib_dir_list.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.startswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - to_install
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 101
    functionName: pip._internal.operations.check.check_install_conflicts
    functionSourceFile: pip._internal.operations.check
    functionUses: 3
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - missing_deps.add
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._internal.operations.check.check_package_set
    - format_str.format
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.distributions.make_distribution_for_install_requirement
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - env.iter_installed_distributions
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.operations.check.warn_legacy_versions_and_specifiers
    - pip._internal.operations.check.check_install_conflicts.<lambda1>
    - package_set.items
    - pip._internal.metadata.get_default_environment
    - typing.cast.Distribution.from_wheel
    - <builtin>.str
    - conflicting_deps.add
    - pip._internal.metadata.get_wheel_distribution
    - letter.lower
    - pip._internal.operations.check._create_whitelist
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.super
    - <builtin>.any
    - typing.NamedTuple.__init__
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.operations.check.create_package_set_from_installed
    - dist.iter_dependencies
    - pip._internal.operations.check._simulate_installation_of
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - req.marker.evaluate
    - parts.pop
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - <builtin>.int
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - match.group
    - part.isdigit
    - installed.add
    - _legacy_version_replacement_map.get
    - warnings.warn
    - req.specifier.contains
    - <builtin>.getattr
    - pip._vendor.packaging.version._legacy_cmpkey
    - packages_affected.add
    - contextlib.suppress
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - root
    - isolated
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 652
    functionName: pip._internal.commands.install.site_packages_writable
    functionSourceFile: pip._internal.commands.install
    functionUses: 3
    functionsReached:
    - pathlib.Path
    - sysconfig.get_paths
    - cmd.finalize_options
    - variables.get
    - itertools.dropwhile
    - <builtin>.str
    - distutils.command.install.install
    - <builtin>.tuple
    - os.access
    - unpatched.replace
    - os.path.normpath
    - logger.log
    - distutils.dist.Distribution.parse_config_files
    - pip._internal.locations._distutils.get_scheme
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - os.path.basename
    - <builtin>.setattr
    - pip._internal.locations._looks_like_msys2_mingw_scheme
    - pip._internal.locations.base.get_major_minor_version
    - old_v.name.startswith
    - distutils.dist.Distribution.get_command_obj
    - pip._internal.locations._looks_like_debian_scheme
    - pip._internal.commands.install.get_lib_location_guesses
    - logger.warning
    - <builtin>.hasattr
    - distutils.dist.Distribution.get_option_dict
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - old_v.parent.name.startswith
    - part.startswith
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - scheme.update
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.locations._looks_like_red_hat_scheme
    - new_v.name.startswith
    - part.lower
    - random.choice
    - pip._internal.utils.filesystem._test_writable_dir_win
    - os.path.isdir
    - os.path.abspath
    - warning_contexts.append
    - match.group
    - os.path.dirname
    - warnings.warn
    - pip._internal.locations._looks_like_red_hat_lib
    - typing.cast.finalize_options
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.range
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._internal.utils.filesystem.test_writable_dir
    - pip._internal.locations._sysconfig._infer_prefix
    - distutils.dist.Distribution.find_config_files
    - version.lower
    - pip._internal.locations.get_scheme
    - part.zfill
    - pip._internal.locations._distutils.distutils_scheme
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - os.path.isabs
    - p.endswith
    - <builtin>.list
    - os.close
    - <builtin>.any
    - pip._internal.locations._looks_like_slackware_scheme
    - pip._internal.locations._looks_like_bpo_44860
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._internal.locations._sysconfig._infer_user
    - typing.cast
    - parts.pop
    - pip._internal.locations._warn_mismatched
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.all
    - <builtin>.getattr
    - os.unlink
    - format_str.format
    - sysconfig.is_python_build
    - pip._internal.locations._looks_like_red_hat_patched_platlib_purelib
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - os.open
    - letter.lower
    - <builtin>.set
    - pip._internal.locations._sysconfig._infer_home
    - pip._internal.models.scheme.Scheme.__init__
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.locations.base.change_root
    - pip._internal.locations._log_context
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.locations._sysconfig.get_scheme
    - platlib.replace
    - pip._internal.utils.virtualenv._running_under_venv
    - os.path.splitdrive
    - distutils.dist.Distribution
    - pip._internal.locations.base.is_osx_framework
    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: parts.extend
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.operations.check
    functionSourceFile: pip._internal.operations.check
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 37
    functionName: pip._internal.operations.check.create_package_set_from_installed
    functionSourceFile: pip._internal.operations.check
    functionUses: 5
    functionsReached:
    - val.lower
    - pip._internal.metadata.get_default_environment
    - typing.NamedTuple.__init__
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._internal.metadata.select_backend
    - contextlib.suppress
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.misc.strtobool
    - <builtin>.getattr
    - dist.iter_dependencies
    - typing.cast
    - <builtin>.list
    - logger.warning
    - env.iter_installed_distributions
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd810a90>
    argNames:
    - package_set
    - should_ignore
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 54
    functionName: pip._internal.operations.check.check_package_set
    functionSourceFile: pip._internal.operations.check
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - missing_deps.add
    - format_str.format
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.operations.check.warn_legacy_versions_and_specifiers
    - pip._internal.operations.check.check_install_conflicts.<lambda1>
    - <builtin>.str
    - conflicting_deps.add
    - letter.lower
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.any
    - <builtin>.sorted
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - typing.cast
    - req.marker.evaluate
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - req.specifier.contains
    - pip._vendor.packaging.version._legacy_cmpkey
    - package_set.items
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - package_set
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 157
    functionName: pip._internal.operations.check.warn_legacy_versions_and_specifiers
    functionSourceFile: pip._internal.operations.check
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - format_str.format
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.any
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - package_set.items
    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: package_set.items
    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: pip._internal.operations.check.check_install_conflicts.<lambda1>
    functionSourceFile: ''
    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: missing_deps.add
    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: conflicting_deps.add
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - to_install
    - package_set
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 121
    functionName: pip._internal.operations.check._simulate_installation_of
    functionSourceFile: pip._internal.operations.check
    functionUses: 4
    functionsReached:
    - val.lower
    - pip._internal.distributions.base.AbstractDistribution.__init__
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.distributions.make_distribution_for_install_requirement
    - _canonicalize_regex.sub
    - typing.cast.Distribution.from_wheel
    - pip._internal.metadata.get_wheel_distribution
    - <builtin>.set
    - <builtin>.list
    - <builtin>.super
    - typing.NamedTuple.__init__
    - pip._internal.metadata.select_backend
    - dist.iter_dependencies
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution
    - pip._internal.metadata.base.FilesystemWheel.__init__
    - pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution
    - installed.add
    - <builtin>.getattr
    - contextlib.suppress
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - would_be_installed
    - package_set
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 140
    functionName: pip._internal.operations.check._create_whitelist
    functionSourceFile: pip._internal.operations.check
    functionUses: 4
    functionsReached:
    - <builtin>.set
    - packages_affected.add
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    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: installed.add
    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: packages_affected.add
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.commands.debug
    functionSourceFile: pip._internal.commands.debug
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - name
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 26
    functionName: pip._internal.commands.debug.show_value
    functionSourceFile: pip._internal.commands.debug
    functionUses: 2
    functionsReached:
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 30
    functionName: pip._internal.commands.debug.show_sys_implementation
    functionSourceFile: pip._internal.commands.debug
    functionUses: 1
    functionsReached:
    - pip._internal.utils.logging.get_indentation
    - logger.info
    - <builtin>.getattr
    - pip._internal.utils.logging.indent_log
    - pip._internal.commands.debug.show_value
    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: 37
    functionName: pip._internal.commands.debug.create_vendor_txt_map
    functionSourceFile: pip._internal.commands.debug
    functionUses: 2
    functionsReached:
    - line.strip
    - f.readlines
    - importlib.resources.open_text
    - <builtin>.dict
    - line.split
    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: importlib.resources.open_text
    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: f.readlines
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - module_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: pip._internal.commands.debug.get_module_from_module_name
    functionSourceFile: pip._internal.commands.debug
    functionUses: 4
    functionsReached:
    - <builtin>.locals
    - <builtin>.__import__
    - module_name.lower
    - <builtin>.getattr
    - <builtin>.globals
    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: module_name.lower
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - module_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 67
    functionName: pip._internal.commands.debug.get_vendor_version_from_module
    functionSourceFile: pip._internal.commands.debug
    functionUses: 3
    functionsReached:
    - val.lower
    - <builtin>.locals
    - pip._internal.metadata.get_environment
    - <builtin>.str
    - pip._internal.commands.debug.get_module_from_module_name
    - <builtin>.bool
    - <builtin>.__import__
    - env.get_distribution
    - pip._internal.metadata.select_backend
    - pip._internal.metadata._should_use_importlib_metadata
    - os.path.dirname
    - pip._internal.utils.misc.strtobool
    - module_name.lower
    - <builtin>.getattr
    - <builtin>.globals
    - typing.cast
    - contextlib.suppress
    - typing.cast.Environment.from_paths
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - vendor_txt_versions
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 82
    functionName: pip._internal.commands.debug.show_actual_vendor_versions
    functionSourceFile: pip._internal.commands.debug
    functionUses: 2
    functionsReached:
    - val.lower
    - pip._internal.metadata.get_environment
    - <builtin>.isinstance
    - <builtin>.__import__
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - module_name.lower
    - vendor_txt_versions.items
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.locals
    - pip._internal.commands.debug.get_module_from_module_name
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.globals
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._internal.commands.debug.get_vendor_version_from_module
    - pip._internal.metadata.select_backend
    - pip._vendor.packaging.version._parse_local_version
    - typing.cast
    - typing.cast.Environment.from_paths
    - pip._internal.utils.misc.strtobool
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - env.get_distribution
    - os.path.dirname
    - warnings.warn
    - logger.info
    - _legacy_version_replacement_map.get
    - <builtin>.getattr
    - pip._vendor.packaging.version._legacy_cmpkey
    - contextlib.suppress
    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: vendor_txt_versions.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 103
    functionName: pip._internal.commands.debug.show_vendor_versions
    functionSourceFile: pip._internal.commands.debug
    functionUses: 1
    functionsReached:
    - val.lower
    - pip._internal.metadata.get_environment
    - <builtin>.isinstance
    - pip._internal.commands.debug.show_actual_vendor_versions
    - <builtin>.__import__
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - module_name.lower
    - vendor_txt_versions.items
    - <builtin>.dict
    - pip._vendor.packaging.version.parse
    - part.startswith
    - version.lower
    - itertools.dropwhile
    - line.split
    - part.zfill
    - _legacy_version_component_re.split
    - <builtin>.locals
    - pip._internal.commands.debug.get_module_from_module_name
    - <builtin>.str
    - line.strip
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - <builtin>.globals
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - pip._internal.utils.logging.indent_log
    - <builtin>.list
    - pip._internal.commands.debug.get_vendor_version_from_module
    - f.readlines
    - pip._internal.metadata.select_backend
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.commands.debug.create_vendor_txt_map
    - typing.cast
    - typing.cast.Environment.from_paths
    - pip._internal.utils.misc.strtobool
    - parts.pop
    - pip._internal.utils.logging.get_indentation
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - env.get_distribution
    - os.path.dirname
    - warnings.warn
    - logger.info
    - _legacy_version_replacement_map.get
    - importlib.resources.open_text
    - <builtin>.getattr
    - pip._vendor.packaging.version._legacy_cmpkey
    - contextlib.suppress
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - options
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 111
    functionName: pip._internal.commands.debug.show_tags
    functionSourceFile: pip._internal.commands.debug
    functionUses: 1
    functionsReached:
    - formats.append
    - pip._vendor.packaging.tags._version_nodot
    - match.groups
    - supported.extend
    - pip._vendor.packaging._musllinux.platform_tags
    - <builtin>.str
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.utils.logging.indent_log
    - pip._vendor.packaging.tags._generic_platforms
    - pip._internal.models.target_python.TargetPython.__init__
    - os.confstr
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - stack.enter_context
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - abi.lower
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - seen.update
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - abis.insert
    - output.splitlines
    - pip._internal.utils.logging.get_indentation
    - struct.calcsize
    - warnings.warn
    - f.read
    - glibc_max_list.append
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - arches.append
    - pip._vendor.packaging.tags.interpreter_name
    - <builtin>.bool
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._internal.models.target_python.TargetPython.format_given
    - pip._vendor.packaging.tags._normalize_string
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._internal.models.target_python.TargetPython.get_sorted_tags
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - <builtin>.list
    - struct.unpack
    - pip._internal.cli.cmdoptions.make_target_python
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - platform.system
    - typing.cast
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - sysconfig.get_platform
    - <builtin>.int
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - <builtin>.open
    - <builtin>.getattr
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - operator.itemgetter
    - interpreter.lower
    - pip._internal.utils.misc.normalize_version_info
    - logger.debug
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - arch.partition
    - <builtin>.set
    - m.group
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - pip._vendor.packaging.tags._linux_platforms
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - logger.info
    - abis.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - config
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 141
    functionName: pip._internal.commands.debug.ca_bundle_info
    functionSourceFile: pip._internal.commands.debug
    functionUses: 1
    functionsReached:
    - pip._internal.configuration.Configuration.items
    - key.split
    - levels.remove
    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: key.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: levels.remove
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 167
    functionName: pip._internal.commands.debug.DebugCommand.add_options
    functionSourceFile: pip._internal.commands.debug
    functionUses: 0
    functionsReached:
    - pip._internal.cli.cmdoptions.add_target_python_options
    - pip._internal.configuration.Configuration._load_file
    - optparse.OptionParser.option_groups.pop
    - key.startswith
    - pip._internal.configuration.Configuration._load_environment_vars
    - name.lower
    - pip._internal.configuration.get_configuration_files
    - pip._vendor.platformdirs.site_config_dir
    - pip._internal.configuration.Configuration._construct_parser
    - pip._internal.configuration.Configuration._normalized_keys
    - parser.read
    - <builtin>.dict
    - os.environ.get
    - pip._internal.configuration.Configuration._load_config_files
    - pip._internal.utils.appdirs.site_config_dirs
    - optparse.OptionParser.add_option_group
    - pip._internal.configuration.Configuration.iter_config_files
    - optparse.OptionParser.option_groups.insert
    - pip._internal.utils.appdirs._macos_user_config_dir
    - pip._internal.utils.appdirs.user_config_dir
    - pip._internal.configuration.Configuration.get_environ_vars
    - locale.getpreferredencoding
    - os.path.join
    - os.environ.items
    - configparser.RawConfigParser
    - os.path.expanduser
    - typing.cast.verbose
    - dirval.split
    - pip._vendor.platformdirs.user_data_dir
    - parser.sections
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - os.path.isdir
    - pip._internal.configuration.Configuration.load
    - pip._internal.configuration._normalize_name
    - name.startswith
    - os.path.exists
    - pip._vendor.platformdirs.user_config_dir
    - config_files.items
    - parser.items
    - cmd_opts.add_option
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - typing.cast.debug
    - pip._vendor.platformdirs.site_data_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 16
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 172
    functionName: pip._internal.commands.debug.DebugCommand.run
    functionSourceFile: pip._internal.commands.debug
    functionUses: 0
    functionsReached:
    - levels.remove
    - formats.append
    - pip._internal.commands.debug.ca_bundle_info
    - pip._vendor.packaging.tags._version_nodot
    - <builtin>.dict
    - match.groups
    - supported.extend
    - itertools.dropwhile
    - <builtin>.locals
    - pip._vendor.packaging._musllinux.platform_tags
    - pip._internal.commands.debug.get_module_from_module_name
    - <builtin>.str
    - pip._internal.commands.debug.show_vendor_versions
    - locale.getpreferredencoding
    - pip._vendor.packaging.tags._py_interpreter_range
    - pip._vendor.packaging.tags._mac_arch
    - _manylinux.manylinux_compatible
    - <builtin>.tuple
    - pip._vendor.packaging._manylinux._get_elf_header
    - <builtin>.hash
    - pip._internal.utils.logging.indent_log
    - pip._vendor.packaging.tags._generic_platforms
    - pip._internal.models.target_python.TargetPython.__init__
    - os.confstr
    - pip._internal.metadata.select_backend
    - ctypes.CDLL
    - platform.mac_ver
    - string.replace
    - pip._vendor.packaging._manylinux._parse_glibc_version
    - pip._internal.utils.compatibility_tags._expand_allowed_platforms
    - typing.cast.Environment.from_paths
    - pip._internal.utils.compatibility_tags._mac_platforms
    - result.extend
    - subprocess.run
    - _osx_arch_pat.match
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - importlib.resources.files.joinpath
    - env.get_distribution
    - pip._vendor.packaging._musllinux._parse_ld_musl_from_elf
    - pip._internal.locations.base.get_major_minor_version
    - pip._vendor.packaging.tags._generic_abi
    - pip._vendor.packaging.tags.generic_tags
    - abi.lower
    - pip._vendor.packaging.tags.mac_platforms
    - pip._vendor.packaging.tags.compatible_tags
    - stack.enter_context
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.packaging.tags._mac_binary_formats
    - f.seek
    - formats.extend
    - version_string.split
    - pip._vendor.packaging._musllinux._get_musl_version
    - pip._internal.utils.misc.get_pip_version
    - part.startswith
    - pip._vendor.certifi.core.where
    - importlib.resources.as_file
    - line.strip
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack
    - parts.append
    - seen.update
    - os.path.join
    - pip._internal.commands.debug.show_sys_implementation
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - arch.startswith
    - pip._vendor.packaging._manylinux._have_compatible_abi
    - INTERPRETER_SHORT_NAMES.get
    - <builtin>.map
    - pip._vendor.packaging._musllinux._parse_musl_version
    - key.split
    - pip._internal.utils.compatibility_tags.version_info_to_nodot
    - os.path.abspath
    - abis.insert
    - output.splitlines
    - pip._internal.utils.logging.get_indentation
    - struct.calcsize
    - match.group
    - os.path.dirname
    - warnings.warn
    - f.read
    - pip._vendor.packaging.version._legacy_cmpkey
    - glibc_max_list.append
    - pip._internal.commands.debug.show_value
    - pip._vendor.packaging._musllinux._read_unpacked
    - <builtin>.range
    - <builtin>.isinstance
    - importlib.resources.path
    - arches.append
    - <builtin>.bool
    - <builtin>.__import__
    - pip._vendor.packaging.tags.interpreter_name
    - pip._internal.metadata._should_use_importlib_metadata
    - module_name.lower
    - pip._vendor.packaging.tags.cpython_tags
    - n.strip
    - pip._vendor.packaging._manylinux._glibc_version_string_ctypes
    - pip._internal.models.target_python.TargetPython.format_given
    - pip._vendor.packaging.tags._normalize_string
    - version.lower
    - os.environ.get
    - line.split
    - part.zfill
    - abis.remove
    - pip._vendor.packaging._manylinux._ELFFileHeader.__init__
    - pip._internal.models.target_python.TargetPython.get_sorted_tags
    - file.read
    - pip._vendor.packaging._manylinux._get_glibc_version
    - importlib.resources.files
    - <builtin>.list
    - struct.unpack
    - pip._internal.cli.cmdoptions.make_target_python
    - <builtin>.len
    - sysconfig.get_config_var
    - pip._vendor.packaging._manylinux._is_linux_i686
    - pip._vendor.packaging._manylinux._is_compatible
    - pip._internal.configuration.Configuration.items
    - importlib.resources.path.__enter__
    - typing.cast
    - pip._internal.utils.compatibility_tags._get_custom_interpreter
    - importlib.resources.as_file.__enter__
    - platform.system
    - pip._vendor.packaging._manylinux._is_linux_armhf
    - version_str.split
    - parts.pop
    - _local_version_separators.split
    - sysconfig.get_platform
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - part.isdigit
    - pip._vendor.packaging._manylinux._glibc_version_string_confstr
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - <builtin>.getattr
    - linux.split
    - pip._vendor.packaging._manylinux._glibc_version_string
    - contextlib.suppress
    - val.lower
    - pip._internal.metadata.get_environment
    - operator.itemgetter
    - pip._internal.commands.debug.show_actual_vendor_versions
    - interpreter.lower
    - pip._internal.utils.misc.normalize_version_info
    - logger.debug
    - vendor_txt_versions.items
    - sys.getfilesystemencoding
    - pip._internal.utils.compatibility_tags._custom_manylinux_platforms
    - pip._vendor.packaging._manylinux.platform_tags
    - pip._vendor.packaging.version.parse
    - pip._vendor.packaging.tags._abi3_applies
    - re.match
    - _legacy_version_component_re.split
    - pip._vendor.packaging.tags.platform_tags
    - pip._internal.utils.compatibility_tags._get_custom_platforms
    - os.fsdecode
    - letter.lower
    - arch.partition
    - <builtin>.set
    - m.group
    - pip._internal.commands.debug.show_tags
    - <builtin>.globals
    - linux.replace
    - pip._vendor.packaging.tags._get_config_var
    - platform.lower
    - pip._internal.commands.debug.get_vendor_version_from_module
    - sys.getdefaultencoding
    - pip._internal.utils.compatibility_tags._get_python_version
    - typing.NamedTuple.__init__
    - contextlib.ExitStack
    - f.readlines
    - pip._vendor.packaging.tags._linux_platforms
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.commands.debug.create_vendor_txt_map
    - pip._internal.utils.compatibility_tags.get_supported
    - pip._internal.utils.misc.strtobool
    - pip._vendor.packaging.version._parse_letter_version
    - pip._vendor.packaging.tags.interpreter_version
    - pip._vendor.packaging.tags._cpython_abis
    - <builtin>.reversed
    - pip._vendor.packaging.tags.Tag.__init__
    - version_str.decode
    - logger.info
    - importlib.resources.open_text
    - abis.append
    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: pip._internal.commands.check
    functionSourceFile: pip._internal.commands.check
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 23
    functionName: pip._internal.commands.check.CheckCommand.run
    functionSourceFile: pip._internal.commands.check
    functionUses: 0
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - missing_deps.add
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._internal.operations.check.check_package_set
    - format_str.format
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.misc.write_output
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - env.iter_installed_distributions
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.operations.check.warn_legacy_versions_and_specifiers
    - pip._internal.operations.check.check_install_conflicts.<lambda1>
    - package_set.items
    - pip._internal.metadata.get_default_environment
    - <builtin>.str
    - conflicting_deps.add
    - letter.lower
    - <builtin>.set
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - <builtin>.any
    - typing.NamedTuple.__init__
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.operations.check.create_package_set_from_installed
    - dist.iter_dependencies
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - req.marker.evaluate
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - _legacy_version_replacement_map.get
    - warnings.warn
    - logger.info
    - req.specifier.contains
    - <builtin>.getattr
    - pip._vendor.packaging.version._legacy_cmpkey
    - contextlib.suppress
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    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: pip._internal.commands.list
    functionSourceFile: pip._internal.commands.list
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 14
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 50
    functionName: pip._internal.commands.list.ListCommand.add_options
    functionSourceFile: pip._internal.commands.list
    functionUses: 0
    functionsReached:
    - optparse.OptionParser.option_groups.pop
    - pip._internal.cli.cmdoptions.make_option_group
    - optparse.OptionGroup.add_option
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - optparse.OptionGroup
    - optparse.OptionParser.option_groups.insert
    - optparse.OptionParser.add_option_group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - session
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 138
    functionName: pip._internal.commands.list.ListCommand._build_package_finder
    functionSourceFile: pip._internal.commands.list
    functionUses: 4
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.utils.misc._get_netloc
    - built_find_links.append
    - pip._internal.index.package_finder.PackageFinder.create
    - pip._internal.utils.misc.normalize_version_info
    - pip._internal.index.package_finder.PackageFinder.__init__
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.compat.has_tls
    - logger.debug
    - link.startswith
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - pip._internal.utils.misc._redact_netloc
    - itertools.chain
    - <builtin>.set
    - os.path.realpath
    - os.path.expanduser
    - pip._internal.utils.misc.split_auth_from_netloc
    - pip._internal.models.target_python.TargetPython.__init__
    - auth.split
    - pip._internal.models.format_control.FormatControl.__init__
    - <builtin>.len
    - <builtin>.map
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - typing.cast
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - pip._internal.index.collector.LinkCollector.create
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.models.search_scope.SearchScope.create
    - os.path.exists
    - os.path.normcase
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - pip._internal.index.collector.LinkCollector.__init__
    - urllib.parse.urlparse
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 157
    functionName: pip._internal.commands.list.ListCommand.run
    functionSourceFile: pip._internal.commands.list
    functionUses: 0
    functionsReached:
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.index.package_finder.PackageFinder.create
    - typing.cast.Environment.default
    - pip._internal.commands.list.ListCommand.iter_packages_latest_infos
    - link.startswith
    - pip._internal.network.session.user_agent
    - <builtin>.dict
    - pip._internal.utils.misc._redact_netloc
    - _canonicalize_regex.sub
    - <builtin>.str
    - itertools.chain
    - pip._internal.metadata.get_default_environment
    - index_urls.append
    - pip._internal.commands.list.ListCommand.output_package_listing
    - pip._internal.utils.misc.parse_netloc
    - <builtin>.tuple
    - os.path.realpath
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - os.path.expanduser
    - index_urls.extend
    - pip._internal.models.target_python.TargetPython.__init__
    - pip._internal.utils.misc.tabulate
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - rustc_output.split
    - os.confstr
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - <builtin>.zip
    - pip._internal.cli.cmdoptions.check_list_path_option
    - typing.cast.Environment.from_paths
    - header.extend
    - pip._internal.utils.misc.redact_auth_from_url
    - <builtin>.filter
    - urllib.parse.quote
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.network.session.PipSession.add_trusted_host
    - urllib.parse.urlparse
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - pip._internal.commands.list.format_for_columns
    - header.append
    - pip._internal.index.package_finder.PackageFinder.__init__
    - pip._internal.network.session.PipSession.__init__
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - pkg_strings.insert
    - data.setdefault
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - platform.python_implementation
    - pip._vendor.requests.sessions.Session.mount
    - os.path.join
    - pip._internal.utils.misc.split_auth_from_netloc
    - <builtin>.super
    - data.insert
    - skip.update
    - subprocess.check_output
    - <builtin>.map
    - pip._internal.network.session.looks_like_ci
    - dist.iter_dependencies
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - pip._internal.index.collector.LinkCollector.create
    - pip._internal.commands.list.ListCommand.get_uptodate
    - os.path.exists
    - os.path.normcase
    - <builtin>.max
    - pip._internal.utils.misc._get_netloc
    - pip._internal.utils.glibc.libc_ver
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._vendor.distro.name
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.compat.has_tls
    - os.environ.get
    - pip._internal.commands.list.ListCommand.output_package_listing_columns
    - rustc_output.startswith
    - os.path.isabs
    - platform.release
    - pip._internal.network.cache.SafeFileCache.__init__
    - collections.OrderedDict.pop
    - <builtin>.any
    - auth.split
    - pip._vendor.distro.version
    - pip._internal.commands.list.ListCommand.get_outdated
    - <builtin>.len
    - platform.machine
    - json.dumps
    - platform.system
    - typing.cast
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - platform.python_version
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - shutil.which
    - urllib.parse.urlsplit
    - pip._internal.utils.misc._transform_url
    - <builtin>.getattr
    - sys.platform.startswith
    - contextlib.suppress
    - pip._vendor.distro.codename
    - val.lower
    - urllib.parse.unquote
    - pip._internal.metadata.get_environment
    - built_find_links.append
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - pip._internal.utils.misc.normalize_version_info
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.misc.write_output
    - logger.debug
    - netloc.count
    - pip._internal.commands.list.ListCommand.get_not_required
    - data.append
    - pip._internal.utils.glibc.glibc_version_string
    - <builtin>.set
    - itertools.zip_longest
    - pip._internal.models.format_control.FormatControl.__init__
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc.build_url_from_netloc
    - pip._internal.commands.list.ListCommand._build_package_finder
    - pip._internal.utils.misc.strtobool
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - version_str.decode
    - pip._internal.models.search_scope.SearchScope.create
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - pip._internal.commands.list.format_for_json
    - logger.info
    - row.append
    - gnu_libc_version.split
    - pip._internal.index.collector.LinkCollector.__init__
    linkageType: pythonLinkage
    raised:
    - CommandError
    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: skip.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - packages
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 216
    functionName: pip._internal.commands.list.ListCommand.get_not_required
    functionSourceFile: pip._internal.commands.list
    functionUses: 1
    functionsReached:
    - _canonicalize_regex.sub
    - typing.cast
    - dist.iter_dependencies
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - packages
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 198
    functionName: pip._internal.commands.list.ListCommand.get_outdated
    functionSourceFile: pip._internal.commands.list
    functionUses: 1
    functionsReached:
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.index.package_finder.PackageFinder.create
    - typing.cast.Environment.default
    - pip._internal.commands.list.ListCommand.iter_packages_latest_infos
    - link.startswith
    - pip._internal.network.session.user_agent
    - <builtin>.dict
    - pip._internal.utils.misc._redact_netloc
    - <builtin>.str
    - itertools.chain
    - pip._internal.metadata.get_default_environment
    - index_urls.append
    - pip._internal.utils.misc.parse_netloc
    - os.path.realpath
    - os.path.expanduser
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - index_urls.extend
    - pip._internal.models.target_python.TargetPython.__init__
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - rustc_output.split
    - os.confstr
    - pip._internal.metadata.select_backend
    - ctypes.CDLL
    - platform.mac_ver
    - <builtin>.zip
    - pip._internal.utils.misc.redact_auth_from_url
    - <builtin>.filter
    - urllib.parse.quote
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.network.session.PipSession.add_trusted_host
    - urllib.parse.urlparse
    - logger.warning
    - pip._internal.index.package_finder.PackageFinder.__init__
    - pip._internal.network.session.PipSession.__init__
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - data.setdefault
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - platform.python_implementation
    - pip._vendor.requests.sessions.Session.mount
    - os.path.join
    - pip._internal.utils.misc.split_auth_from_netloc
    - <builtin>.super
    - subprocess.check_output
    - <builtin>.map
    - pip._internal.network.session.looks_like_ci
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - pip._internal.index.collector.LinkCollector.create
    - os.path.exists
    - os.path.normcase
    - pip._internal.utils.misc._get_netloc
    - pip._internal.utils.glibc.libc_ver
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._vendor.distro.name
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.compat.has_tls
    - os.environ.get
    - rustc_output.startswith
    - os.path.isabs
    - platform.release
    - pip._internal.network.cache.SafeFileCache.__init__
    - collections.OrderedDict.pop
    - <builtin>.any
    - auth.split
    - pip._vendor.distro.version
    - <builtin>.len
    - platform.machine
    - json.dumps
    - platform.system
    - typing.cast
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - platform.python_version
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - shutil.which
    - urllib.parse.urlsplit
    - pip._internal.utils.misc._transform_url
    - <builtin>.getattr
    - sys.platform.startswith
    - contextlib.suppress
    - pip._vendor.distro.codename
    - urllib.parse.unquote
    - val.lower
    - built_find_links.append
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - pip._internal.utils.misc.normalize_version_info
    - pip._internal.utils.misc.redact_netloc
    - logger.debug
    - netloc.count
    - pip._internal.utils.glibc.glibc_version_string
    - <builtin>.set
    - pip._internal.models.format_control.FormatControl.__init__
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc.build_url_from_netloc
    - pip._internal.commands.list.ListCommand._build_package_finder
    - pip._internal.utils.misc.strtobool
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - version_str.decode
    - pip._internal.models.search_scope.SearchScope.create
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - logger.info
    - gnu_libc_version.split
    - pip._internal.index.collector.LinkCollector.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - packages
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 207
    functionName: pip._internal.commands.list.ListCommand.get_uptodate
    functionSourceFile: pip._internal.commands.list
    functionUses: 1
    functionsReached:
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.index.package_finder.PackageFinder.create
    - typing.cast.Environment.default
    - pip._internal.commands.list.ListCommand.iter_packages_latest_infos
    - link.startswith
    - pip._internal.network.session.user_agent
    - <builtin>.dict
    - pip._internal.utils.misc._redact_netloc
    - <builtin>.str
    - itertools.chain
    - pip._internal.metadata.get_default_environment
    - index_urls.append
    - pip._internal.utils.misc.parse_netloc
    - os.path.realpath
    - os.path.expanduser
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - index_urls.extend
    - pip._internal.models.target_python.TargetPython.__init__
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - rustc_output.split
    - os.confstr
    - pip._internal.metadata.select_backend
    - ctypes.CDLL
    - platform.mac_ver
    - <builtin>.zip
    - pip._internal.utils.misc.redact_auth_from_url
    - <builtin>.filter
    - urllib.parse.quote
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.network.session.PipSession.add_trusted_host
    - urllib.parse.urlparse
    - logger.warning
    - pip._internal.index.package_finder.PackageFinder.__init__
    - pip._internal.network.session.PipSession.__init__
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - data.setdefault
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - platform.python_implementation
    - pip._vendor.requests.sessions.Session.mount
    - os.path.join
    - pip._internal.utils.misc.split_auth_from_netloc
    - <builtin>.super
    - subprocess.check_output
    - <builtin>.map
    - pip._internal.network.session.looks_like_ci
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - pip._internal.index.collector.LinkCollector.create
    - os.path.exists
    - os.path.normcase
    - pip._internal.utils.misc._get_netloc
    - pip._internal.utils.glibc.libc_ver
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._vendor.distro.name
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.compat.has_tls
    - os.environ.get
    - rustc_output.startswith
    - os.path.isabs
    - platform.release
    - pip._internal.network.cache.SafeFileCache.__init__
    - collections.OrderedDict.pop
    - <builtin>.any
    - auth.split
    - pip._vendor.distro.version
    - <builtin>.len
    - platform.machine
    - json.dumps
    - platform.system
    - typing.cast
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - platform.python_version
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - shutil.which
    - urllib.parse.urlsplit
    - pip._internal.utils.misc._transform_url
    - <builtin>.getattr
    - sys.platform.startswith
    - contextlib.suppress
    - pip._vendor.distro.codename
    - urllib.parse.unquote
    - val.lower
    - built_find_links.append
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - pip._internal.utils.misc.normalize_version_info
    - pip._internal.utils.misc.redact_netloc
    - logger.debug
    - netloc.count
    - pip._internal.utils.glibc.glibc_version_string
    - <builtin>.set
    - pip._internal.models.format_control.FormatControl.__init__
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc.build_url_from_netloc
    - pip._internal.commands.list.ListCommand._build_package_finder
    - pip._internal.utils.misc.strtobool
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - version_str.decode
    - pip._internal.models.search_scope.SearchScope.create
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - logger.info
    - gnu_libc_version.split
    - pip._internal.index.collector.LinkCollector.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - packages
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 268
    functionName: pip._internal.commands.list.ListCommand.output_package_listing
    functionSourceFile: pip._internal.commands.list
    functionUses: 1
    functionsReached:
    - pip._internal.commands.list.format_for_columns
    - header.append
    - pip._internal.utils.misc.write_output
    - pkg_strings.insert
    - pip._internal.commands.list.ListCommand.output_package_listing_columns
    - data.append
    - <builtin>.str
    - <builtin>.tuple
    - itertools.zip_longest
    - <builtin>.any
    - pip._internal.utils.misc.tabulate
    - data.insert
    - <builtin>.len
    - <builtin>.map
    - <builtin>.sorted
    - json.dumps
    - header.extend
    - pip._internal.commands.list.format_for_json
    - logger.info
    - row.append
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - packages
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 230
    functionName: pip._internal.commands.list.ListCommand.iter_packages_latest_infos
    functionSourceFile: pip._internal.commands.list
    functionUses: 3
    functionsReached:
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.index.package_finder.PackageFinder.create
    - typing.cast.Environment.default
    - link.startswith
    - pip._internal.network.session.user_agent
    - <builtin>.dict
    - pip._internal.utils.misc._redact_netloc
    - <builtin>.str
    - itertools.chain
    - pip._internal.metadata.get_default_environment
    - index_urls.append
    - pip._internal.utils.misc.parse_netloc
    - os.path.realpath
    - os.path.expanduser
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - index_urls.extend
    - pip._internal.models.target_python.TargetPython.__init__
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - rustc_output.split
    - os.confstr
    - pip._internal.metadata.select_backend
    - ctypes.CDLL
    - platform.mac_ver
    - <builtin>.zip
    - pip._internal.utils.misc.redact_auth_from_url
    - <builtin>.filter
    - urllib.parse.quote
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.network.session.PipSession.add_trusted_host
    - urllib.parse.urlparse
    - logger.warning
    - pip._internal.index.package_finder.PackageFinder.__init__
    - pip._internal.network.session.PipSession.__init__
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - data.setdefault
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - platform.python_implementation
    - pip._vendor.requests.sessions.Session.mount
    - os.path.join
    - pip._internal.utils.misc.split_auth_from_netloc
    - <builtin>.super
    - subprocess.check_output
    - <builtin>.map
    - pip._internal.network.session.looks_like_ci
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - pip._internal.index.collector.LinkCollector.create
    - os.path.exists
    - os.path.normcase
    - pip._internal.utils.misc._get_netloc
    - pip._internal.utils.glibc.libc_ver
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._vendor.distro.name
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.compat.has_tls
    - os.environ.get
    - rustc_output.startswith
    - os.path.isabs
    - platform.release
    - pip._internal.network.cache.SafeFileCache.__init__
    - collections.OrderedDict.pop
    - <builtin>.any
    - auth.split
    - pip._vendor.distro.version
    - <builtin>.len
    - platform.machine
    - json.dumps
    - platform.system
    - typing.cast
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - platform.python_version
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - shutil.which
    - urllib.parse.urlsplit
    - pip._internal.utils.misc._transform_url
    - <builtin>.getattr
    - sys.platform.startswith
    - contextlib.suppress
    - pip._vendor.distro.codename
    - urllib.parse.unquote
    - val.lower
    - built_find_links.append
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - pip._internal.utils.misc.normalize_version_info
    - pip._internal.utils.misc.redact_netloc
    - logger.debug
    - netloc.count
    - pip._internal.utils.glibc.glibc_version_string
    - <builtin>.set
    - pip._internal.models.format_control.FormatControl.__init__
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc.build_url_from_netloc
    - pip._internal.commands.list.ListCommand._build_package_finder
    - pip._internal.utils.misc.strtobool
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - version_str.decode
    - pip._internal.models.search_scope.SearchScope.create
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - logger.info
    - gnu_libc_version.split
    - pip._internal.index.collector.LinkCollector.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - dist
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 236
    functionName: pip._internal.commands.list.ListCommand.iter_packages_latest_infos.latest_info
    functionSourceFile: pip._internal.commands.list
    functionUses: 0
    functionsReached:
    - finder.find_all_candidates
    - evaluator.sort_best_candidate
    - finder.make_candidate_evaluator
    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: finder.find_all_candidates
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: finder.make_candidate_evaluator
    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: evaluator.sort_best_candidate
    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: pip._internal.commands.list.ListCommand.output_package_listing.<lambda1>
    functionSourceFile: pip._internal.commands.list
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 11
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - pkgs
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 306
    functionName: pip._internal.commands.list.format_for_columns
    functionSourceFile: pip._internal.commands.list
    functionUses: 2
    functionsReached:
    - header.extend
    - <builtin>.any
    - <builtin>.str
    - header.append
    - row.append
    - data.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - data
    - header
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 289
    functionName: pip._internal.commands.list.ListCommand.output_package_listing_columns
    functionSourceFile: pip._internal.commands.list
    functionUses: 2
    functionsReached:
    - pip._internal.utils.misc.tabulate
    - data.insert
    - <builtin>.len
    - <builtin>.map
    - pip._internal.utils.misc.write_output
    - logger.info
    - pkg_strings.insert
    - <builtin>.tuple
    - <builtin>.max
    - itertools.zip_longest
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - packages
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 351
    functionName: pip._internal.commands.list.format_for_json
    functionSourceFile: pip._internal.commands.list
    functionUses: 2
    functionsReached:
    - json.dumps
    - data.append
    - <builtin>.str
    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: data.insert
    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: pkg_strings.insert
    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: header.extend
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.commands.freeze
    functionSourceFile: pip._internal.commands.freeze
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 12
    functionName: pip._internal.commands.freeze._should_suppress_build_backends
    functionSourceFile: pip._internal.commands.freeze
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 16
    functionName: pip._internal.commands.freeze._dev_pkgs
    functionSourceFile: pip._internal.commands.freeze
    functionUses: 2
    functionsReached:
    - pip._internal.commands.freeze._should_suppress_build_backends
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 8
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 36
    functionName: pip._internal.commands.freeze.FreezeCommand.add_options
    functionSourceFile: pip._internal.commands.freeze
    functionUses: 0
    functionsReached:
    - optparse.OptionParser.option_groups.pop
    - pip._internal.commands.freeze._dev_pkgs
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - pip._internal.commands.freeze._should_suppress_build_backends
    - optparse.OptionParser.option_groups.insert
    - optparse.OptionParser.add_option_group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 88
    functionName: pip._internal.commands.freeze.FreezeCommand.run
    functionSourceFile: pip._internal.commands.freeze
    functionUses: 0
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.commands.freeze._dev_pkgs
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - <builtin>.hash
    - pip._internal.operations.freeze._format_as_name_version
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - os.path.normpath
    - pip._internal.cli.cmdoptions.check_list_path_option
    - typing.cast.Environment.from_paths
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - vcs_backend.get_src_requirement
    - pip._internal.operations.freeze.FrozenRequirement.__init__
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_dir
    - urllib.parse.urljoin
    - abi.lower
    - urllib.parse.urlparse
    - pip._internal.req.constructors._looks_like_path
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - sys.stdout.write
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - pip._internal.commands.freeze._should_suppress_build_backends
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - extras.lower
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.packaging.version._parse_version_parts
    - part.lower
    - <builtin>.super
    - skip.update
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - os.path.isdir
    - os.path.abspath
    - name.startswith
    - match.group
    - os.path.normcase
    - os.path.exists
    - pip._vendor.packaging.markers.Marker.__init__
    - warnings.warn
    - <builtin>.max
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - pip._internal.metadata._should_use_importlib_metadata
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._internal.operations.freeze.FrozenRequirement.from_dist
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - part.zfill
    - collections.defaultdict
    - pip._internal.utils.direct_url_helpers.direct_url_as_pep440_direct_reference
    - fragments.append
    - line.rstrip
    - name.split
    - url.lower
    - <builtin>.list
    - name.strip
    - <builtin>.any
    - pip._internal.models.link.Link._egg_fragment
    - emitted_options.add
    - markers_as_string.strip
    - <builtin>.len
    - os.path.isfile
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.operations.freeze._get_editable_info
    - pip._internal.utils.misc.is_installable_dir
    - vcs_backend.get_repository_root
    - typing.cast
    - spec_str.endswith
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - <builtin>.getattr
    - pip._internal.req.constructors.check_first_requirement_in_file
    - contextlib.suppress
    - <builtin>.type
    - val.lower
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.metadata.get_environment
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - direct_url.validate
    - logger.debug
    - <builtin>.frozenset
    - pip._vendor.packaging.version.parse
    - re.match
    - COMMENT_RE.sub
    - _legacy_version_component_re.split
    - req_files.items
    - letter.lower
    - url.split
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - pip._internal.operations.freeze.freeze
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - typing.NamedTuple.__init__
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - line.find
    - pip._internal.utils.misc.strtobool
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - installations.values
    - pip._internal.utils.misc.splitext
    - logger.info
    - pip._internal.req.constructors.parse_req_from_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 11
    IfCount: 11
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30ef642190>
    - <ast.Constant object at 0x7f30e8c66c10>
    - <ast.Constant object at 0x7f30e8c66be0>
    - <ast.Constant object at 0x7f30e8c66bb0>
    - <ast.Constant object at 0x7f30e8c66b80>
    - <ast.Constant object at 0x7f30e8c66b50>
    - <ast.Tuple object at 0x7f30e8c66b20>
    argNames:
    - requirement
    - local_only
    - user_only
    - paths
    - isolated
    - exclude_editable
    - skip
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 26
    functionName: pip._internal.operations.freeze.freeze
    functionSourceFile: pip._internal.operations.freeze
    functionUses: 1
    functionsReached:
    - pip._internal.models.link.Link.__init__
    - pip._internal.req.constructors._get_url_from_path
    - re.search
    - pip._internal.utils.urls.path_to_url
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - match.groups
    - itertools.dropwhile
    - _canonicalize_regex.sub
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - <builtin>.str
    - <builtin>.tuple
    - s.strip
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - <builtin>.hash
    - pip._internal.operations.freeze._format_as_name_version
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - os.path.normpath
    - typing.cast.Environment.from_paths
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - vcs_backend.get_src_requirement
    - pip._internal.operations.freeze.FrozenRequirement.__init__
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_dir
    - urllib.parse.urljoin
    - abi.lower
    - urllib.parse.urlparse
    - pip._internal.req.constructors._looks_like_path
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.req.constructors.install_req_from_line
    - wheel_info.group
    - part.startswith
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - pip._internal.req.req_install.InstallRequirement.__init__
    - line.strip
    - extras.lower
    - parts.append
    - pip._internal.req.constructors.convert_extras
    - os.path.join
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - pip._vendor.packaging.version._parse_version_parts
    - part.lower
    - <builtin>.super
    - url_no_extras.lower
    - urllib.parse.urlunparse
    - os.path.isdir
    - os.path.abspath
    - name.startswith
    - match.group
    - os.path.normcase
    - os.path.exists
    - pip._vendor.packaging.markers.Marker.__init__
    - warnings.warn
    - <builtin>.max
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - pip._internal.metadata._should_use_importlib_metadata
    - link_hash.as_dict
    - pip._vendor.packaging.requirements.Requirement.__init__
    - pip._internal.operations.freeze.FrozenRequirement.from_dist
    - pip._internal.req.constructors.parse_editable
    - version.lower
    - part.zfill
    - collections.defaultdict
    - pip._internal.utils.direct_url_helpers.direct_url_as_pep440_direct_reference
    - fragments.append
    - line.rstrip
    - name.split
    - url.lower
    - <builtin>.list
    - name.strip
    - <builtin>.any
    - pip._internal.models.link.Link._egg_fragment
    - emitted_options.add
    - markers_as_string.strip
    - <builtin>.len
    - os.path.isfile
    - pip._internal.utils.packaging.get_requirement
    - pip._internal.operations.freeze._get_editable_info
    - pip._internal.utils.misc.is_installable_dir
    - vcs_backend.get_repository_root
    - typing.cast
    - spec_str.endswith
    - parts.pop
    - req.extras.asList
    - urllib.request.pathname2url
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.int
    - urllib.parse.urlsplit
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.open
    - specifiers.split
    - <builtin>.getattr
    - pip._internal.req.constructors.check_first_requirement_in_file
    - contextlib.suppress
    - <builtin>.type
    - val.lower
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.metadata.get_environment
    - interpreter.lower
    - posixpath.splitext
    - format_str.format
    - direct_url.validate
    - logger.debug
    - <builtin>.frozenset
    - pip._vendor.packaging.version.parse
    - re.match
    - COMMENT_RE.sub
    - _legacy_version_component_re.split
    - req_files.items
    - letter.lower
    - url.split
    - <builtin>.set
    - m.group
    - line.endswith
    - pip._internal.req.constructors.install_req_from_editable
    - platform.lower
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - typing.NamedTuple.__init__
    - pip._internal.req.constructors._strip_extras
    - pip._internal.utils.deprecation.deprecated
    - pip._vendor.packaging.version._parse_local_version
    - <builtin>.next
    - line.find
    - pip._internal.utils.misc.strtobool
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - installations.values
    - pip._internal.utils.misc.splitext
    - logger.info
    - pip._internal.req.constructors.parse_req_from_line
    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: pip._internal.operations.freeze
    functionSourceFile: pip._internal.operations.freeze
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 235
    functionName: pip._internal.operations.freeze.FrozenRequirement.from_dist
    functionSourceFile: pip._internal.operations.freeze
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - direct_url.validate
    - logger.debug
    - _canonicalize_regex.sub
    - pip._internal.utils.direct_url_helpers.direct_url_as_pep440_direct_reference
    - fragments.append
    - pip._internal.operations.freeze._format_as_name_version
    - typing.NamedTuple.__init__
    - pip._internal.operations.freeze._get_editable_info
    - <builtin>.type
    - os.path.abspath
    - vcs_backend.get_repository_root
    - typing.cast
    - vcs_backend.get_src_requirement
    - pip._internal.operations.freeze.FrozenRequirement.__init__
    - os.path.normcase
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_dir
    - <builtin>.max
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    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: emitted_options.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req_files.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: installations.values
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.operations.freeze.freeze.<lambda1>
    functionSourceFile: pip._internal.operations.freeze
    functionUses: 0
    functionsReached:
    - x.name.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: x.name.lower
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - dist
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 147
    functionName: pip._internal.operations.freeze._format_as_name_version
    functionSourceFile: pip._internal.operations.freeze
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - dist
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 154
    functionName: pip._internal.operations.freeze._get_editable_info
    functionSourceFile: pip._internal.operations.freeze
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - vcs_backend.get_src_requirement
    - typing.NamedTuple.__init__
    - vcs_backend.get_repository_root
    - os.path.normcase
    - logger.debug
    - pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_dir
    - os.path.abspath
    - <builtin>.max
    - logger.warning
    - pip._internal.operations.freeze._format_as_name_version
    - <builtin>.type
    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: vcs_backend.get_src_requirement
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Tuple object at 0x7f30c8d15370>
    argNames:
    - self
    - name
    - req
    - editable
    - comments
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 221
    functionName: pip._internal.operations.freeze.FrozenRequirement.__init__
    functionSourceFile: pip._internal.operations.freeze
    functionUses: 3
    functionsReached:
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 251
    functionName: pip._internal.operations.freeze.FrozenRequirement.__str__
    functionSourceFile: pip._internal.operations.freeze
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.commands.show
    functionSourceFile: pip._internal.commands.show
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 26
    functionName: pip._internal.commands.show.ShowCommand.add_options
    functionSourceFile: pip._internal.commands.show
    functionUses: 0
    functionsReached:
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - optparse.OptionParser.add_option_group
    - optparse.OptionParser.option_groups.insert
    - optparse.OptionParser.option_groups.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 38
    functionName: pip._internal.commands.show.ShowCommand.run
    functionSourceFile: pip._internal.commands.show
    functionUses: 0
    functionsReached:
    - val.lower
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._internal.commands.show.search_packages_info
    - dist.iter_declared_entries
    - pip._internal.commands.show.print_results
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.misc.write_output
    - _canonicalize_regex.sub
    - pip._internal.metadata.get_default_environment
    - <builtin>.str
    - metadata.get
    - line.strip
    - <builtin>.enumerate
    - metadata.get_all
    - entry.strip
    - installed.values
    - env.iter_all_distributions
    - pip._internal.commands.show.search_packages_info._get_requiring_packages
    - dist.read_text
    - typing.NamedTuple.__init__
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - <builtin>.zip
    - dist.iter_dependencies
    - entry_points_text.splitlines
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - logger.info
    - <builtin>.getattr
    - contextlib.suppress
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - query
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 72
    functionName: pip._internal.commands.show.search_packages_info
    functionSourceFile: pip._internal.commands.show
    functionUses: 1
    functionsReached:
    - val.lower
    - typing.cast.Environment.default
    - <builtin>.bool
    - dist.iter_declared_entries
    - pip._internal.metadata._should_use_importlib_metadata
    - _canonicalize_regex.sub
    - <builtin>.str
    - pip._internal.metadata.get_default_environment
    - metadata.get
    - metadata.get_all
    - installed.values
    - env.iter_all_distributions
    - pip._internal.commands.show.search_packages_info._get_requiring_packages
    - dist.read_text
    - typing.NamedTuple.__init__
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - <builtin>.zip
    - dist.iter_dependencies
    - entry_points_text.splitlines
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - <builtin>.getattr
    - contextlib.suppress
    - logger.warning
    - pip._vendor.packaging.utils.canonicalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 24
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - distributions
    - list_files
    - verbose
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 145
    functionName: pip._internal.commands.show.print_results
    functionSourceFile: pip._internal.commands.show
    functionUses: 1
    functionsReached:
    - line.strip
    - <builtin>.enumerate
    - pip._internal.utils.misc.write_output
    - logger.info
    - entry.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: env.iter_all_distributions
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - current_dist
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 89
    functionName: pip._internal.commands.show.search_packages_info._get_requiring_packages
    functionSourceFile: pip._internal.commands.show
    functionUses: 2
    functionsReached:
    - installed.values
    - dist.iter_dependencies
    - typing.cast
    - _canonicalize_regex.sub
    - pip._vendor.packaging.utils.canonicalize_name
    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: entry_points_text.splitlines
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: metadata.get_all
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entry.strip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.commands.search
    functionSourceFile: pip._internal.commands.search
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 40
    functionName: pip._internal.commands.search.SearchCommand.add_options
    functionSourceFile: pip._internal.commands.search
    functionUses: 0
    functionsReached:
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - optparse.OptionParser.add_option_group
    - optparse.OptionParser.option_groups.insert
    - optparse.OptionParser.option_groups.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 52
    functionName: pip._internal.commands.search.SearchCommand.run
    functionSourceFile: pip._internal.commands.search
    functionUses: 0
    functionsReached:
    - typing.cast.Environment.default
    - pip._internal.network.xmlrpc.PipXmlrpcTransport.__init__
    - pip._internal.network.session.user_agent
    - <builtin>.dict
    - itertools.dropwhile
    - contextlib.ExitStack.enter_context
    - pip._internal.metadata.get_default_environment
    - <builtin>.str
    - pip._internal.cli.command_context.CommandContextMixIn.enter_context
    - index_urls.append
    - pip._internal.utils.misc.parse_netloc
    - <builtin>.tuple
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - pip._internal.utils.logging.indent_log
    - index_urls.extend
    - rustc_output.split
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - os.confstr
    - pip._internal.metadata.select_backend
    - ctypes.CDLL
    - platform.mac_ver
    - <builtin>.zip
    - packages.values
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - env.get_distribution
    - collections.OrderedDict
    - <builtin>.filter
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.network.session.PipSession.add_trusted_host
    - urllib.parse.urlparse
    - logger.warning
    - shutil.get_terminal_size
    - pip._internal.network.session.PipSession.__init__
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - hit.get
    - data.setdefault
    - part.startswith
    - platform.python_implementation
    - pip._vendor.requests.sessions.Session.mount
    - parts.append
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.super
    - subprocess.check_output
    - pip._internal.network.session.looks_like_ci
    - pip._internal.utils.logging.get_indentation
    - match.group
    - warnings.warn
    - <builtin>.max
    - pip._vendor.packaging.version._legacy_cmpkey
    - <builtin>.isinstance
    - xmlrpc.client.ServerProxy
    - pip._internal.utils.glibc.libc_ver
    - <builtin>.bool
    - pip._vendor.distro.name
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.compat.has_tls
    - pip._internal.commands.search.transform_hits
    - version.lower
    - os.environ.get
    - part.zfill
    - rustc_output.startswith
    - pip._internal.commands.search.print_dist_installation_info
    - os.path.isabs
    - platform.release
    - pip._internal.network.cache.SafeFileCache.__init__
    - <builtin>.list
    - collections.OrderedDict.pop
    - <builtin>.any
    - sys.stdout.isatty
    - pip._vendor.distro.version
    - <builtin>.len
    - pip._internal.commands.search.print_results
    - platform.machine
    - json.dumps
    - platform.system
    - typing.cast
    - platform.python_version
    - parts.pop
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._internal.commands.search.highest_version
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - shutil.which
    - <builtin>.int
    - part.isdigit
    - _legacy_version_replacement_map.get
    - <builtin>.getattr
    - sys.platform.startswith
    - contextlib.suppress
    - pip._vendor.distro.codename
    - val.lower
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - pip._internal.cli.req_command.SessionCommandMixin.get_default_session
    - pip._internal.utils.misc.write_output
    - netloc.count
    - textwrap.wrap
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - pip._internal.utils.glibc.glibc_version_string
    - letter.lower
    - pypi.search
    - pip._vendor.packaging.version._parse_local_version
    - packages.keys
    - pip._internal.utils.misc.build_url_from_netloc
    - pip._internal.utils.misc.strtobool
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._internal.commands.search.SearchCommand.search
    - version_str.decode
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - logger.info
    - gnu_libc_version.split
    linkageType: pythonLinkage
    raised:
    - CommandError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - query
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 68
    functionName: pip._internal.commands.search.SearchCommand.search
    functionSourceFile: pip._internal.commands.search
    functionUses: 1
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - pip._internal.cli.req_command.SessionCommandMixin.get_default_session
    - xmlrpc.client.ServerProxy
    - pip._internal.utils.glibc.libc_ver
    - typing.cast.Environment.default
    - pip._vendor.distro.name
    - pip._internal.network.session.PipSession.__init__
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.network.xmlrpc.PipXmlrpcTransport.__init__
    - pip._internal.utils.compat.has_tls
    - netloc.count
    - <builtin>.bool
    - gnu_libc_version.split
    - data.setdefault
    - pip._internal.network.session.user_agent
    - <builtin>.dict
    - os.environ.get
    - contextlib.ExitStack.enter_context
    - pip._internal.utils.glibc.glibc_version_string
    - <builtin>.str
    - pip._internal.metadata.get_default_environment
    - pip._vendor.requests.sessions.Session.mount
    - pip._internal.cli.command_context.CommandContextMixIn.enter_context
    - platform.python_implementation
    - index_urls.append
    - rustc_output.startswith
    - pip._internal.utils.misc.parse_netloc
    - pip._vendor.distro.codename
    - os.path.isabs
    - platform.release
    - os.path.join
    - pip._internal.network.cache.SafeFileCache.__init__
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - index_urls.extend
    - collections.OrderedDict.pop
    - <builtin>.super
    - rustc_output.split
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - <builtin>.any
    - os.confstr
    - pip._vendor.distro.version
    - pypi.search
    - <builtin>.len
    - subprocess.check_output
    - pip._internal.metadata.select_backend
    - ctypes.CDLL
    - platform.machine
    - platform.mac_ver
    - pip._internal.network.session.looks_like_ci
    - <builtin>.zip
    - pip._internal.utils.misc.build_url_from_netloc
    - json.dumps
    - platform.system
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - platform.python_version
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - shutil.which
    - version_str.decode
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - <builtin>.filter
    - logger.info
    - <builtin>.getattr
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.network.session.PipSession.add_trusted_host
    - sys.platform.startswith
    - urllib.parse.urlparse
    - contextlib.suppress
    - logger.warning
    linkageType: pythonLinkage
    raised:
    - CommandError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - hits
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 87
    functionName: pip._internal.commands.search.transform_hits
    functionSourceFile: pip._internal.commands.search
    functionUses: 1
    functionsReached:
    - pip._internal.commands.search.highest_version
    - packages.values
    - collections.OrderedDict
    - packages.keys
    - <builtin>.max
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a79d0>
    - <ast.Constant object at 0x7f30e26a7070>
    argNames:
    - hits
    - name_column_width
    - terminal_width
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 134
    functionName: pip._internal.commands.search.print_results
    functionSourceFile: pip._internal.commands.search
    functionUses: 1
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.misc.write_output
    - hit.get
    - textwrap.wrap
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.metadata.get_default_environment
    - <builtin>.str
    - letter.lower
    - pip._internal.commands.search.print_dist_installation_info
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._internal.utils.logging.indent_log
    - <builtin>.len
    - pip._internal.metadata.select_backend
    - pip._vendor.packaging.version._parse_local_version
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - pip._internal.utils.logging.get_indentation
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - pip._internal.commands.search.highest_version
    - pip._vendor.packaging.version._cmpkey
    - <builtin>.reversed
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - _local_version_separators.split
    - part.isdigit
    - match.group
    - env.get_distribution
    - _legacy_version_replacement_map.get
    - warnings.warn
    - logger.info
    - <builtin>.getattr
    - <builtin>.max
    - pip._vendor.packaging.version._legacy_cmpkey
    - contextlib.suppress
    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: xmlrpc.client.ServerProxy
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pypi.search
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: packages.keys
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - versions
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 172
    functionName: pip._internal.commands.search.highest_version
    functionSourceFile: pip._internal.commands.search
    functionUses: 3
    functionsReached:
    - <builtin>.max
    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: packages.values
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - name
    - latest
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 115
    functionName: pip._internal.commands.search.print_dist_installation_info
    functionSourceFile: pip._internal.commands.search
    functionUses: 3
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    - typing.cast.Environment.default
    - <builtin>.bool
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.misc.write_output
    - part.startswith
    - pip._vendor.packaging.version.parse
    - version.lower
    - itertools.dropwhile
    - part.zfill
    - _legacy_version_component_re.split
    - pip._internal.metadata.get_default_environment
    - <builtin>.str
    - letter.lower
    - parts.append
    - <builtin>.tuple
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - <builtin>.list
    - pip._internal.utils.logging.indent_log
    - pip._internal.metadata.select_backend
    - pip._vendor.packaging.version._parse_local_version
    - typing.cast
    - pip._internal.utils.misc.strtobool
    - pip._internal.utils.logging.get_indentation
    - parts.pop
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - pip._vendor.packaging.version._cmpkey
    - _local_version_separators.split
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - <builtin>.int
    - part.isdigit
    - match.group
    - env.get_distribution
    - _legacy_version_replacement_map.get
    - warnings.warn
    - logger.info
    - <builtin>.getattr
    - pip._vendor.packaging.version._legacy_cmpkey
    - contextlib.suppress
    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: hit.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: textwrap.wrap
    functionSourceFile: textwrap
    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: 1
    functionLinenumber: -1
    functionName: pip._internal.commands.uninstall
    functionSourceFile: pip._internal.commands.uninstall
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 40
    functionName: pip._internal.commands.uninstall.UninstallCommand.add_options
    functionSourceFile: pip._internal.commands.uninstall
    functionUses: 0
    functionsReached:
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - optparse.OptionParser.add_option_group
    - optparse.OptionParser.option_groups.insert
    - optparse.OptionParser.option_groups.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 64
    functionName: pip._internal.commands.uninstall.UninstallCommand.run
    functionSourceFile: pip._internal.commands.uninstall
    functionUses: 0
    functionsReached:
    - pip._internal.req.constructors._get_url_from_path
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - parser.get_default_values
    - optparse.OptionParser
    - pip._vendor.requests.models.PreparedRequest.copy
    - <builtin>.dict
    - parser.parse_args
    - string_network.split
    - os.path.samefile
    - index_urls.append
    - urllib.parse.urlparse.netloc.split
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - <builtin>.tuple
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - password.encode
    - output.pop
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - merged_setting.items
    - pip._internal.req.req_file.get_file_content
    - pip._internal.locations.get_bin_prefix
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - logger.log
    - scheme.lower
    - urllib.parse.urlparse._replace
    - urllib.parse.quote
    - collections.abc.MutableMapping.pop
    - urllib.parse.urljoin
    - abi.lower
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.decode
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - dist.iter_declared_entries
    - urllib.parse.urlunparse.split
    - base64.b64encode
    - pip._vendor.urllib3.filepost.choose_boundary
    - part.startswith
    - pip._internal.req.req_uninstall.uninstallation_paths
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - pip._internal.models.link.LinkHash.find_hash_url_fragment
    - no_proxy.replace
    - pip._internal.req.req_install.InstallRequirement.__init__
    - urllib.request.getproxies.get
    - pip._internal.locations._distutils.get_bin_prefix
    - platform.python_implementation
    - ZONE_ID_RE.search
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._internal.req.req_file.parse_requirements
    - urllib.parse.quote.upper
    - <builtin>.chr
    - pip._vendor.packaging.markers.Marker.__init__
    - pip._vendor.requests.sessions.merge_setting
    - f.read
    - cookie.value.startswith
    - pip._vendor.requests.utils.set_environ
    - <builtin>.max
    - pip._vendor.packaging.version._legacy_cmpkey
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - <builtin>.isinstance
    - validator.match
    - ENV_VAR_RE.findall
    - part.zfill
    - path.endswith
    - s.encode
    - collections.abc.MutableMapping.upper
    - pip._internal.req.req_file.handle_requirement_line
    - collections.OrderedDict.pop
    - pip._vendor.requests.cookies.merge_cookies
    - pip._internal.req.req_file.join_lines
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._internal.models.link.Link._egg_fragment
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - args.append
    - urllib.parse.urljoin.lower
    - request_hooks.get
    - history.insert
    - pip._vendor.requests.hooks.dispatch_hook
    - typing.cast
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - <builtin>.hex
    - parts.pop
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - _local_version_separators.split
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - pip._vendor.packaging.version._cmpkey
    - part.isdigit
    - options.features_enabled.extend
    - <builtin>.open
    - specifiers.split
    - pip._internal.req.constructors.check_first_requirement_in_file
    - val.lower
    - urllib.parse.unquote
    - result.groups
    - format_str.format
    - IPV4_RE.match
    - method.upper
    - re.match
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - authority.rpartition
    - kwargs.setdefault
    - pip._internal.utils.virtualenv.virtualenv_no_global
    - pip._internal.network.utils.raise_for_status
    - copy.copy
    - m.group
    - pip._internal.req.constructors.install_req_from_editable
    - pip._internal.locations.get_bin_user
    - platform.lower
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._internal.models.scheme.Scheme.__init__
    - hooks.items
    - pip._internal.utils.deprecation.deprecated
    - pip._internal.locations._log_context
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - pip._internal.req.req_file.RequirementsFileParser._parse_and_recurse
    - prefix.lower
    - http.cookiejar.Cookie
    - pip._internal.utils.filetypes.is_archive_file
    - pip._vendor.packaging.tags.Tag.__init__
    - pip._internal.req.req_file.get_line_parser
    - os.path.splitdrive
    - k.encode
    - collections.abc.MutableMapping.encode
    - typing.cast.Environment.default
    - sysconfig.get_paths
    - pip._internal.models.wheel.Wheel.__init__
    - parsed.add
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - socket.inet_ntoa
    - pip._internal.req.req_file.build_parser
    - variables.get
    - _canonicalize_regex.sub
    - SCHEME_RE.search
    - <builtin>.str
    - locale.getpreferredencoding
    - os.path.expanduser
    - <builtin>.hash
    - index_urls.extend
    - pip._internal.req.req_uninstall.UninstallPathSet.__init__
    - pip._vendor.requests.utils._validate_header_part
    - pip._vendor.packaging.specifiers._IndividualSpecifier.__init__
    - re.sub
    - os.confstr
    - pip._internal.metadata.select_backend
    - key.upper
    - ctypes.CDLL
    - platform.mac_ver
    - PERCENT_RE.subn
    - dist.iter_entry_points
    - urllib.request.getproxies
    - collections.OrderedDict
    - pip._vendor.urllib3.packages.six.b
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - os.path.split
    - urllib.parse.urlparse
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - uninstalled_pathset.remove
    - pip._internal.network.session.PipSession.__init__
    - wheel_info.group
    - pip._vendor.requests.models.Request.__init__
    - data.startswith
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - pip._internal.utils.egg_link._egg_link_names
    - pip._internal.req.req_file.preprocess
    - pip._internal.req.constructors.parse_req_from_line.with_source
    - pip._internal.vcs.versioncontrol.is_url
    - pip._vendor.packaging.version.Version.__init__
    - part.lower
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.requests.cookies.get_cookie_header
    - pip._vendor.requests.sessions.Session.get_adapter
    - pip._internal.req.req_file.get_line_parser.parse_line
    - <builtin>.iter
    - pip._internal.req.constructors.install_req_from_parsed_requirement
    - pip._internal.req.req_file.ignore_comments
    - pip._vendor.requests.utils.resolve_proxies
    - pip._internal.req.req_file.RequirementsFileParser.parse
    - proxies.get
    - urllib.parse.urlencode.seek
    - v.encode
    - pip._internal.utils.misc.check_externally_managed
    - pip._internal.utils.glibc.libc_ver
    - pip._vendor.requests.compat.MutableMapping.__init__
    - <builtin>.bool
    - pip._internal.req.constructors.parse_req_from_editable
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._vendor.packaging.requirements.Requirement.__init__
    - line.replace
    - pip._internal.locations._sysconfig._infer_prefix
    - HTTPError.__init__
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - pip._internal.locations._sysconfig._should_use_osx_framework_prefix
    - data.decode
    - new_line.append
    - hooks.get
    - pip._internal.utils.virtualenv._no_global_under_venv
    - name.strip
    - <builtin>.any
    - os.path.isfile
    - platform.machine
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - namespace_packages.splitlines
    - pip._vendor.requests.utils.super_len
    - <builtin>.int
    - pip._vendor.requests._internal_utils.to_native_string
    - pip._vendor.urllib3.util.url._normalize_host
    - request_param.make_multipart
    - _legacy_version_replacement_map.get
    - pip._vendor.requests.utils.get_environ_proxies
    - urllib.request.proxy_bypass
    - contextlib.suppress
    - result.append
    - urllib.parse.quote.seek
    - <builtin>.type
    - token.startswith
    - paths_to_remove._normalize_path_cached
    - pip._internal.cli.req_command.SessionCommandMixin.get_default_session
    - d.items
    - netloc.count
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - history.pop
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - pip._vendor.requests.auth._basic_auth_str
    - pip._internal.utils.misc.protect_pip_from_modification_on_windows
    - <builtin>.set
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - pip._internal.locations.base.change_root
    - <builtin>.next
    - line.find
    - pip._internal.req.req_file.RequirementsFileParser._parse_file
    - zone_id.startswith
    - info_location.endswith
    - version_str.decode
    - kwargs.get
    - pip._vendor.pyparsing.core.ParserElement.parseString
    - pip._internal.utils.misc.splitext
    - new_proxies.setdefault
    - urllib.parse.urljoin.tell
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - pip._internal.utils.virtualenv._running_under_venv
    - pip._internal.locations.base.is_osx_framework
    - os.urandom
    - pip._internal.models.link.Link.__init__
    - pathlib.Path
    - re.search
    - os.getuid
    - reqs_to_uninstall.values
    - pip._internal.req.constructors.parse_req_from_line._parse_req_string
    - base.lower
    - pip._internal.metadata.get_default_environment
    - byte.decode
    - pip._internal.locations._sysconfig.get_bin_prefix
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - urllib.parse.quote.tell
    - rustc_output.split
    - _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match
    - binascii.hexlify
    - os.path.normpath
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.parse.urljoin.seek
    - string_network.count
    - u_string.encode
    - pip._internal.req.req_file.RequirementsFileParser.__init__
    - os.path.basename
    - pip._internal.req.req_uninstall.UninstallPathSet.from_dist.iter_scripts_to_remove
    - <builtin>.filter
    - pip._internal.locations.base.get_major_minor_version
    - field.render_headers
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - pip._internal.utils.egg_link.egg_link_path_from_location
    - collections.abc.MutableMapping.update
    - typing.cast.debug
    - collections.abc.MutableMapping.__init__
    - urllib.parse.quote.lstrip
    - pip._vendor.packaging.utils.canonicalize_name
    - cls._hash_url_fragment_re.search
    - pip._internal.req.req_install.InstallRequirement.uninstall
    - pip._internal.req.constructors.deduce_helpful_msg
    - pip._internal.utils.virtualenv.running_under_virtualenv
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - paths_to_remove.add
    - http.cookiejar.CookieJar.add_cookie_header
    - pip._vendor.urllib3.util.url.parse_url
    - dist.iter_distutils_script_names
    - extras.lower
    - <builtin>.enumerate
    - pip._vendor.requests.utils.address_in_network
    - datetime.timedelta
    - parts.append
    - COMMENT_RE.match
    - pip._internal.req.constructors.convert_extras
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - path.startswith
    - url_no_extras.lower
    - output.insert
    - pip._internal.network.session.looks_like_ci
    - pip._internal.utils.misc.normalize_path
    - d.iteritems
    - new_jar.set_cookie
    - match.span
    - netrc.netrc.authenticators
    - pip._internal.cli.req_command.warn_if_run_as_root
    - os.path.dirname
    - urllib.parse.urlencode
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - <builtin>.range
    - pip._internal.req.req_uninstall.UninstallPathSet.from_dist
    - functools.lru_cache
    - pip._internal.req.req_file.handle_option_line
    - socket.inet_aton
    - io.BytesIO.getvalue
    - pip._vendor.distro.name
    - link_hash.as_dict
    - pip._internal.utils.compat.has_tls
    - pip._internal.req.req_file.expand_env_variables
    - version.lower
    - send_kwargs.update
    - os.environ.get
    - line.split
    - shlex.split
    - http.cookiejar.CookieJar.set_policy
    - pip._internal.req.req_file.ParsedLine.__init__
    - pip._vendor.requests.cookies.MockRequest.__init__
    - net.split
    - fh.readline
    - name.split
    - ENCODING_RE.search
    - platform.release
    - pip._internal.network.cache.SafeFileCache.__init__
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - pip._internal.req.req_file.handle_line
    - <builtin>.list
    - parsed_req.options.get
    - s.decode
    - pip._internal.utils.packaging.get_requirement
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - sysconfig.get_config_var
    - pip._vendor.requests.utils.check_header_validity
    - pip._internal.utils.misc.is_installable_dir
    - parser.add_option
    - uri_bytes.count
    - spec_str.endswith
    - http.cookiejar.CookieJar.extract_cookies
    - platform.python_version
    - pip._internal.req.req_uninstall.StashedUninstallPathSet.__init__
    - req.extras.asList
    - pip._internal.locations._warn_mismatched
    - urllib.request.pathname2url
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - urllib.parse.urlsplit
    - pip._internal.network.session.PipSession.request
    - collections.OrderedDict.values
    - pip._vendor.requests.cookies.create_cookie
    - dist.is_file
    - <builtin>.getattr
    - sys.platform.startswith
    - paths_to_remove.add_pth
    - pip._vendor.urllib3.filepost.iter_field_objects
    - http.cookiejar.CookieJar.__init__
    - data.split
    - interpreter.lower
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - logger.debug
    - urllib.parse.urlencode.fileno
    - output.append
    - COMMENT_RE.sub
    - pip._internal.utils.glibc.glibc_version_string
    - urllib.parse.urljoin.upper
    - netrc.netrc
    - letter.lower
    - hist.append
    - line.endswith
    - urllib.parse.urljoin.encode
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - os.getenv
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - uninstall_pathset.commit
    - new_fields.append
    - sys.getdefaultencoding
    - pip._internal.req.constructors._strip_extras
    - pip._vendor.packaging.version._parse_local_version
    - boundary.decode
    - find_links.append
    - pip._internal.utils.misc.build_url_from_netloc
    - fp.read
    - collections.abc.MutableMapping.lower
    - pip._internal.locations._sysconfig.get_scheme
    - pip._vendor.requests.utils.requote_uri
    - collections.namedtuple.__init__
    - pip._internal.models.search_scope.SearchScope.__init__
    - cookie.value.replace
    - pip._internal.utils.urls.path_to_url
    - h.isalnum
    - urllib.parse.urlparse.hostname.endswith
    - urllib.parse.quote.split
    - urllib.parse.quote.encode
    - path.split
    - pip._internal.network.session.user_agent
    - match.groups
    - itertools.dropwhile
    - pip._vendor.requests.utils.is_valid_cidr
    - urllib.parse.quote.startswith
    - contextlib.ExitStack.enter_context
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - pip._internal.cli.command_context.CommandContextMixIn.enter_context
    - pip._internal.utils.encoding.auto_decode
    - pip._internal.utils.misc.parse_netloc
    - collections.abc.MutableMapping.get
    - result.update
    - s.strip
    - os.path.realpath
    - pip._internal.vcs.versioncontrol.VcsSupport.__iter__
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - pip._vendor.requests.sessions.merge_hooks
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - pip._vendor.requests.sessions.Session.request
    - <builtin>.zip
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.requests.utils.should_bypass_proxies
    - session_hooks.get
    - adapter.send
    - pip._vendor.urllib3.fields.guess_content_type
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - content.splitlines
    - <builtin>.setattr
    - pip._internal.network.session.PipSession.add_trusted_host
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.req.constructors._looks_like_path
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - name.lower
    - pip._internal.req.constructors.install_req_from_line
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - data.setdefault
    - pip._vendor.requests.utils.dotted_netmask
    - urllib.request.getproxies.items
    - pip._vendor.packaging.specifiers.LegacySpecifier.__init__
    - encoded_component.extend
    - line.strip
    - pip._vendor.requests.sessions.Session.mount
    - urllib.parse.urljoin.split
    - pip._internal.utils.virtualenv._get_pyvenv_cfg_lines
    - DEFAULT_PORTS.get
    - os.path.join
    - pip._vendor.packaging.version._parse_version_parts
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.idna.encode
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - urllib.parse.urlunparse
    - subprocess.check_output
    - pip._internal.req.req_uninstall._script_names
    - os.path.isdir
    - collections.OrderedDict.items
    - os.path.abspath
    - resp.reason.decode
    - name.startswith
    - match.group
    - os.path.normcase
    - os.path.exists
    - warnings.warn
    - base64.b64encode.strip
    - <builtin>.bytearray
    - field.decode
    - pip._internal.req.constructors.RequirementParts.__init__
    - line.startswith
    - pip._internal.network.session.PipSession.update_index_urls
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - options.pop
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - os.fstat
    - pip._internal.req.constructors.parse_editable
    - url.lower
    - resp.close
    - pip._vendor.requests.models.PreparedRequest.prepare
    - rustc_output.startswith
    - os.path.isabs
    - pip._vendor.requests.utils.unquote_unreserved
    - markers_as_string.strip
    - pip._vendor.distro.version
    - <builtin>.len
    - pip._vendor.requests.utils.rewind_body
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._internal.locations._sysconfig._infer_user
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - platform.system
    - pip._internal.req.req_file.break_args_options
    - time.perf_counter
    - <builtin>.ord
    - typing.cast.info
    - splitstr.decode
    - shutil.which
    - finder.set_allow_all_prereleases
    - pip._internal.build_env.NoOpBuildEnvironment.__init__
    - sites.append
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.distro.codename
    - sysconfig.get_path
    - pip._internal.utils.urls.get_url_scheme
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - posixpath.splitext
    - <builtin>.frozenset
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - pip._vendor.packaging.version.parse
    - urllib.parse.urlparse.geturl
    - _legacy_version_component_re.split
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - url.split
    - pip._vendor.requests.cookies.MockResponse.__init__
    - pip._internal.locations._warn_if_mismatch
    - resp.raw.read
    - merged_setting.update
    - pip._vendor.requests.sessions.Session.get
    - pip._vendor.urllib3.packages.six.raise_from
    - IPV6_ADDRZ_RE.match
    - dist.read_text
    - pip._vendor.packaging.specifiers.SpecifierSet.__init__
    - pip._internal.locations._sysconfig._infer_home
    - pip._vendor.requests.models.PreparedRequest.__init__
    - cookie.value.endswith
    - finder.set_prefer_binary
    - pip._internal.utils.misc.strtobool
    - pip._internal.utils.virtualenv._no_global_under_legacy_virtualenv
    - pip._internal.utils.virtualenv._running_under_legacy_virtualenv
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - urllib.parse.urljoin.startswith
    - pip._vendor.packaging.markers._coerce_parse_result
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - pip._vendor.requests.sessions.Session.send
    - logger.info
    - pip._internal.req.req_file.ParsedRequirement.__init__
    - pip._internal.req.constructors.parse_req_from_line
    - gnu_libc_version.split
    - io.BytesIO
    linkageType: pythonLinkage
    raised:
    - InstallationError
    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: reqs_to_uninstall.values
    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: uninstall_pathset.commit
    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: 2
    functionLinenumber: -1
    functionName: pip._internal.commands.cache
    functionSourceFile: pip._internal.commands.cache
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - typing.cast
    - pip._internal.utils._log.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 39
    functionName: pip._internal.commands.cache.CacheCommand.add_options
    functionSourceFile: pip._internal.commands.cache
    functionUses: 0
    functionsReached:
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - optparse.OptionParser.add_option_group
    - optparse.OptionParser.option_groups.insert
    - optparse.OptionParser.option_groups.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 51
    functionName: pip._internal.commands.cache.CacheCommand.run
    functionSourceFile: pip._internal.commands.cache
    functionUses: 0
    functionsReached:
    - typing.cast.error
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 83
    functionName: pip._internal.commands.cache.CacheCommand.get_cache_dir
    functionSourceFile: pip._internal.commands.cache
    functionUses: 0
    functionsReached:
    - typing.cast.info
    linkageType: pythonLinkage
    raised:
    - CommandError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 89
    functionName: pip._internal.commands.cache.CacheCommand.get_cache_info
    functionSourceFile: pip._internal.commands.cache
    functionUses: 0
    functionsReached:
    - pip._internal.commands.cache.CacheCommand._find_wheels
    - textwrap.dedent
    - os.path.getsize
    - os.walk
    - pip._internal.utils.filesystem.find_files
    - os.path.join
    - <builtin>.len
    - os.path.islink
    - pip._internal.commands.cache.CacheCommand._find_http_files
    - pip._internal.utils.filesystem.format_directory_size
    - result.extend
    - typing.cast.info
    - fnmatch.filter
    - <builtin>.int
    - pip._internal.utils.filesystem.file_size
    - pip._internal.utils.misc.format_size
    - pip._internal.commands.cache.CacheCommand._cache_dir
    - pip._internal.utils.filesystem.directory_size
    - pip._internal.utils.filesystem.format_size
    linkageType: pythonLinkage
    raised:
    - CommandError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 197
    functionName: pip._internal.commands.cache.CacheCommand._find_http_files
    functionSourceFile: pip._internal.commands.cache
    functionUses: 3
    functionsReached:
    - result.extend
    - os.walk
    - fnmatch.filter
    - pip._internal.commands.cache.CacheCommand._cache_dir
    - pip._internal.utils.filesystem.find_files
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - pattern
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 204
    functionName: pip._internal.commands.cache.CacheCommand._find_wheels
    functionSourceFile: pip._internal.commands.cache
    functionUses: 4
    functionsReached:
    - result.extend
    - os.walk
    - fnmatch.filter
    - pip._internal.commands.cache.CacheCommand._cache_dir
    - pip._internal.utils.filesystem.find_files
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - subdir
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 194
    functionName: pip._internal.commands.cache.CacheCommand._cache_dir
    functionSourceFile: pip._internal.commands.cache
    functionUses: 6
    functionsReached:
    - 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: pip._internal.utils.filesystem.format_size
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 131
    functionName: pip._internal.commands.cache.CacheCommand.list_cache_items
    functionSourceFile: pip._internal.commands.cache
    functionUses: 0
    functionsReached:
    - pip._internal.commands.cache.CacheCommand._find_wheels
    - results.append
    - pip._internal.commands.cache.CacheCommand.format_for_human
    - os.path.getsize
    - os.walk
    - pip._internal.utils.filesystem.find_files
    - pip._internal.commands.cache.CacheCommand.format_for_abspath
    - os.path.join
    - pip._internal.utils.filesystem.format_file_size
    - <builtin>.len
    - os.path.islink
    - <builtin>.sorted
    - result.extend
    - typing.cast.info
    - fnmatch.filter
    - <builtin>.int
    - os.path.basename
    - pip._internal.utils.filesystem.file_size
    - pip._internal.utils.misc.format_size
    - pip._internal.commands.cache.CacheCommand._cache_dir
    linkageType: pythonLinkage
    raised:
    - CommandError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - files
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 146
    functionName: pip._internal.commands.cache.CacheCommand.format_for_human
    functionSourceFile: pip._internal.commands.cache
    functionUses: 1
    functionsReached:
    - typing.cast.info
    - results.append
    - <builtin>.int
    - os.path.basename
    - pip._internal.utils.filesystem.file_size
    - os.path.islink
    - <builtin>.sorted
    - pip._internal.utils.misc.format_size
    - os.path.getsize
    - pip._internal.utils.filesystem.format_file_size
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - files
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 159
    functionName: pip._internal.commands.cache.CacheCommand.format_for_abspath
    functionSourceFile: pip._internal.commands.cache
    functionUses: 1
    functionsReached:
    - typing.cast.info
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 163
    functionName: pip._internal.commands.cache.CacheCommand.remove_cache_items
    functionSourceFile: pip._internal.commands.cache
    functionUses: 1
    functionsReached:
    - pip._internal.commands.cache.CacheCommand._find_wheels
    - result.extend
    - os.walk
    - typing.cast.verbose
    - typing.cast.info
    - fnmatch.filter
    - typing.cast.warning
    - <builtin>.len
    - pip._internal.commands.cache.CacheCommand._cache_dir
    - pip._internal.utils.filesystem.find_files
    - pip._internal.commands.cache.CacheCommand._find_http_files
    - os.path.join
    - os.unlink
    linkageType: pythonLinkage
    raised:
    - CommandError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 188
    functionName: pip._internal.commands.cache.CacheCommand.purge_cache
    functionSourceFile: pip._internal.commands.cache
    functionUses: 0
    functionsReached:
    - pip._internal.commands.cache.CacheCommand._find_wheels
    - result.extend
    - os.walk
    - typing.cast.verbose
    - typing.cast.info
    - fnmatch.filter
    - typing.cast.warning
    - pip._internal.commands.cache.CacheCommand.remove_cache_items
    - <builtin>.len
    - pip._internal.commands.cache.CacheCommand._cache_dir
    - pip._internal.utils.filesystem.find_files
    - pip._internal.commands.cache.CacheCommand._find_http_files
    - os.path.join
    - os.unlink
    linkageType: pythonLinkage
    raised:
    - CommandError
    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: pip._internal.commands.configuration
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 58
    functionName: pip._internal.commands.configuration.ConfigurationCommand.add_options
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 0
    functionsReached:
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - optparse.OptionParser.add_option_group
    - optparse.OptionParser.option_groups.insert
    - optparse.OptionParser.option_groups.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 96
    functionName: pip._internal.commands.configuration.ConfigurationCommand.run
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 0
    functionsReached:
    - pip._internal.configuration.Configuration._load_file
    - key.startswith
    - pip._internal.configuration.Configuration._load_environment_vars
    - name.lower
    - pip._internal.configuration.get_configuration_files
    - pip._vendor.platformdirs.site_config_dir
    - pip._internal.configuration.Configuration._construct_parser
    - pip._internal.configuration.Configuration._normalized_keys
    - parser.read
    - <builtin>.dict
    - pip._internal.utils.appdirs.site_config_dirs
    - pip._internal.configuration.Configuration._load_config_files
    - os.environ.get
    - pip._internal.configuration.Configuration.iter_config_files
    - pip._internal.utils.appdirs._macos_user_config_dir
    - pip._internal.utils.appdirs.user_config_dir
    - pip._internal.configuration.Configuration.get_environ_vars
    - locale.getpreferredencoding
    - os.path.join
    - os.environ.items
    - configparser.RawConfigParser
    - os.path.expanduser
    - logger.error
    - <builtin>.super
    - <builtin>.any
    - typing.cast.verbose
    - dirval.split
    - <builtin>.len
    - pip._vendor.platformdirs.user_data_dir
    - <builtin>.sorted
    - parser.sections
    - os.path.isdir
    - pip._internal.configuration.Configuration.load
    - pip._internal.configuration._normalize_name
    - pip._internal.commands.configuration.ConfigurationCommand._determine_file
    - name.startswith
    - os.path.exists
    - pip._internal.configuration.Configuration.__init__
    - pip._vendor.platformdirs.user_config_dir
    - config_files.items
    - parser.items
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - typing.cast.debug
    - pip._vendor.platformdirs.site_data_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - need_value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 141
    functionName: pip._internal.commands.configuration.ConfigurationCommand._determine_file
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 1
    functionsReached:
    - <builtin>.any
    - pip._internal.utils.appdirs._macos_user_config_dir
    - dirval.split
    - pip._internal.utils.appdirs.user_config_dir
    - os.path.exists
    - <builtin>.len
    - pip._internal.configuration.get_configuration_files
    - pip._vendor.platformdirs.user_data_dir
    - pip._vendor.platformdirs.site_config_dir
    - pip._vendor.platformdirs.user_config_dir
    - os.path.join
    - os.path.isdir
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - os.path.expanduser
    - pip._internal.utils.appdirs.site_config_dirs
    - pip._vendor.platformdirs.site_data_dir
    linkageType: pythonLinkage
    raised:
    - PipError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 171
    functionName: pip._internal.commands.configuration.ConfigurationCommand.list_values
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 0
    functionsReached:
    - pip._internal.commands.configuration.ConfigurationCommand._get_n_args
    - os.path.basename
    - pip._internal.utils.misc.get_prog
    - <builtin>.len
    - <builtin>.sorted
    - pip._internal.utils.misc.write_output
    - logger.info
    - pip._internal.configuration.Configuration.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - args
    - example
    - n
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 247
    functionName: pip._internal.commands.configuration.ConfigurationCommand._get_n_args
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 5
    functionsReached:
    - pip._internal.utils.misc.get_prog
    - <builtin>.len
    - os.path.basename
    linkageType: pythonLinkage
    raised:
    - PipError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 177
    functionName: pip._internal.commands.configuration.ConfigurationCommand.get_name
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 0
    functionsReached:
    - pip._internal.commands.configuration.ConfigurationCommand._get_n_args
    - pip._internal.configuration.Configuration.get_value
    - os.path.basename
    - name.startswith
    - pip._internal.utils.misc.get_prog
    - name.split
    - <builtin>.len
    - pip._internal.configuration._disassemble_key
    - name.lower
    - pip._internal.utils.misc.write_output
    - logger.info
    - pip._internal.configuration._normalize_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 183
    functionName: pip._internal.commands.configuration.ConfigurationCommand.set_name_value
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 0
    functionsReached:
    - name.lower
    - parser.has_section
    - parser.set
    - pip._internal.configuration.Configuration._mark_as_modified
    - pip._internal.configuration.Configuration._ensure_have_load_only
    - name.split
    - pip._internal.configuration.Configuration.set_value
    - logger.exception
    - os.makedirs
    - pip._internal.commands.configuration.ConfigurationCommand._get_n_args
    - pip._internal.utils.misc.get_prog
    - <builtin>.len
    - pip._internal.commands.configuration.ConfigurationCommand._save_configuration
    - pip._internal.configuration._normalize_name
    - pip._internal.configuration.Configuration.save
    - typing.cast.info
    - parser.add_section
    - os.path.basename
    - name.startswith
    - parser.write
    - pip._internal.configuration._disassemble_key
    - os.path.dirname
    - <builtin>.open
    - typing.cast.debug
    - pip._internal.utils.misc.ensure_dir
    - pip._internal.configuration.Configuration._get_parser_to_modify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 261
    functionName: pip._internal.commands.configuration.ConfigurationCommand._save_configuration
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 2
    functionsReached:
    - pip._internal.configuration.Configuration._ensure_have_load_only
    - typing.cast.info
    - pip._internal.utils.misc.ensure_dir
    - parser.write
    - os.path.dirname
    - <builtin>.open
    - typing.cast.debug
    - logger.exception
    - pip._internal.configuration.Configuration.save
    - os.makedirs
    linkageType: pythonLinkage
    raised:
    - PipError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 189
    functionName: pip._internal.commands.configuration.ConfigurationCommand.unset_name
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 0
    functionsReached:
    - pip._internal.configuration.Configuration.unset_value
    - parser.remove_section
    - name.lower
    - parser.has_section
    - pip._internal.configuration.Configuration._mark_as_modified
    - pip._internal.configuration.Configuration._ensure_have_load_only
    - name.split
    - parser.remove_option
    - logger.exception
    - os.makedirs
    - pip._internal.commands.configuration.ConfigurationCommand._get_n_args
    - pip._internal.utils.misc.get_prog
    - <builtin>.len
    - pip._internal.commands.configuration.ConfigurationCommand._save_configuration
    - pip._internal.configuration._normalize_name
    - pip._internal.configuration.Configuration.save
    - typing.cast.info
    - os.path.basename
    - name.startswith
    - parser.write
    - pip._internal.configuration._disassemble_key
    - os.path.dirname
    - <builtin>.open
    - parser.items
    - typing.cast.debug
    - pip._internal.utils.misc.ensure_dir
    - pip._internal.configuration.Configuration._get_parser_to_modify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 6
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 195
    functionName: pip._internal.commands.configuration.ConfigurationCommand.list_config_values
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 0
    functionsReached:
    - key.startswith
    - pip._internal.configuration.get_configuration_files
    - pip._internal.utils.misc.write_output
    - pip._vendor.platformdirs.site_config_dir
    - pip._internal.utils.appdirs.site_config_dirs
    - os.environ.get
    - pip._internal.configuration.Configuration.iter_config_files
    - pip._internal.utils.appdirs._macos_user_config_dir
    - pip._internal.utils.appdirs.user_config_dir
    - pip._internal.configuration.Configuration.get_environ_vars
    - pip._internal.commands.configuration.ConfigurationCommand.print_config_file_values
    - os.path.join
    - os.environ.items
    - os.path.expanduser
    - pip._internal.utils.logging.indent_log
    - pip._internal.commands.configuration.ConfigurationCommand._get_n_args
    - dirval.split
    - pip._internal.configuration.Configuration.get_values_in_config
    - pip._internal.utils.misc.get_prog
    - <builtin>.len
    - pip._vendor.platformdirs.user_data_dir
    - key.upper
    - <builtin>.sorted
    - os.path.isdir
    - pip._internal.utils.logging.get_indentation
    - os.path.basename
    - os.path.exists
    - pip._vendor.platformdirs.user_config_dir
    - logger.info
    - <builtin>.getattr
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - pip._internal.commands.configuration.ConfigurationCommand.print_env_var_values
    - pip._vendor.platformdirs.site_data_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 217
    functionName: pip._internal.commands.configuration.ConfigurationCommand.print_env_var_values
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 1
    functionsReached:
    - pip._internal.configuration.Configuration.get_environ_vars
    - key.startswith
    - key.upper
    - <builtin>.sorted
    - pip._internal.utils.misc.write_output
    - logger.info
    - <builtin>.getattr
    - os.environ.items
    - pip._internal.utils.logging.indent_log
    - pip._internal.utils.logging.get_indentation
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - variant
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 211
    functionName: pip._internal.commands.configuration.ConfigurationCommand.print_config_file_values
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 1
    functionsReached:
    - pip._internal.configuration.Configuration.get_values_in_config
    - pip._internal.utils.misc.write_output
    - logger.info
    - <builtin>.getattr
    - pip._internal.utils.logging.indent_log
    - pip._internal.utils.logging.get_indentation
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 225
    functionName: pip._internal.commands.configuration.ConfigurationCommand.open_in_editor
    functionSourceFile: pip._internal.commands.configuration
    functionUses: 0
    functionsReached:
    - pip._internal.commands.configuration.ConfigurationCommand._determine_editor
    - pip._internal.configuration.Configuration.get_file_to_edit
    - subprocess.check_call
    - pip._internal.configuration.Configuration._get_parser_to_modify
    linkageType: pythonLinkage
    raised:
    - PipError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 272
    functionName: pip._internal.commands.configuration.ConfigurationCommand._determine_editor
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - PipError
    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: pip._internal.commands.download
    functionSourceFile: pip._internal.commands.download
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 20
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 38
    functionName: pip._internal.commands.download.DownloadCommand.add_options
    functionSourceFile: pip._internal.commands.download
    functionUses: 0
    functionsReached:
    - pip._internal.cli.cmdoptions.add_target_python_options
    - pip._internal.cli.cmdoptions.prefer_binary
    - optparse.OptionParser.option_groups.pop
    - pip._internal.models.format_control.FormatControl.__init__
    - pip._internal.cli.cmdoptions.make_option_group
    - pip._internal.cli.cmdoptions.no_binary
    - optparse.OptionGroup
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - <builtin>.set
    - optparse.Option
    - pip._internal.cli.cmdoptions.only_binary
    - cmd_opts.add_option
    - pip._internal.cli.cmdoptions.constraints
    - optparse.OptionGroup.add_option
    - optparse.OptionParser.option_groups.insert
    - pip._internal.cli.cmdoptions.requirements
    - optparse.OptionParser.add_option_group
    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: pip._internal.commands.download.DownloadCommand
    functionSourceFile: pip._internal.commands.download
    functionUses: 0
    functionsReached:
    - pip._internal.cli.req_command.with_cleanup
    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: downloaded.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.commands.index
    functionSourceFile: pip._internal.commands.index
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 7
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 32
    functionName: pip._internal.commands.index.IndexCommand.add_options
    functionSourceFile: pip._internal.commands.index
    functionUses: 0
    functionsReached:
    - pip._internal.cli.cmdoptions.add_target_python_options
    - optparse.OptionParser.option_groups.pop
    - pip._internal.models.format_control.FormatControl.__init__
    - pip._internal.cli.cmdoptions.make_option_group
    - pip._internal.cli.cmdoptions.no_binary
    - optparse.OptionGroup.add_option
    - <builtin>.set
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - optparse.Option
    - pip._internal.cli.cmdoptions.only_binary
    - cmd_opts.add_option
    - optparse.OptionGroup
    - optparse.OptionParser.option_groups.insert
    - optparse.OptionParser.add_option_group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: pip._internal.commands.index.IndexCommand.run
    functionSourceFile: pip._internal.commands.index
    functionUses: 0
    functionsReached:
    - logger.error
    - logger.warning
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f86caf40>
    - <ast.Constant object at 0x7f30f86caf70>
    argNames:
    - self
    - options
    - session
    - target_python
    - ignore_requires_python
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 78
    functionName: pip._internal.commands.index.IndexCommand._build_package_finder
    functionSourceFile: pip._internal.commands.index
    functionUses: 1
    functionsReached:
    - urllib.parse.unquote
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.utils.misc._get_netloc
    - built_find_links.append
    - pip._internal.index.package_finder.PackageFinder.create
    - pip._internal.utils.misc.normalize_version_info
    - pip._internal.index.package_finder.PackageFinder.__init__
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.compat.has_tls
    - logger.debug
    - link.startswith
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - pip._internal.utils.misc._redact_netloc
    - itertools.chain
    - <builtin>.set
    - os.path.realpath
    - os.path.expanduser
    - pip._internal.utils.misc.split_auth_from_netloc
    - pip._internal.models.target_python.TargetPython.__init__
    - auth.split
    - pip._internal.models.format_control.FormatControl.__init__
    - <builtin>.len
    - <builtin>.map
    - urllib.parse.urlunsplit
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - typing.cast
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - pip._internal.index.collector.LinkCollector.create
    - urllib.parse.urlsplit
    - pip._internal.utils.misc.redact_auth_from_url
    - pip._internal.models.search_scope.SearchScope.create
    - os.path.exists
    - os.path.normcase
    - urllib.parse.quote
    - pip._internal.utils.misc._transform_url
    - pip._internal.index.collector.LinkCollector.__init__
    - urllib.parse.urlparse
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 103
    functionName: pip._internal.commands.index.IndexCommand.get_available_package_versions
    functionSourceFile: pip._internal.commands.index
    functionUses: 0
    functionsReached:
    - pip._internal.models.search_scope.SearchScope.__init__
    - pip._internal.index.package_finder.PackageFinder.create
    - typing.cast.Environment.default
    - link.startswith
    - pip._internal.network.session.user_agent
    - <builtin>.dict
    - pip._internal.utils.misc._redact_netloc
    - itertools.dropwhile
    - <builtin>.str
    - pip._internal.metadata.get_default_environment
    - itertools.chain
    - index_urls.append
    - pip._internal.utils.misc.parse_netloc
    - <builtin>.tuple
    - os.path.realpath
    - os.path.expanduser
    - pip._internal.network.session._SSLContextAdapterMixin.__init__
    - pip._internal.utils.logging.indent_log
    - index_urls.extend
    - pip._internal.models.target_python.TargetPython.__init__
    - pip._vendor.requests.adapters.BaseAdapter.__init__
    - rustc_output.split
    - os.confstr
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - ctypes.CDLL
    - platform.mac_ver
    - <builtin>.zip
    - pip._vendor.packaging.version.LegacyVersion.__init__
    - pip._internal.utils.misc.redact_auth_from_url
    - env.get_distribution
    - <builtin>.filter
    - urllib.parse.quote
    - pip._internal.cli.req_command.SessionCommandMixin._build_session
    - pip._internal.network.session.PipSession.add_trusted_host
    - urllib.parse.urlparse
    - logger.warning
    - pip._internal.index.package_finder.PackageFinder.__init__
    - pip._internal.network.session.PipSession.__init__
    - pip._internal.utils.glibc.glibc_version_string_confstr
    - data.setdefault
    - pip._internal.models.selection_prefs.SelectionPreferences.__init__
    - part.startswith
    - finder.find_all_candidates
    - platform.python_implementation
    - pip._vendor.requests.sessions.Session.mount
    - parts.append
    - pip._vendor.packaging.version._parse_version_parts
    - os.path.join
    - pip._vendor.packaging.version.Version.__init__
    - pip._internal.utils.misc.split_auth_from_netloc
    - part.lower
    - <builtin>.super
    - subprocess.check_output
    - <builtin>.map
    - pip._internal.network.session.looks_like_ci
    - pip._internal.utils.misc.normalize_path
    - os.path.abspath
    - pip._internal.utils.logging.get_indentation
    - pip._internal.index.collector.LinkCollector.create
    - os.path.exists
    - os.path.normcase
    - match.group
    - warnings.warn
    - pip._vendor.packaging.version._legacy_cmpkey
    - pip._internal.utils.misc._get_netloc
    - pip._internal.utils.glibc.libc_ver
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._vendor.distro.name
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._internal.utils.compat.has_tls
    - version.lower
    - os.environ.get
    - part.zfill
    - rustc_output.startswith
    - pip._internal.commands.search.print_dist_installation_info
    - os.path.isabs
    - platform.release
    - pip._internal.network.cache.SafeFileCache.__init__
    - <builtin>.list
    - collections.OrderedDict.pop
    - <builtin>.any
    - pip._internal.cli.cmdoptions.make_target_python
    - auth.split
    - pip._vendor.distro.version
    - <builtin>.len
    - platform.machine
    - json.dumps
    - platform.system
    - typing.cast
    - pip._internal.index.package_finder.CandidatePreferences.__init__
    - platform.python_version
    - parts.pop
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - _local_version_separators.split
    - pip._vendor.packaging.version._cmpkey
    - shutil.which
    - <builtin>.int
    - urllib.parse.urlsplit
    - part.isdigit
    - _legacy_version_replacement_map.get
    - pip._internal.utils.misc._transform_url
    - <builtin>.getattr
    - sys.platform.startswith
    - contextlib.suppress
    - pip._vendor.distro.codename
    - val.lower
    - urllib.parse.unquote
    - built_find_links.append
    - pip._internal.cli.req_command._create_truststore_ssl_context
    - pip._internal.utils.misc.normalize_version_info
    - pip._internal.utils.misc.redact_netloc
    - pip._internal.utils.misc.write_output
    - logger.debug
    - netloc.count
    - pip._vendor.packaging.version.parse
    - _legacy_version_component_re.split
    - pip._internal.utils.glibc.glibc_version_string
    - letter.lower
    - pip._internal.commands.index.IndexCommand._build_package_finder
    - <builtin>.set
    - pip._internal.models.format_control.FormatControl.__init__
    - urllib.parse.urlunsplit
    - pip._vendor.packaging.version._parse_local_version
    - pip._internal.utils.misc.build_url_from_netloc
    - pip._internal.utils.misc.strtobool
    - pip._internal.cli.req_command.SessionCommandMixin._get_index_urls
    - pip._vendor.packaging.version._parse_letter_version
    - <builtin>.reversed
    - version_str.decode
    - pip._internal.models.search_scope.SearchScope.create
    - pip._internal.utils.glibc.glibc_version_string_ctypes
    - logger.info
    - gnu_libc_version.split
    - pip._internal.index.collector.LinkCollector.__init__
    linkageType: pythonLinkage
    raised:
    - CommandError
    - DistributionNotFound
    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: pip._internal.commands.inspect
    functionSourceFile: pip._internal.commands.inspect
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 28
    functionName: pip._internal.commands.inspect.InspectCommand.add_options
    functionSourceFile: pip._internal.commands.inspect
    functionUses: 0
    functionsReached:
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - optparse.OptionParser.add_option_group
    - optparse.OptionParser.option_groups.insert
    - optparse.OptionParser.option_groups.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 48
    functionName: pip._internal.commands.inspect.InspectCommand.run
    functionSourceFile: pip._internal.commands.inspect
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._internal.utils.urls.path_to_url
    - pip._vendor.rich.text.Text.__init__
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.containers.Lines.justify
    - pip._vendor.rich.pretty.Pretty.__init__
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - pip._internal.metadata.select_backend
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - os.path.normpath
    - pip._internal.cli.cmdoptions.check_list_path_option
    - pip._vendor.rich.cells.get_character_cell_size
    - typing.cast.Environment.from_paths
    - pip._vendor.rich.get_console
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - urllib.parse.urljoin
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - pip._vendor.rich.json.JSON.from_data
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - pip._vendor.packaging.markers.format_full_version
    - marshal.dumps
    - re.escape
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - platform.python_implementation
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - platform.version
    - pip._vendor.rich.cells.chop_cells
    - os.path.abspath
    - match.span
    - jupyter_lines.isdigit
    - pip._vendor.packaging.markers.default_environment
    - RE_COLOR.match
    - line.pad_right
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console.print_json
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._internal.metadata._should_use_importlib_metadata
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.print_json
    - ctypes.wintypes.DWORD
    - platform.release
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - platform.machine
    - pip._vendor.rich._windows.get_windows_console_features
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - json.dumps
    - platform.system
    - typing.cast
    - platform.python_version
    - <builtin>.ord
    - urllib.request.pathname2url
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - direct_url.to_dict
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich.json.JSON.__init__
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - contextlib.suppress
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - val.lower
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - pip._internal.metadata.get_environment
    - operator.itemgetter
    - plain_text.replace
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - json.loads
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - pip._internal.commands.inspect.InspectCommand._dist_to_dict
    - <builtin>.set
    - inspect.isclass
    - word_match.group
    - style_definition.split
    - variants.get
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - platform.python_version_tuple
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - <builtin>.next
    - pip._vendor.rich.console.Console._detect_color_system
    - cls.__new__
    - RE_HANDLER.match
    - pip._internal.utils.misc.strtobool
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 65
    functionName: pip._internal.commands.inspect.InspectCommand._dist_to_dict
    functionSourceFile: pip._internal.commands.inspect
    functionUses: 1
    functionsReached:
    - urllib.request.pathname2url
    - pip._internal.utils.urls.path_to_url
    - direct_url.to_dict
    - urllib.parse.urljoin
    - os.path.normpath
    - os.path.abspath
    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: direct_url.to_dict
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.commands.help
    functionSourceFile: pip._internal.commands.help
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 16
    functionName: pip._internal.commands.help.HelpCommand.run
    functionSourceFile: pip._internal.commands.help
    functionUses: 0
    functionsReached:
    - pip._internal.commands.create_command
    - pip._internal.commands.get_similar_commands
    - msg.append
    - importlib.import_module
    - difflib.get_close_matches
    - name.lower
    - <builtin>.getattr
    - commands_dict.keys
    - command.parser.print_help
    linkageType: pythonLinkage
    raised:
    - CommandError
    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: command.parser.print_help
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.commands.hash
    functionSourceFile: pip._internal.commands.hash
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 26
    functionName: pip._internal.commands.hash.HashCommand.add_options
    functionSourceFile: pip._internal.commands.hash
    functionUses: 0
    functionsReached:
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - optparse.OptionParser.add_option_group
    - optparse.OptionParser.option_groups.insert
    - optparse.OptionParser.option_groups.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 40
    functionName: pip._internal.commands.hash.HashCommand.run
    functionSourceFile: pip._internal.commands.hash
    functionUses: 0
    functionsReached:
    - hash.update
    - pip._internal.commands.hash._hash_of_file
    - pip._internal.utils.misc.write_output
    - hashlib.new
    - logger.info
    - <builtin>.open
    - file.read
    - pip._internal.utils.misc.read_chunks
    - optparse.OptionParser.print_usage
    - hash.hexdigest
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - algorithm
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 53
    functionName: pip._internal.commands.hash._hash_of_file
    functionSourceFile: pip._internal.commands.hash
    functionUses: 1
    functionsReached:
    - hash.update
    - hashlib.new
    - <builtin>.open
    - file.read
    - pip._internal.utils.misc.read_chunks
    - hash.hexdigest
    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: hash.hexdigest
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._internal.commands.wheel
    functionSourceFile: pip._internal.commands.wheel
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 23
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 44
    functionName: pip._internal.commands.wheel.WheelCommand.add_options
    functionSourceFile: pip._internal.commands.wheel
    functionUses: 0
    functionsReached:
    - pip._internal.cli.cmdoptions.prefer_binary
    - pip._internal.cli.cmdoptions.editable
    - optparse.OptionParser.option_groups.pop
    - pip._internal.models.format_control.FormatControl.__init__
    - pip._internal.cli.cmdoptions.make_option_group
    - pip._internal.cli.cmdoptions.no_binary
    - optparse.OptionGroup.add_option
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - <builtin>.set
    - optparse.Option
    - pip._internal.cli.cmdoptions.only_binary
    - pip._internal.cli.cmdoptions.constraints
    - optparse.OptionGroup
    - optparse.OptionParser.option_groups.insert
    - pip._internal.cli.cmdoptions.requirements
    - optparse.OptionParser.add_option_group
    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: pip._internal.commands.wheel.WheelCommand
    functionSourceFile: pip._internal.commands.wheel
    functionUses: 0
    functionsReached:
    - pip._internal.cli.req_command.with_cleanup
    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: reqs_to_build.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._internal.commands.completion
    functionSourceFile: pip._internal.commands.completion
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 80
    functionName: pip._internal.commands.completion.CompletionCommand.add_options
    functionSourceFile: pip._internal.commands.completion
    functionUses: 0
    functionsReached:
    - pip._internal.cli.parser.CustomOptionParser.insert_option_group
    - optparse.OptionParser.add_option_group
    - optparse.OptionParser.option_groups.insert
    - optparse.OptionParser.option_groups.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - options
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 116
    functionName: pip._internal.commands.completion.CompletionCommand.run
    functionSourceFile: pip._internal.commands.completion
    functionUses: 0
    functionsReached:
    - BASE_COMPLETION.format
    - sys.stderr.write
    - os.path.basename
    - pip._internal.utils.misc.get_prog
    - COMPLETION_SCRIPTS.get
    - <builtin>.sorted
    - COMPLETION_SCRIPTS.keys
    - <builtin>.print
    - textwrap.dedent
    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: COMPLETION_SCRIPTS.keys
    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: COMPLETION_SCRIPTS.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: BASE_COMPLETION.format
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 27
    IfCount: 16
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.six
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.exec
    - pip._vendor.six._LazyModule.__init__
    - struct.Struct
    - <builtin>.isinstance
    - operator.itemgetter
    - operator.methodcaller
    - operator.attrgetter
    - <builtin>.enumerate
    - pip._vendor.six.MovedModule.__init__
    - <builtin>.globals
    - sys._getframe
    - <builtin>.super
    - pip._vendor.six._SixMetaPathImporter.__init__
    - pip._vendor.six.exec_
    - <builtin>.len
    - sys.meta_path.append
    - pip._vendor.six.MovedAttribute.__init__
    - <builtin>.int
    - pip._vendor.six._SixMetaPathImporter._add_module
    - functools.partial
    - <builtin>.setattr
    - types.ModuleType.__init__
    - <builtin>.getattr
    - sys.platform.startswith
    - pip._vendor.six._add_doc
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 62
    functionName: pip._vendor.six.X.__len__
    functionSourceFile: pip._vendor.six
    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:
    - func
    - doc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 80
    functionName: pip._vendor.six._add_doc
    functionSourceFile: pip._vendor.six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 85
    functionName: pip._vendor.six._import_module
    functionSourceFile: pip._vendor.six
    functionUses: 4
    functionsReached:
    - <builtin>.__import__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 93
    functionName: pip._vendor.six._LazyDescr.__init__
    functionSourceFile: pip._vendor.six
    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
    - obj
    - tp
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 96
    functionName: pip._vendor.six._LazyDescr.__get__
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - pip._vendor.six.MovedAttribute._resolve
    - <builtin>.__import__
    - <builtin>.setattr
    - <builtin>.getattr
    - pip._vendor.six.MovedModule._resolve
    - pip._vendor.six._import_module
    - <builtin>.delattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 119
    functionName: pip._vendor.six.MovedModule._resolve
    functionSourceFile: pip._vendor.six
    functionUses: 2
    functionsReached:
    - <builtin>.__import__
    - pip._vendor.six._import_module
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 164
    functionName: pip._vendor.six.MovedAttribute._resolve
    functionSourceFile: pip._vendor.six
    functionUses: 1
    functionsReached:
    - <builtin>.__import__
    - <builtin>.getattr
    - pip._vendor.six._import_module
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f7c9ebb0>
    argNames:
    - self
    - name
    - old
    - new
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: pip._vendor.six.MovedModule.__init__
    functionSourceFile: pip._vendor.six
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - attr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 122
    functionName: pip._vendor.six.MovedModule.__getattr__
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.__import__
    - <builtin>.setattr
    - <builtin>.getattr
    - pip._vendor.six.MovedModule._resolve
    - pip._vendor.six._import_module
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 131
    functionName: pip._vendor.six._LazyModule.__init__
    functionSourceFile: pip._vendor.six
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 135
    functionName: pip._vendor.six._LazyModule.__dir__
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a8580>
    - <ast.Constant object at 0x7f30e26a8a60>
    argNames:
    - self
    - name
    - old_mod
    - new_mod
    - old_attr
    - new_attr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: pip._vendor.six.MovedAttribute.__init__
    functionSourceFile: pip._vendor.six
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - six_module_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 178
    functionName: pip._vendor.six._SixMetaPathImporter.__init__
    functionSourceFile: pip._vendor.six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - mod
    - fullnames
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 182
    functionName: pip._vendor.six._SixMetaPathImporter._add_module
    functionSourceFile: pip._vendor.six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fullname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 186
    functionName: pip._vendor.six._SixMetaPathImporter._get_module
    functionSourceFile: pip._vendor.six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b9fa0>
    argNames:
    - self
    - fullname
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 189
    functionName: pip._vendor.six._SixMetaPathImporter.find_module
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b9c70>
    argNames:
    - self
    - fullname
    - path
    - target
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 194
    functionName: pip._vendor.six._SixMetaPathImporter.find_spec
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - importlib.util.spec_from_loader
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fullname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 199
    functionName: pip._vendor.six._SixMetaPathImporter.__get_module
    functionSourceFile: pip._vendor.six
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fullname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 205
    functionName: pip._vendor.six._SixMetaPathImporter.load_module
    functionSourceFile: pip._vendor.six
    functionUses: 1
    functionsReached:
    - pip._vendor.six._SixMetaPathImporter.__get_module
    - <builtin>.isinstance
    - mod._resolve
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fullname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 219
    functionName: pip._vendor.six._SixMetaPathImporter.is_package
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - pip._vendor.six._SixMetaPathImporter.__get_module
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fullname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 228
    functionName: pip._vendor.six._SixMetaPathImporter.get_code
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - pip._vendor.six._SixMetaPathImporter.__get_module
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - spec
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 236
    functionName: pip._vendor.six._SixMetaPathImporter.create_module
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - pip._vendor.six._SixMetaPathImporter.__get_module
    - pip._vendor.six._SixMetaPathImporter.load_module
    - <builtin>.isinstance
    - mod._resolve
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - module
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 239
    functionName: pip._vendor.six._SixMetaPathImporter.exec_module
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.six.Module_six_moves_urllib
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - pip._vendor.six._SixMetaPathImporter._get_module
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 503
    functionName: pip._vendor.six.Module_six_moves_urllib.__dir__
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - move
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 510
    functionName: pip._vendor.six.add_move
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 515
    functionName: pip._vendor.six.remove_move
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.delattr
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - it
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 547
    functionName: pip._vendor.six.advance_iterator
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - it.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 555
    functionName: pip._vendor.six.callable
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.any
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - unbound
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 570
    functionName: pip._vendor.six.get_unbound_function
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - func
    - cls
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 576
    functionName: pip._vendor.six.create_unbound_method
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - types.MethodType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - func
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 573
    functionName: pip._vendor.six.create_bound_method
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - types.MethodType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 581
    functionName: pip._vendor.six.Iterator.next
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - d
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 616
    functionName: pip._vendor.six.iterkeys
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - d.keys
    - d.iterkeys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - d
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 619
    functionName: pip._vendor.six.itervalues
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - d.values
    - d.itervalues
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - d
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 622
    functionName: pip._vendor.six.iteritems
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - d.items
    - <builtin>.iter
    - d.iteritems
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - d
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 625
    functionName: pip._vendor.six.iterlists
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - d.lists
    - <builtin>.iter
    - d.iterlists
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 669
    functionName: pip._vendor.six.b
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - s.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 673
    functionName: pip._vendor.six.u
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - s.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - bs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 678
    functionName: pip._vendor.six.byte2int
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - buf
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 681
    functionName: pip._vendor.six.indexbytes
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 694
    functionName: pip._vendor.six.assertCountEqual
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 698
    functionName: pip._vendor.six.assertRaisesRegex
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 702
    functionName: pip._vendor.six.assertRegex
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 706
    functionName: pip._vendor.six.assertNotRegex
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f74b8e50>
    argNames:
    - tp
    - value
    - tb
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 713
    functionName: pip._vendor.six.reraise
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f74b8820>
    - <ast.Constant object at 0x7f30f74b87f0>
    argNames:
    - _code_
    - _globs_
    - _locs_
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 725
    functionName: pip._vendor.six.exec_
    functionSourceFile: pip._vendor.six
    functionUses: 1
    functionsReached:
    - <builtin>.exec
    - sys._getframe
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - value
    - from_value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 753
    functionName: pip._vendor.six.raise_from
    functionSourceFile: pip._vendor.six
    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:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 815
    functionName: pip._vendor.six.print_
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - fp.flush
    - <builtin>.isinstance
    - pip._vendor.six.print_.write
    - <builtin>.str
    - kwargs.get
    - <builtin>.enumerate
    - fp.write
    - <builtin>.getattr
    - pip._vendor.six.print_
    - data.encode
    - kwargs.pop
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 765
    functionName: pip._vendor.six.print_.write
    functionSourceFile: pip._vendor.six
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    - fp.write
    - <builtin>.getattr
    - data.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Attribute object at 0x7f30e3a3be20>
    - <ast.Attribute object at 0x7f30e3a3be80>
    argNames:
    - wrapper
    - wrapped
    - assigned
    - updated
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 830
    functionName: pip._vendor.six._update_wrapper
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7f30e3a41970>
    - <ast.Attribute object at 0x7f30e3a419d0>
    argNames:
    - wrapped
    - assigned
    - updated
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 846
    functionName: pip._vendor.six.wraps
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - functools.partial
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - meta
    - bases
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 856
    functionName: pip._vendor.six.with_metaclass
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - type.__new__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - name
    - this_bases
    - d
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 863
    functionName: pip._vendor.six.with_metaclass.metaclass.__new__
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - types.resolve_bases
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - name
    - this_bases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 875
    functionName: pip._vendor.six.with_metaclass.metaclass.__prepare__
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - meta.__prepare__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - metaclass
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 880
    functionName: pip._vendor.six.add_metaclass
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 882
    functionName: pip._vendor.six.add_metaclass.wrapper
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - cls.__dict__.copy
    - <builtin>.isinstance
    - orig_vars.pop
    - orig_vars.get
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e3a26c40>
    - <ast.Constant object at 0x7f30e3a26c70>
    argNames:
    - s
    - encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 898
    functionName: pip._vendor.six.ensure_binary
    functionSourceFile: pip._vendor.six
    functionUses: 1
    functionsReached:
    - s.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e3a2a3a0>
    - <ast.Constant object at 0x7f30e3a2a3d0>
    argNames:
    - s
    - encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 916
    functionName: pip._vendor.six.ensure_str
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - s.decode
    - s.encode
    - <builtin>.isinstance
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e3a2b040>
    - <ast.Constant object at 0x7f30e3a2b070>
    argNames:
    - s
    - encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 939
    functionName: pip._vendor.six.ensure_text
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached:
    - s.decode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - klass
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 958
    functionName: pip._vendor.six.python_2_unicode_compatible
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: pip._vendor.six.python_2_unicode_compatible.<lambda1>
    functionSourceFile: pip._vendor.six
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.webencodings.labels
    functionSourceFile: pip._vendor.webencodings.labels
    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: 3
    functionLinenumber: -1
    functionName: pip._vendor.webencodings.mklabels
    functionSourceFile: pip._vendor.webencodings.mklabels
    functionUses: 0
    functionsReached:
    - json.loads
    - string.lower
    - <builtin>.len
    - <builtin>.print
    - urllib.request.urlopen
    - urllib.urlopen
    - parts.append
    - <builtin>.repr
    - <builtin>.max
    - pip._vendor.webencodings.mklabels.generate
    - pip._vendor.webencodings.mklabels.assert_lower
    - urllib.request.urlopen.read
    - parts.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 20
    functionName: pip._vendor.webencodings.mklabels.assert_lower
    functionSourceFile: pip._vendor.webencodings.mklabels
    functionUses: 2
    functionsReached:
    - string.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 25
    functionName: pip._vendor.webencodings.mklabels.generate
    functionSourceFile: pip._vendor.webencodings.mklabels
    functionUses: 1
    functionsReached:
    - json.loads
    - string.lower
    - <builtin>.len
    - urllib.request.urlopen
    - urllib.urlopen
    - parts.append
    - <builtin>.repr
    - <builtin>.max
    - pip._vendor.webencodings.mklabels.assert_lower
    - urllib.request.urlopen.read
    - parts.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.urlopen
    functionSourceFile: urllib
    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: urllib.request.urlopen.read
    functionSourceFile: urllib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.webencodings.x_user_defined
    functionSourceFile: pip._vendor.webencodings.x_user_defined
    functionUses: 0
    functionsReached:
    - codecs.CodecInfo
    - codecs.Codec.__init__
    - codecs.charmap_build
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9933520>
    argNames:
    - self
    - input
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: pip._vendor.webencodings.x_user_defined.Codec.encode
    functionSourceFile: pip._vendor.webencodings.x_user_defined
    functionUses: 0
    functionsReached:
    - codecs.charmap_encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: codecs.charmap_encode
    functionSourceFile: codecs
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9933f70>
    argNames:
    - self
    - input
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 26
    functionName: pip._vendor.webencodings.x_user_defined.Codec.decode
    functionSourceFile: pip._vendor.webencodings.x_user_defined
    functionUses: 0
    functionsReached:
    - codecs.charmap_decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: codecs.charmap_decode
    functionSourceFile: codecs
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b94c0>
    argNames:
    - self
    - input
    - final
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._vendor.webencodings.x_user_defined.IncrementalEncoder.encode
    functionSourceFile: pip._vendor.webencodings.x_user_defined
    functionUses: 0
    functionsReached:
    - codecs.charmap_encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b9ca0>
    argNames:
    - self
    - input
    - final
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: pip._vendor.webencodings.x_user_defined.IncrementalDecoder.decode
    functionSourceFile: pip._vendor.webencodings.x_user_defined
    functionUses: 0
    functionsReached:
    - codecs.charmap_decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: codecs.Codec.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: codecs.CodecInfo
    functionSourceFile: codecs
    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: codecs.charmap_build
    functionSourceFile: codecs
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.webencodings.tests
    functionSourceFile: pip._vendor.webencodings.tests
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - exception
    - function
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 20
    functionName: pip._vendor.webencodings.tests.assert_raises
    functionSourceFile: pip._vendor.webencodings.tests
    functionUses: 1
    functionsReached:
    - IncrementalDecoder
    - encode
    - IncrementalEncoder
    - iter_encode
    - iter_decode
    - decode
    linkageType: pythonLinkage
    raised:
    - AssertionError
    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: IncrementalEncoder
    functionSourceFile: IncrementalEncoder
    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: IncrementalDecoder
    functionSourceFile: IncrementalDecoder
    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: iter_encode
    functionSourceFile: iter_encode
    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: encode
    functionSourceFile: encode
    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: decode
    functionSourceFile: decode
    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: iter_decode
    functionSourceFile: iter_decode
    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: 1
    functionLinenumber: 29
    functionName: pip._vendor.webencodings.tests.test_labels
    functionSourceFile: pip._vendor.webencodings.tests
    functionUses: 0
    functionsReached:
    - lookup
    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: lookup
    functionSourceFile: lookup
    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: 1
    functionLinenumber: 48
    functionName: pip._vendor.webencodings.tests.test_all_labels
    functionSourceFile: pip._vendor.webencodings.tests
    functionUses: 0
    functionsReached:
    - IncrementalEncoder.encode
    - LABELS.values
    - IncrementalDecoder
    - <builtin>.set
    - IncrementalDecoder.decode
    - encode
    - <builtin>.list
    - iter_encode
    - IncrementalEncoder
    - decode
    - lookup
    - iter_decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: IncrementalDecoder.decode
    functionSourceFile: IncrementalDecoder
    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: IncrementalEncoder.encode
    functionSourceFile: IncrementalEncoder
    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: LABELS.values
    functionSourceFile: LABELS
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 67
    functionName: pip._vendor.webencodings.tests.test_invalid_label
    functionSourceFile: pip._vendor.webencodings.tests
    functionUses: 0
    functionsReached:
    - IncrementalDecoder
    - pip._vendor.webencodings.tests.assert_raises
    - encode
    - IncrementalEncoder
    - iter_encode
    - iter_decode
    - decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: pip._vendor.webencodings.tests.test_decode
    functionSourceFile: pip._vendor.webencodings.tests
    functionUses: 0
    functionsReached:
    - decode
    - lookup
    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: 98
    functionName: pip._vendor.webencodings.tests.test_encode
    functionSourceFile: pip._vendor.webencodings.tests
    functionUses: 0
    functionsReached:
    - encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 107
    functionName: pip._vendor.webencodings.tests.test_iter_decode
    functionSourceFile: pip._vendor.webencodings.tests
    functionUses: 0
    functionsReached:
    - pip._vendor.webencodings.tests.test_iter_decode.iter_decode_to_string
    - iter_decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - input
    - fallback_encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 108
    functionName: pip._vendor.webencodings.tests.test_iter_decode.iter_decode_to_string
    functionSourceFile: pip._vendor.webencodings.tests
    functionUses: 1
    functionsReached:
    - iter_decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 135
    functionName: pip._vendor.webencodings.tests.test_iter_encode
    functionSourceFile: pip._vendor.webencodings.tests
    functionUses: 0
    functionsReached:
    - iter_encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 147
    functionName: pip._vendor.webencodings.tests.test_x_user_defined
    functionSourceFile: pip._vendor.webencodings.tests
    functionUses: 0
    functionsReached:
    - encode
    - decode
    - lookup
    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: 3
    functionLinenumber: -1
    functionName: pip._vendor.webencodings
    functionSourceFile: pip._vendor.webencodings
    functionUses: 0
    functionsReached:
    - pip._vendor.webencodings.ascii_lower
    - codecs.lookup
    - LABELS.get
    - pip._vendor.webencodings.lookup
    - PYTHON_NAMES.get
    - CACHE.get
    - pip._vendor.webencodings.Encoding.__init__
    - label.strip
    - string.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._vendor.webencodings.ascii_lower
    functionSourceFile: pip._vendor.webencodings
    functionUses: 9
    functionsReached:
    - string.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: string.encode
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - label
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 61
    functionName: pip._vendor.webencodings.lookup
    functionSourceFile: pip._vendor.webencodings
    functionUses: 8
    functionsReached:
    - pip._vendor.webencodings.ascii_lower
    - codecs.lookup
    - LABELS.get
    - PYTHON_NAMES.get
    - CACHE.get
    - pip._vendor.webencodings.Encoding.__init__
    - label.strip
    - string.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: label.strip
    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: LABELS.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: CACHE.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: PYTHON_NAMES.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: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - codec_info
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 124
    functionName: pip._vendor.webencodings.Encoding.__init__
    functionSourceFile: ''
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - encoding_or_label
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 91
    functionName: pip._vendor.webencodings._get_encoding
    functionSourceFile: pip._vendor.webencodings
    functionUses: 6
    functionsReached:
    - pip._vendor.webencodings.ascii_lower
    - codecs.lookup
    - LABELS.get
    - pip._vendor.webencodings.lookup
    - PYTHON_NAMES.get
    - CACHE.get
    - pip._vendor.webencodings.Encoding.__init__
    - label.strip
    - <builtin>.hasattr
    - string.encode
    linkageType: pythonLinkage
    raised:
    - LookupError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 128
    functionName: pip._vendor.webencodings.Encoding.__repr__
    functionSourceFile: pip._vendor.webencodings
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b50d0>
    argNames:
    - input
    - fallback_encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 139
    functionName: pip._vendor.webencodings.decode
    functionSourceFile: pip._vendor.webencodings
    functionUses: 0
    functionsReached:
    - pip._vendor.webencodings.ascii_lower
    - encoding.codec_info.decode
    - LABELS.get
    - pip._vendor.webencodings._detect_bom
    - codecs.lookup
    - input.startswith
    - pip._vendor.webencodings.lookup
    - PYTHON_NAMES.get
    - CACHE.get
    - pip._vendor.webencodings.Encoding.__init__
    - label.strip
    - pip._vendor.webencodings._get_encoding
    - <builtin>.hasattr
    - string.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - input
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 161
    functionName: pip._vendor.webencodings._detect_bom
    functionSourceFile: pip._vendor.webencodings
    functionUses: 4
    functionsReached:
    - input.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encoding.codec_info.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: input.startswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30e26a89d0>
    - <ast.Constant object at 0x7f30e26a8430>
    argNames:
    - input
    - encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 172
    functionName: pip._vendor.webencodings.encode
    functionSourceFile: pip._vendor.webencodings
    functionUses: 0
    functionsReached:
    - pip._vendor.webencodings.ascii_lower
    - LABELS.get
    - codecs.lookup
    - pip._vendor.webencodings.lookup
    - PYTHON_NAMES.get
    - CACHE.get
    - pip._vendor.webencodings.Encoding.__init__
    - label.strip
    - pip._vendor.webencodings._get_encoding
    - <builtin>.hasattr
    - string.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a70a0>
    argNames:
    - input
    - fallback_encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 186
    functionName: pip._vendor.webencodings.iter_decode
    functionSourceFile: pip._vendor.webencodings
    functionUses: 0
    functionsReached:
    - LABELS.get
    - pip._vendor.webencodings._detect_bom
    - PYTHON_NAMES.get
    - pip._vendor.webencodings.Encoding.__init__
    - pip._vendor.webencodings._get_encoding
    - input.startswith
    - pip._vendor.webencodings._iter_decode_generator
    - encoding.codec_info.incrementaldecoder
    - pip._vendor.webencodings.ascii_lower
    - pip._vendor.webencodings.lookup
    - pip._vendor.webencodings.IncrementalDecoder.__init__
    - <builtin>.len
    - <builtin>.iter
    - <builtin>.next
    - pip._vendor.webencodings.IncrementalDecoder.decode
    - codecs.lookup
    - CACHE.get
    - label.strip
    - <builtin>.hasattr
    - string.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36c4520>
    argNames:
    - self
    - fallback_encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 283
    functionName: pip._vendor.webencodings.IncrementalDecoder.__init__
    functionSourceFile: pip._vendor.webencodings
    functionUses: 1
    functionsReached:
    - pip._vendor.webencodings.ascii_lower
    - LABELS.get
    - codecs.lookup
    - pip._vendor.webencodings.lookup
    - PYTHON_NAMES.get
    - CACHE.get
    - pip._vendor.webencodings.Encoding.__init__
    - label.strip
    - pip._vendor.webencodings._get_encoding
    - <builtin>.hasattr
    - string.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - input
    - decoder
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 214
    functionName: pip._vendor.webencodings._iter_decode_generator
    functionSourceFile: pip._vendor.webencodings
    functionUses: 1
    functionsReached:
    - pip._vendor.webencodings._detect_bom
    - input.startswith
    - <builtin>.len
    - encoding.codec_info.incrementaldecoder
    - <builtin>.iter
    - pip._vendor.webencodings.IncrementalDecoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f627bc40>
    argNames:
    - self
    - input
    - final
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 295
    functionName: pip._vendor.webencodings.IncrementalDecoder.decode
    functionSourceFile: pip._vendor.webencodings
    functionUses: 2
    functionsReached:
    - encoding.codec_info.incrementaldecoder
    - <builtin>.len
    - pip._vendor.webencodings._detect_bom
    - input.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30d6b89b50>
    - <ast.Constant object at 0x7f30d6b893d0>
    argNames:
    - input
    - encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 246
    functionName: pip._vendor.webencodings.iter_encode
    functionSourceFile: pip._vendor.webencodings
    functionUses: 0
    functionsReached:
    - pip._vendor.webencodings.ascii_lower
    - LABELS.get
    - codecs.lookup
    - encoding.codec_info.incrementalencoder
    - pip._vendor.webencodings.lookup
    - pip._vendor.webencodings._iter_encode_generator
    - PYTHON_NAMES.get
    - CACHE.get
    - pip._vendor.webencodings.Encoding.__init__
    - label.strip
    - pip._vendor.webencodings._get_encoding
    - pip._vendor.webencodings.IncrementalEncoder.__init__
    - <builtin>.hasattr
    - string.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30f627e310>
    - <ast.Constant object at 0x7f30f627e2e0>
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 340
    functionName: pip._vendor.webencodings.IncrementalEncoder.__init__
    functionSourceFile: pip._vendor.webencodings
    functionUses: 1
    functionsReached:
    - pip._vendor.webencodings.ascii_lower
    - LABELS.get
    - codecs.lookup
    - encoding.codec_info.incrementalencoder
    - pip._vendor.webencodings.lookup
    - PYTHON_NAMES.get
    - CACHE.get
    - pip._vendor.webencodings.Encoding.__init__
    - label.strip
    - pip._vendor.webencodings._get_encoding
    - <builtin>.hasattr
    - string.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - input
    - encode
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 262
    functionName: pip._vendor.webencodings._iter_encode_generator
    functionSourceFile: ''
    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: encoding.codec_info.incrementaldecoder
    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: encoding.codec_info.incrementalencoder
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3._collections
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - <builtin>.object
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 12
    functionName: pip._vendor.urllib3._collections.RLock.__enter__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_value
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 15
    functionName: pip._vendor.urllib3._collections.RLock.__exit__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fc8c8bb0>
    - <ast.Constant object at 0x7f30fc8c8b80>
    argNames:
    - self
    - maxsize
    - dispose_func
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 47
    functionName: pip._vendor.urllib3._collections.RecentlyUsedContainer.__init__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - collections.OrderedDict
    - threading.RLock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 54
    functionName: pip._vendor.urllib3._collections.RecentlyUsedContainer.__getitem__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 61
    functionName: pip._vendor.urllib3._collections.RecentlyUsedContainer.__setitem__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 76
    functionName: pip._vendor.urllib3._collections.RecentlyUsedContainer.__delitem__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 83
    functionName: pip._vendor.urllib3._collections.RecentlyUsedContainer.__len__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: pip._vendor.urllib3._collections.RecentlyUsedContainer.__iter__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 2
    functionLinenumber: 92
    functionName: pip._vendor.urllib3._collections.RecentlyUsedContainer.clear
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.packages.six.itervalues
    - d.values
    - <builtin>.iter
    - d.itervalues
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 102
    functionName: pip._vendor.urllib3._collections.RecentlyUsedContainer.keys
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.packages.six.iterkeys
    - <builtin>.iter
    - <builtin>.list
    - d.keys
    - d.iterkeys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36c4250>
    argNames:
    - self
    - headers
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 141
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.__init__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - collections.OrderedDict.setdefault
    - collections.OrderedDict
    - <builtin>.len
    - kwargs.items
    - other.getlist
    - other.iteritems
    - key.lower
    - other.keys
    - pip._vendor.urllib3._collections.HTTPHeaderDict.extend
    - pip._vendor.urllib3._collections.HTTPHeaderDict._copy_from
    - vals.append
    - <builtin>.list
    - <builtin>.hasattr
    - pip._vendor.urllib3._collections.HTTPHeaderDict.add
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 282
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict._copy_from
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 2
    functionsReached:
    - other.getlist
    - <builtin>.list
    - <builtin>.isinstance
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 231
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.extend
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 2
    functionsReached:
    - collections.OrderedDict.setdefault
    - <builtin>.isinstance
    - <builtin>.hasattr
    - <builtin>.len
    - kwargs.items
    - other.iteritems
    - other.keys
    - vals.append
    - key.lower
    - pip._vendor.urllib3._collections.HTTPHeaderDict.add
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - val
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 152
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.__setitem__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 156
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.__getitem__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 160
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.__delitem__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 163
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.__contains__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 166
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.__eq__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 1
    functionsReached:
    - other.itermerged
    - <builtin>.isinstance
    - collections.abc.MutableMapping.lower
    - collections.OrderedDict.values
    - pip._vendor.urllib3._collections.HTTPHeaderDict.__iter__
    - k.lower
    - <builtin>.dict
    - pip._vendor.urllib3._collections.HTTPHeaderDict.itermerged
    - <builtin>.hasattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 302
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.itermerged
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 3
    functionsReached:
    - pip._vendor.urllib3._collections.HTTPHeaderDict.__iter__
    - collections.OrderedDict.values
    - collections.abc.MutableMapping.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other.itermerged
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 175
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.__ne__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - other.itermerged
    - <builtin>.isinstance
    - collections.abc.MutableMapping.lower
    - pip._vendor.urllib3._collections.HTTPHeaderDict.__eq__
    - collections.OrderedDict.values
    - pip._vendor.urllib3._collections.HTTPHeaderDict.__iter__
    - k.lower
    - <builtin>.dict
    - pip._vendor.urllib3._collections.HTTPHeaderDict.itermerged
    - <builtin>.hasattr
    - <builtin>.type
    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: pip._vendor.urllib3._collections.HTTPHeaderDict
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - <builtin>.object
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 184
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.__len__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - <builtin>.len
    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: 187
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.__iter__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 6
    functionsReached:
    - collections.OrderedDict.values
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30fa5b9eb0>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 192
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.pop
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 209
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.discard
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - val
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 215
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.add
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 3
    functionsReached:
    - vals.append
    - collections.OrderedDict.setdefault
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.OrderedDict.setdefault
    functionSourceFile: collections
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: vals.append
    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: other.iteritems
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30fc8be910>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 259
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.getlist
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - key.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 279
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.__repr__
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - collections.abc.MutableMapping.lower
    - collections.OrderedDict.values
    - pip._vendor.urllib3._collections.HTTPHeaderDict.__iter__
    - <builtin>.dict
    - pip._vendor.urllib3._collections.HTTPHeaderDict.itermerged
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other.getlist
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 290
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.copy
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - clone._copy_from
    - <builtin>.type
    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: clone._copy_from
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 295
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.iteritems
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 1
    functionsReached:
    - pip._vendor.urllib3._collections.HTTPHeaderDict.__iter__
    - collections.OrderedDict.values
    - collections.abc.MutableMapping.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 308
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.items
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - collections.abc.MutableMapping.lower
    - collections.OrderedDict.values
    - <builtin>.list
    - pip._vendor.urllib3._collections.HTTPHeaderDict.__iter__
    - pip._vendor.urllib3._collections.HTTPHeaderDict.iteritems
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 312
    functionName: pip._vendor.urllib3._collections.HTTPHeaderDict.from_httplib
    functionSourceFile: pip._vendor.urllib3._collections
    functionUses: 0
    functionsReached:
    - line.startswith
    - <builtin>.isinstance
    - collections.OrderedDict.setdefault
    - headers.append
    - other.iteritems
    - pip._vendor.urllib3._collections.HTTPHeaderDict.extend
    - line.split
    - line.strip
    - value.strip
    - vals.append
    - <builtin>.list
    - key.lower
    - <builtin>.super
    - <builtin>.len
    - pip._vendor.urllib3._collections.HTTPHeaderDict._copy_from
    - pip._vendor.urllib3._collections.HTTPHeaderDict.__init__
    - collections.OrderedDict
    - kwargs.items
    - other.getlist
    - other.keys
    - <builtin>.hasattr
    - pip._vendor.urllib3._collections.HTTPHeaderDict.add
    linkageType: pythonLinkage
    raised:
    - InvalidHeader
    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: headers.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.contrib.securetransport
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - ctypes.CDLL.SSLWriteFunc
    - weakref.WeakValueDictionary
    - ctypes.CDLL.SSLReadFunc
    - threading.Lock
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: weakref.WeakValueDictionary
    functionSourceFile: weakref
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 189
    functionName: pip._vendor.urllib3.contrib.securetransport.inject_into_urllib3
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 201
    functionName: pip._vendor.urllib3.contrib.securetransport.extract_from_urllib3
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 3
    argDefaultValues: []
    argNames:
    - connection_id
    - data_buffer
    - data_length_pointer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 213
    functionName: pip._vendor.urllib3.contrib.securetransport._read_callback
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - _connection_refs.get
    - util.wait_for_read
    - ctypes.c_char.from_address
    - wrapped_socket.gettimeout
    - base_socket.recv_into
    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: _connection_refs.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wrapped_socket.gettimeout
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctypes.c_char.from_address
    functionSourceFile: ctypes
    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: base_socket.recv_into
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - connection_id
    - data_buffer
    - data_length_pointer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 268
    functionName: pip._vendor.urllib3.contrib.securetransport._write_callback
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - _connection_refs.get
    - base_socket.send
    - wrapped_socket.gettimeout
    - util.wait_for_write
    - ctypes.string_at
    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: ctypes.string_at
    functionSourceFile: ctypes
    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: base_socket.send
    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: ctypes.CDLL.SSLReadFunc
    functionSourceFile: ctypes
    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: ctypes.CDLL.SSLWriteFunc
    functionSourceFile: ctypes
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - socket
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 334
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.__init__
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 353
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket._raise_on_error
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 7
    functionsReached:
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close
    - ctypes.CDLL.CFRelease
    - shutil.rmtree
    - ctypes.CDLL.SecKeychainDelete
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 659
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 11
    functionsReached:
    - ctypes.CDLL.SecKeychainDelete
    - shutil.rmtree
    - ctypes.CDLL.CFRelease
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 373
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket._set_ciphers
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 2
    functionsReached:
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.CDLL.SecCopyErrorMessageString
    - ctypes.CDLL.CFRelease
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - ctypes.CDLL.CFStringGetCString
    - ctypes.POINTER
    - <builtin>.len
    - string.decode
    - ctypes.CDLL.SSLSetEnabledCiphers
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.cast
    - ctypes.create_string_buffer
    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: ctypes.CDLL.SSLSetEnabledCiphers
    functionSourceFile: ctypes
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f4aa78b0>
    argNames:
    - error
    - exception_class
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 129
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 15
    functionsReached:
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.CDLL.SecCopyErrorMessageString
    - ctypes.CDLL.CFRelease
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - ctypes.CDLL.CFStringGetCString
    - ctypes.POINTER
    - string.decode
    - ctypes.cast
    - ctypes.create_string_buffer
    linkageType: pythonLinkage
    raised:
    - exception_class
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - protocols
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 386
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket._set_alpn_protocols
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 2
    functionsReached:
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.byref
    - ctypes.CDLL.SecCopyErrorMessageString
    - ctypes.CDLL.CFRelease
    - ctypes.CDLL.SSLSetALPNProtocols
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - ctypes.CDLL.CFStringGetCString
    - ctypes.POINTER
    - ctypes.CDLL.CFArrayCreateMutable
    - string.decode
    - pip._vendor.urllib3.contrib._securetransport.low_level._cfstr
    - ctypes.CDLL.CFArrayAppendValue
    - ctypes.CDLL.CFStringCreateWithCString
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.cast
    - ctypes.c_char_p
    - ctypes.create_string_buffer
    - pip._vendor.urllib3.contrib._securetransport.low_level._create_cfstring_array
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - lst
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 73
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._create_cfstring_array
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 3
    functionsReached:
    - ctypes.byref
    - ctypes.CDLL.CFArrayCreateMutable
    - ctypes.CDLL.CFRelease
    - pip._vendor.urllib3.contrib._securetransport.low_level._cfstr
    - ctypes.CDLL.CFArrayAppendValue
    - ctypes.CDLL.CFStringCreateWithCString
    - ctypes.c_char_p
    linkageType: pythonLinkage
    raised:
    - MemoryError
    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: ctypes.CDLL.SSLSetALPNProtocols
    functionSourceFile: ctypes
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - verify
    - trust_bundle
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 399
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket._custom_validate
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 2
    functionsReached:
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.CDLL.CFArrayCreateMutable
    - ctypes.POINTER
    - shutil.rmtree
    - ctypes.CDLL.SecCertificateCreateWithData
    - _PEM_CERTS_RE.finditer
    - ctypes.CDLL.SSLGetNegotiatedProtocolVersion
    - ctypes.CDLL.SecKeychainDelete
    - ctypes.CDLL.SSLCopyPeerTrust
    - ctypes.CDLL.SecTrustResultType
    - ctypes.CDLL.CFStringGetCString
    - pip._vendor.urllib3.contrib._securetransport.low_level._cert_array_from_pem
    - ctypes.CDLL.CFDataCreate
    - string.decode
    - ctypes.CDLL.CFArrayAppendValue
    - pem_bundle.replace
    - base64.b64decode
    - ctypes.CDLL.SecTrustSetAnchorCertificates
    - ctypes.CDLL.SecCopyErrorMessageString
    - struct.pack
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - os.path.isfile
    - <builtin>.len
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.version
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._evaluate_trust
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_data_from_bytes
    - ctypes.CDLL.SSLProtocol
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close
    - ctypes.create_string_buffer
    - ctypes.CDLL.SecTrustSetAnchorCertificatesOnly
    - ctypes.CDLL.CFRelease
    - match.group
    - ctypes.CDLL.SecTrustEvaluate
    - <builtin>.open
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.cast
    - ctypes.CDLL.SecTrustRef
    - f.read
    - pip._vendor.urllib3.contrib._securetransport.low_level._build_tls_unknown_ca_alert
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - trust_bundle
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 434
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket._evaluate_trust
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 3
    functionsReached:
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.CDLL.CFArrayCreateMutable
    - ctypes.POINTER
    - ctypes.CDLL.SecCertificateCreateWithData
    - _PEM_CERTS_RE.finditer
    - ctypes.CDLL.SSLCopyPeerTrust
    - ctypes.CDLL.SecTrustResultType
    - ctypes.CDLL.CFStringGetCString
    - pip._vendor.urllib3.contrib._securetransport.low_level._cert_array_from_pem
    - ctypes.CDLL.CFDataCreate
    - string.decode
    - ctypes.CDLL.CFArrayAppendValue
    - pem_bundle.replace
    - base64.b64decode
    - ctypes.CDLL.SecTrustSetAnchorCertificates
    - ctypes.CDLL.SecCopyErrorMessageString
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - os.path.isfile
    - <builtin>.len
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_data_from_bytes
    - ctypes.create_string_buffer
    - ctypes.CDLL.SecTrustSetAnchorCertificatesOnly
    - ctypes.CDLL.CFRelease
    - match.group
    - ctypes.CDLL.SecTrustEvaluate
    - <builtin>.open
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.CDLL.SecTrustRef
    - f.read
    - ctypes.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 736
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.version
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 3
    functionsReached:
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.byref
    - ctypes.CDLL.SecCopyErrorMessageString
    - ctypes.CDLL.CFRelease
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - ctypes.CDLL.CFStringGetCString
    - ctypes.POINTER
    - string.decode
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.cast
    - ctypes.CDLL.SSLProtocol
    - ctypes.create_string_buffer
    - ctypes.CDLL.SSLGetNegotiatedProtocolVersion
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 386
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._build_tls_unknown_ca_alert
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 3
    functionsReached:
    - struct.pack
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - pem_bundle
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 150
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._cert_array_from_pem
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 4
    functionsReached:
    - ctypes.byref
    - ctypes.CDLL.CFArrayCreateMutable
    - ctypes.CDLL.CFRelease
    - match.group
    - <builtin>.len
    - ctypes.CDLL.CFDataCreate
    - ctypes.CDLL.CFArrayAppendValue
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_data_from_bytes
    - pem_bundle.replace
    - ctypes.CDLL.SecCertificateCreateWithData
    - _PEM_CERTS_RE.finditer
    - base64.b64decode
    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: ctypes.CDLL.SSLCopyPeerTrust
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecTrustSetAnchorCertificatesOnly
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecTrustEvaluate
    functionSourceFile: ctypes
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 12
    IfCount: 6
    argCount: 10
    argDefaultValues: []
    argNames:
    - self
    - server_hostname
    - verify
    - trust_bundle
    - min_version
    - max_version
    - client_cert
    - client_key
    - client_key_passphrase
    - alpn_protocols
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 474
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.handshake
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 1
    functionsReached:
    - os.urandom
    - shutil.rmtree
    - certificates.extend
    - ctypes.CDLL.CFRetain
    - ctypes.CDLL.SSLCopyPeerTrust
    - itertools.chain
    - ctypes.CDLL.SSLHandshake
    - ctypes.CDLL.SSLSetProtocolVersionMin
    - pip._vendor.urllib3.contrib._securetransport.low_level._load_items_from_file
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - ctypes.CDLL.SecIdentityGetTypeID
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._evaluate_trust
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close
    - ctypes.create_string_buffer
    - ctypes.CDLL.SSLSetSessionOption
    - ctypes.CDLL.CFArrayGetCount
    - ctypes.CDLL.CFStringGetCStringPtr
    - server_hostname.encode
    - ctypes.CDLL.SecKeychainCreate
    - ctypes.CDLL.SecKeychainRef
    - pip._vendor.urllib3.contrib._securetransport.low_level._is_cert
    - ctypes.CDLL.CFDataCreate
    - ctypes.CDLL.SecCertificateGetTypeID
    - ctypes.CDLL.CFArrayAppendValue
    - ctypes.CDLL.SSLSetEnabledCiphers
    - os.path.join
    - certificates.pop
    - pip._vendor.urllib3.contrib._securetransport.low_level._cfstr
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.version
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_data_from_bytes
    - ctypes.CDLL.SSLSetConnection
    - ctypes.CDLL.SecItemImport
    - pip._vendor.urllib3.contrib._securetransport.low_level._load_client_cert_chain
    - match.group
    - ctypes.CDLL.SecTrustEvaluate
    - identities.append
    - f.read
    - pip._vendor.urllib3.contrib._securetransport.low_level._build_tls_unknown_ca_alert
    - <builtin>.range
    - ctypes.CDLL.CFArrayCreateMutable
    - <builtin>.isinstance
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._custom_validate
    - ctypes.CDLL.SSLSetCertificate
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._raise_on_error
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._set_ciphers
    - ctypes.CDLL.SecCopyErrorMessageString
    - tempfile.mkdtemp
    - os.path.isfile
    - <builtin>.len
    - <builtin>.id
    - ctypes.CDLL.CFArrayRef
    - ctypes.CDLL.SSLSetPeerDomainName
    - <builtin>.open
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.CDLL.SecTrustRef
    - ctypes.CDLL.CFArrayGetValueAtIndex
    - pip._vendor.urllib3.contrib._securetransport.low_level._create_cfstring_array
    - ctypes.byref
    - pip._vendor.urllib3.contrib._securetransport.low_level._is_identity
    - ctypes.CDLL.SSLSetProtocolVersionMax
    - ctypes.CDLL.SecIdentityCreateWithCertificate
    - certificates.append
    - ctypes.POINTER
    - ctypes.CDLL.SecCertificateCreateWithData
    - ctypes.CDLL.SSLGetNegotiatedProtocolVersion
    - _PEM_CERTS_RE.finditer
    - ctypes.CDLL.SecKeychainDelete
    - ctypes.CDLL.CFGetTypeID
    - ctypes.CDLL.SecTrustResultType
    - ctypes.CDLL.CFStringGetCString
    - pip._vendor.urllib3.contrib._securetransport.low_level._cert_array_from_pem
    - base64.b16encode
    - string.decode
    - pem_bundle.replace
    - ctypes.CDLL.SSLSetIOFuncs
    - base64.b64decode
    - ctypes.CDLL.SecTrustSetAnchorCertificates
    - ctypes.CDLL.SSLSetALPNProtocols
    - struct.pack
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._set_alpn_protocols
    - ctypes.CDLL.SSLProtocol
    - ctypes.CDLL.SecIdentityRef
    - ctypes.CDLL.SSLCreateContext
    - ctypes.CDLL.SecTrustSetAnchorCertificatesOnly
    - ctypes.CDLL.CFRelease
    - identities.extend
    - ctypes.CDLL.CFStringCreateWithCString
    - pip._vendor.urllib3.contrib._securetransport.low_level._temporary_keychain
    - ctypes.cast
    - ctypes.c_char_p
    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: ctypes.CDLL.SSLCreateContext
    functionSourceFile: ctypes
    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: ctypes.CDLL.SSLSetIOFuncs
    functionSourceFile: ctypes
    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: ctypes.CDLL.SSLSetConnection
    functionSourceFile: ctypes
    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: ctypes.CDLL.SSLSetPeerDomainName
    functionSourceFile: ctypes
    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: ctypes.CDLL.SSLSetProtocolVersionMin
    functionSourceFile: ctypes
    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: ctypes.CDLL.SSLSetProtocolVersionMax
    functionSourceFile: ctypes
    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: ctypes.CDLL.SSLSetSessionOption
    functionSourceFile: ctypes
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 212
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._temporary_keychain
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 2
    functionsReached:
    - os.urandom
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.CDLL.SecCopyErrorMessageString
    - tempfile.mkdtemp
    - ctypes.CDLL.CFRelease
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - ctypes.CDLL.SecKeychainCreate
    - ctypes.CDLL.CFStringGetCString
    - ctypes.POINTER
    - <builtin>.len
    - base64.b16encode
    - ctypes.CDLL.SecKeychainRef
    - string.decode
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - os.path.join
    - ctypes.cast
    - ctypes.create_string_buffer
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 8
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - keychain
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 302
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._load_client_cert_chain
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 2
    functionsReached:
    - ctypes.CDLL.CFArrayGetCount
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.CDLL.CFArrayCreateMutable
    - pip._vendor.urllib3.contrib._securetransport.low_level._is_identity
    - ctypes.CDLL.SecIdentityCreateWithCertificate
    - certificates.append
    - ctypes.POINTER
    - certificates.extend
    - ctypes.CDLL.CFRetain
    - ctypes.CDLL.CFGetTypeID
    - pip._vendor.urllib3.contrib._securetransport.low_level._is_cert
    - itertools.chain
    - ctypes.CDLL.CFStringGetCString
    - ctypes.CDLL.CFDataCreate
    - ctypes.CDLL.SecCertificateGetTypeID
    - string.decode
    - ctypes.CDLL.CFArrayAppendValue
    - certificates.pop
    - ctypes.CDLL.SecCopyErrorMessageString
    - pip._vendor.urllib3.contrib._securetransport.low_level._load_items_from_file
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - <builtin>.len
    - ctypes.CDLL.SecIdentityGetTypeID
    - ctypes.create_string_buffer
    - ctypes.CDLL.CFArrayRef
    - ctypes.CDLL.SecItemImport
    - ctypes.CDLL.SecIdentityRef
    - ctypes.CDLL.CFRelease
    - identities.extend
    - <builtin>.open
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - identities.append
    - ctypes.cast
    - f.read
    - ctypes.CDLL.CFArrayGetValueAtIndex
    - <builtin>.range
    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: ctypes.CDLL.SSLSetCertificate
    functionSourceFile: ctypes
    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: ctypes.CDLL.SSLHandshake
    functionSourceFile: ctypes
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 567
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.fileno
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached: []
    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: 2
    functionLinenumber: 571
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket._decref_socketios
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close
    - ctypes.CDLL.CFRelease
    - shutil.rmtree
    - ctypes.CDLL.SecKeychainDelete
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bufsiz
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 577
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.recv
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - ctypes.c_char.from_buffer
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.POINTER
    - shutil.rmtree
    - ctypes.CDLL.SecKeychainDelete
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._raise_on_error
    - ctypes.CDLL.CFStringGetCString
    - string.decode
    - ctypes.CDLL.SecCopyErrorMessageString
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - <builtin>.len
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close
    - ctypes.create_string_buffer
    - ctypes.c_size_t
    - ctypes.CDLL.CFRelease
    - ctypes.CDLL.SSLRead
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.recv_into
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1bc4ca0>
    argNames:
    - self
    - buffer
    - nbytes
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 583
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.recv_into
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 1
    functionsReached:
    - ctypes.c_char.from_buffer
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.POINTER
    - shutil.rmtree
    - ctypes.CDLL.SecKeychainDelete
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._raise_on_error
    - ctypes.CDLL.CFStringGetCString
    - string.decode
    - ctypes.CDLL.SecCopyErrorMessageString
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - <builtin>.len
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close
    - ctypes.create_string_buffer
    - ctypes.c_size_t
    - ctypes.CDLL.CFRelease
    - ctypes.CDLL.SSLRead
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.cast
    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: ctypes.c_char.from_buffer
    functionSourceFile: ctypes
    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: ctypes.c_size_t
    functionSourceFile: ctypes
    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: ctypes.CDLL.SSLRead
    functionSourceFile: ctypes
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 626
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.settimeout
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 629
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.gettimeout
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    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
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 632
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.send
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 1
    functionsReached:
    - ctypes.CDLL.SecKeychainDelete
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.CDLL.SecCopyErrorMessageString
    - ctypes.CDLL.CFRelease
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._raise_on_error
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - ctypes.CDLL.CFStringGetCString
    - ctypes.POINTER
    - <builtin>.len
    - shutil.rmtree
    - string.decode
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.cast
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close
    - ctypes.create_string_buffer
    - ctypes.CDLL.SSLWrite
    - ctypes.c_size_t
    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: ctypes.CDLL.SSLWrite
    functionSourceFile: ctypes
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 649
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.sendall
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.POINTER
    - shutil.rmtree
    - ctypes.CDLL.SecKeychainDelete
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._raise_on_error
    - ctypes.CDLL.CFStringGetCString
    - string.decode
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.send
    - ctypes.CDLL.SecCopyErrorMessageString
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - <builtin>.len
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close
    - ctypes.create_string_buffer
    - ctypes.CDLL.SSLWrite
    - ctypes.c_size_t
    - ctypes.CDLL.CFRelease
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 655
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.shutdown
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - ctypes.CDLL.SecKeychainDelete
    - ctypes.CDLL.SSLClose
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._raise_on_error
    - ctypes.CDLL.CFRelease
    - shutil.rmtree
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close
    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: ctypes.CDLL.SSLClose
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecKeychainDelete
    functionSourceFile: ctypes
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1bd1640>
    argNames:
    - self
    - binary_form
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 678
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket.getpeercert
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.POINTER
    - ctypes.CDLL.CFDataGetLength
    - ctypes.CDLL.SSLCopyPeerTrust
    - ctypes.CDLL.CFStringGetCString
    - string.decode
    - ctypes.string_at
    - ctypes.CDLL.SecCopyErrorMessageString
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - ctypes.create_string_buffer
    - ctypes.CDLL.CFRelease
    - ctypes.CDLL.SecTrustGetCertificateCount
    - ctypes.CDLL.CFDataGetBytePtr
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.CDLL.SecTrustRef
    - ctypes.cast
    - ctypes.CDLL.SecCertificateCopyData
    - ctypes.CDLL.SecTrustGetCertificateAtIndex
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: ctypes.CDLL.SecTrustGetCertificateCount
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecTrustGetCertificateAtIndex
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecCertificateCopyData
    functionSourceFile: ctypes
    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: ctypes.CDLL.CFDataGetLength
    functionSourceFile: ctypes
    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: ctypes.CDLL.CFDataGetBytePtr
    functionSourceFile: ctypes
    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: ctypes.CDLL.SSLProtocol
    functionSourceFile: ctypes
    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: ctypes.CDLL.SSLGetNegotiatedProtocolVersion
    functionSourceFile: ctypes
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 757
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket._reuse
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    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: 760
    functionName: pip._vendor.urllib3.contrib.securetransport.WrappedSocket._drop
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close
    - ctypes.CDLL.CFRelease
    - shutil.rmtree
    - ctypes.CDLL.SecKeychainDelete
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1bba970>
    - <ast.Constant object at 0x7f30f1bba9a0>
    argNames:
    - self
    - mode
    - buffering
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 775
    functionName: pip._vendor.urllib3.contrib.securetransport.makefile
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - io.BufferedReader
    - io.BufferedWriter
    - pip._vendor.urllib3.packages.backports.makefile.backport_makefile
    - socket.SocketIO
    - io.TextIOWrapper
    - socket._fileobject
    - io.BufferedRWPair
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - protocol
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 792
    functionName: pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.__init__
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 811
    functionName: pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.check_hostname
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 829
    functionName: pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.options
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 838
    functionName: pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.verify_mode
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 841
    functionName: pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.set_default_verify_paths
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 853
    functionName: pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.load_default_certs
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.set_default_verify_paths
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ciphers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 856
    functionName: pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.set_ciphers
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1bb3940>
    - <ast.Constant object at 0x7f30f1bb3970>
    - <ast.Constant object at 0x7f30f1bb39a0>
    argNames:
    - self
    - cafile
    - capath
    - cadata
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 861
    functionName: pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.load_verify_locations
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - <builtin>.open
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1bb3fd0>
    - <ast.Constant object at 0x7f30f1bad040>
    argNames:
    - self
    - certfile
    - keyfile
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 873
    functionName: pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.load_cert_chain
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    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
    - protocols
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 878
    functionName: pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.set_alpn_protocols
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - s.encode
    - pip._vendor.six.ensure_binary
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1bad9d0>
    - <ast.Constant object at 0x7f30f1bada00>
    - <ast.Constant object at 0x7f30f1bada30>
    - <ast.Constant object at 0x7f30f1bada60>
    argNames:
    - self
    - sock
    - server_side
    - do_handshake_on_connect
    - suppress_ragged_eofs
    - server_hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 890
    functionName: pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.wrap_socket
    functionSourceFile: pip._vendor.urllib3.contrib.securetransport
    functionUses: 0
    functionsReached:
    - os.urandom
    - shutil.rmtree
    - certificates.extend
    - ctypes.CDLL.CFRetain
    - ctypes.CDLL.SSLCopyPeerTrust
    - itertools.chain
    - ctypes.CDLL.SSLHandshake
    - ctypes.CDLL.SSLSetProtocolVersionMin
    - pip._vendor.urllib3.contrib._securetransport.low_level._load_items_from_file
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - ctypes.CDLL.SecIdentityGetTypeID
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._evaluate_trust
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close
    - ctypes.create_string_buffer
    - ctypes.CDLL.SSLSetSessionOption
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.__init__
    - ctypes.CDLL.CFArrayGetCount
    - ctypes.CDLL.CFStringGetCStringPtr
    - server_hostname.encode
    - ctypes.CDLL.SecKeychainCreate
    - ctypes.CDLL.SecKeychainRef
    - pip._vendor.urllib3.contrib._securetransport.low_level._is_cert
    - ctypes.CDLL.CFDataCreate
    - ctypes.CDLL.SecCertificateGetTypeID
    - ctypes.CDLL.CFArrayAppendValue
    - ctypes.CDLL.SSLSetEnabledCiphers
    - os.path.join
    - certificates.pop
    - pip._vendor.urllib3.contrib._securetransport.low_level._cfstr
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.version
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_data_from_bytes
    - ctypes.CDLL.SSLSetConnection
    - ctypes.CDLL.SecItemImport
    - pip._vendor.urllib3.contrib._securetransport.low_level._load_client_cert_chain
    - match.group
    - ctypes.CDLL.SecTrustEvaluate
    - identities.append
    - f.read
    - pip._vendor.urllib3.contrib._securetransport.low_level._build_tls_unknown_ca_alert
    - <builtin>.range
    - <builtin>.isinstance
    - ctypes.CDLL.CFArrayCreateMutable
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._custom_validate
    - ctypes.CDLL.SSLSetCertificate
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._raise_on_error
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._set_ciphers
    - ctypes.CDLL.SecCopyErrorMessageString
    - tempfile.mkdtemp
    - os.path.isfile
    - <builtin>.len
    - <builtin>.id
    - ctypes.CDLL.CFArrayRef
    - ctypes.CDLL.SSLSetPeerDomainName
    - <builtin>.open
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.CDLL.SecTrustRef
    - ctypes.CDLL.CFArrayGetValueAtIndex
    - pip._vendor.urllib3.contrib._securetransport.low_level._create_cfstring_array
    - ctypes.byref
    - pip._vendor.urllib3.contrib._securetransport.low_level._is_identity
    - ctypes.CDLL.SSLSetProtocolVersionMax
    - ctypes.CDLL.SecIdentityCreateWithCertificate
    - certificates.append
    - ctypes.POINTER
    - ctypes.CDLL.SecCertificateCreateWithData
    - ctypes.CDLL.SSLGetNegotiatedProtocolVersion
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket.handshake
    - _PEM_CERTS_RE.finditer
    - ctypes.CDLL.SecKeychainDelete
    - ctypes.CDLL.CFGetTypeID
    - ctypes.CDLL.SecTrustResultType
    - ctypes.CDLL.CFStringGetCString
    - pip._vendor.urllib3.contrib._securetransport.low_level._cert_array_from_pem
    - base64.b16encode
    - string.decode
    - pem_bundle.replace
    - ctypes.CDLL.SSLSetIOFuncs
    - base64.b64decode
    - ctypes.CDLL.SecTrustSetAnchorCertificates
    - ctypes.CDLL.SSLSetALPNProtocols
    - struct.pack
    - pip._vendor.urllib3.contrib.securetransport.WrappedSocket._set_alpn_protocols
    - ctypes.CDLL.SSLProtocol
    - ctypes.CDLL.SecIdentityRef
    - ctypes.CDLL.SSLCreateContext
    - ctypes.CDLL.SecTrustSetAnchorCertificatesOnly
    - ctypes.CDLL.CFRelease
    - identities.extend
    - ctypes.CDLL.CFStringCreateWithCString
    - pip._vendor.urllib3.contrib._securetransport.low_level._temporary_keychain
    - ctypes.cast
    - ctypes.c_char_p
    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: pip._vendor.urllib3.contrib._securetransport
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.contrib._securetransport.bindings
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.bindings
    functionUses: 0
    functionsReached:
    - ctypes.CFUNCTYPE
    - <builtin>.ImportError
    - ctypes.POINTER
    - <builtin>.map
    - ctypes.CDLL
    - platform.mac_ver
    - pip._vendor.urllib3.contrib._securetransport.bindings.load_cdll
    - <builtin>.tuple
    - version.split
    - ctypes.c_void_p.in_dll
    - pip._vendor.urllib3.packages.six.raise_from
    - ctypes.util.find_library
    - platform.system
    - ctypes.POINTER.in_dll
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - name
    - macos10_16_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 65
    functionName: pip._vendor.urllib3.contrib._securetransport.bindings.load_cdll
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.bindings
    functionUses: 1
    functionsReached:
    - pip._vendor.urllib3.packages.six.raise_from
    - <builtin>.ImportError
    - ctypes.util.find_library
    - ctypes.CDLL
    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>.ImportError
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctypes.CFUNCTYPE
    functionSourceFile: ctypes
    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: ctypes.POINTER.in_dll
    functionSourceFile: ctypes
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.contrib._securetransport.bindings.CFConst
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.bindings
    functionUses: 0
    functionsReached:
    - ctypes.c_uint32
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - bytestring
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 27
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._cf_data_from_bytes
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 5
    functionsReached:
    - <builtin>.len
    - ctypes.CDLL.CFDataCreate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - tuples
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._cf_dictionary_from_tuples
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - ctypes.CDLL.CFDictionaryCreate
    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: ctypes.CDLL.CFDictionaryCreate
    functionSourceFile: ctypes
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - py_bstr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._cfstr
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 4
    functionsReached:
    - ctypes.CDLL.CFStringCreateWithCString
    - ctypes.c_char_p
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 104
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 16
    functionsReached:
    - ctypes.CDLL.CFStringGetCStringPtr
    - ctypes.CDLL.CFStringGetCString
    - ctypes.POINTER
    - string.decode
    - ctypes.cast
    - ctypes.create_string_buffer
    linkageType: pythonLinkage
    raised:
    - OSError
    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: pem_bundle.replace
    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: base64.b64decode
    functionSourceFile: base64
    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: _PEM_CERTS_RE.finditer
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - item
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 196
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._is_cert
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 4
    functionsReached:
    - ctypes.CDLL.CFGetTypeID
    - ctypes.CDLL.SecCertificateGetTypeID
    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: ctypes.CDLL.SecCertificateGetTypeID
    functionSourceFile: ctypes
    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: ctypes.CDLL.CFGetTypeID
    functionSourceFile: ctypes
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - item
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 204
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._is_identity
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 4
    functionsReached:
    - ctypes.CDLL.SecIdentityGetTypeID
    - ctypes.CDLL.CFGetTypeID
    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: ctypes.CDLL.SecIdentityGetTypeID
    functionSourceFile: ctypes
    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: base64.b16encode
    functionSourceFile: base64
    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: ctypes.CDLL.SecKeychainRef
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecKeychainCreate
    functionSourceFile: ctypes
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 8
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - keychain
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 247
    functionName: pip._vendor.urllib3.contrib._securetransport.low_level._load_items_from_file
    functionSourceFile: pip._vendor.urllib3.contrib._securetransport.low_level
    functionUses: 3
    functionsReached:
    - ctypes.CDLL.CFArrayGetCount
    - ctypes.byref
    - ctypes.CDLL.CFStringGetCStringPtr
    - pip._vendor.urllib3.contrib._securetransport.low_level._is_identity
    - certificates.append
    - ctypes.POINTER
    - ctypes.CDLL.CFRetain
    - ctypes.CDLL.CFGetTypeID
    - pip._vendor.urllib3.contrib._securetransport.low_level._is_cert
    - ctypes.CDLL.CFStringGetCString
    - ctypes.CDLL.CFDataCreate
    - ctypes.CDLL.SecCertificateGetTypeID
    - string.decode
    - ctypes.CDLL.SecCopyErrorMessageString
    - pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode
    - <builtin>.len
    - ctypes.CDLL.SecIdentityGetTypeID
    - ctypes.create_string_buffer
    - ctypes.CDLL.CFArrayRef
    - ctypes.CDLL.SecItemImport
    - ctypes.CDLL.CFRelease
    - <builtin>.open
    - pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error
    - ctypes.cast
    - identities.append
    - f.read
    - ctypes.CDLL.CFArrayGetValueAtIndex
    - <builtin>.range
    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: ctypes.CDLL.CFArrayRef
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecItemImport
    functionSourceFile: ctypes
    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: ctypes.CDLL.CFArrayGetCount
    functionSourceFile: ctypes
    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: ctypes.CDLL.CFArrayGetValueAtIndex
    functionSourceFile: ctypes
    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: ctypes.CDLL.CFRetain
    functionSourceFile: ctypes
    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: certificates.append
    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: identities.append
    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: identities.extend
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: certificates.extend
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctypes.CDLL.SecIdentityRef
    functionSourceFile: ctypes
    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: ctypes.CDLL.SecIdentityCreateWithCertificate
    functionSourceFile: ctypes
    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: certificates.pop
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.contrib.ntlmpool
    functionSourceFile: pip._vendor.urllib3.contrib.ntlmpool
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - user
    - pw
    - authurl
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: pip._vendor.urllib3.contrib.ntlmpool.NTLMConnectionPool.__init__
    functionSourceFile: pip._vendor.urllib3.contrib.ntlmpool
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - user.split
    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: user.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 12
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: pip._vendor.urllib3.contrib.ntlmpool.NTLMConnectionPool._new_conn
    functionSourceFile: pip._vendor.urllib3.contrib.ntlmpool
    functionUses: 0
    functionsReached:
    - logging.getLogger.debug
    - packages.six.moves.http_client.HTTPSConnection.getresponse
    - ntlm.ntlm.parse_NTLM_CHALLENGE_MESSAGE
    - ntlm.ntlm.create_NTLM_NEGOTIATE_MESSAGE
    - packages.six.moves.http_client.HTTPSConnection.request
    - ntlm.ntlm.create_NTLM_AUTHENTICATE_MESSAGE
    - res.read
    - <builtin>.dict
    - packages.six.moves.http_client.HTTPSConnection
    linkageType: pythonLinkage
    raised:
    - Exception
    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: packages.six.moves.http_client.HTTPSConnection
    functionSourceFile: packages
    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: ntlm.ntlm.create_NTLM_NEGOTIATE_MESSAGE
    functionSourceFile: ntlm
    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: packages.six.moves.http_client.HTTPSConnection.request
    functionSourceFile: packages
    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: packages.six.moves.http_client.HTTPSConnection.getresponse
    functionSourceFile: packages
    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: res.read
    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: ntlm.ntlm.parse_NTLM_CHALLENGE_MESSAGE
    functionSourceFile: ntlm
    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: ntlm.ntlm.create_NTLM_AUTHENTICATE_MESSAGE
    functionSourceFile: ntlm
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a7130>
    - <ast.Constant object at 0x7f30e26a7910>
    - <ast.Constant object at 0x7f30e26a7520>
    - <ast.Constant object at 0x7f30e26a7070>
    - <ast.Constant object at 0x7f30e26a74c0>
    argNames:
    - self
    - method
    - url
    - body
    - headers
    - retries
    - redirect
    - assert_same_host
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 115
    functionName: pip._vendor.urllib3.contrib.ntlmpool.NTLMConnectionPool.urlopen
    functionSourceFile: pip._vendor.urllib3.contrib.ntlmpool
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.urllib3.contrib.appengine
    functionSourceFile: pip._vendor.urllib3.contrib.appengine
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f8be1820>
    - <ast.Constant object at 0x7f30f8be17f0>
    - <ast.Constant object at 0x7f30f8be17c0>
    - <ast.Constant object at 0x7f30f8be1790>
    argNames:
    - self
    - headers
    - retries
    - validate_certificate
    - urlfetch_retries
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 99
    functionName: pip._vendor.urllib3.contrib.appengine.AppEngineManager.__init__
    functionSourceFile: pip._vendor.urllib3.contrib.appengine
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.request.RequestMethods.__init__
    - warnings.warn
    linkageType: pythonLinkage
    raised:
    - AppEnginePlatformError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 124
    functionName: pip._vendor.urllib3.contrib.appengine.AppEngineManager.__enter__
    functionSourceFile: pip._vendor.urllib3.contrib.appengine
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 127
    functionName: pip._vendor.urllib3.contrib.appengine.AppEngineManager.__exit__
    functionSourceFile: pip._vendor.urllib3.contrib.appengine
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f30fcc6f550>
    - <ast.Constant object at 0x7f30fcc6f1f0>
    - <ast.Constant object at 0x7f30fcc6f850>
    - <ast.Constant object at 0x7f30fcc6f2e0>
    - <ast.Attribute object at 0x7f30fcc6f910>
    argNames:
    - self
    - method
    - url
    - body
    - headers
    - retries
    - redirect
    - timeout
    - response_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 131
    functionName: pip._vendor.urllib3.contrib.appengine.AppEngineManager.urlopen
    functionSourceFile: pip._vendor.urllib3.contrib.appengine
    functionUses: 0
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - pip._vendor.urllib3.contrib.appengine.AppEngineManager.urlopen
    - <builtin>.isinstance
    - log.warning
    - <builtin>.bytes
    - <builtin>.bool
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - _collections.HTTPHeaderDict.get
    - <builtin>.frozenset
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - pip._vendor.urllib3.contrib.appengine.AppEngineManager._get_retries
    - pip._vendor.urllib3.contrib.appengine.AppEngineManager._get_absolute_timeout
    - log.debug
    - retries.sleep
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - d.decompress
    - transfer_encoding.split
    - os.environ.get
    - brotli.Decompressor
    - pip._vendor.urllib3.contrib.appengine.AppEngineManager._urlfetch_response_to_http_response
    - <builtin>.str
    - pip._vendor.urllib3.contrib._appengine_environ.is_prod_appengine
    - _collections.HTTPHeaderDict
    - io.IOBase.close
    - google.appengine.api.urlfetch.fetch
    - pip._vendor.urllib3.response.HTTPResponse.get_redirect_location
    - buffer.write
    - modes.split
    - <builtin>.set
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - <builtin>.tuple
    - e.strip
    - packages.six.moves.urllib.parse.urljoin
    - <builtin>.min
    - io.BytesIO
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - obj.isclosed
    - tr_enc.split
    - content_encoding.split
    - encodings.remove
    - <builtin>.len
    - buffer.getvalue
    - m.strip
    - retries.is_retry
    - enc.strip
    - pip._vendor.urllib3.response.HTTPResponse._init_length
    - retries.increment
    - retries.sleep_for_retry
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - pip._vendor.urllib3.response.HTTPResponse.close
    - lengths.pop
    - pip._vendor.urllib3.util.response.is_fp_closed
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.__init__
    - warnings.warn
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.HTTPResponse.read
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - <builtin>.getattr
    - h.lower
    - pip._vendor.urllib3.response._get_decoder
    - <builtin>.bytearray
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - urlfetch_resp.headers.get
    - length.split
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - TimeoutError
    - AppEnginePlatformError
    - MaxRetryError
    - ProtocolError
    - SSLError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - retries
    - redirect
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 294
    functionName: pip._vendor.urllib3.contrib.appengine.AppEngineManager._get_retries
    functionSourceFile: pip._vendor.urllib3.contrib.appengine
    functionUses: 1
    functionsReached:
    - pip._vendor.urllib3.util.retry.Retry.from_int
    - <builtin>.isinstance
    - <builtin>.bool
    - warnings.warn
    - <builtin>.set
    - <builtin>.frozenset
    - pip._vendor.urllib3.util.retry.Retry.__init__
    - <builtin>.tuple
    - h.lower
    - log.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 281
    functionName: pip._vendor.urllib3.contrib.appengine.AppEngineManager._get_absolute_timeout
    functionSourceFile: pip._vendor.urllib3.contrib.appengine
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - warnings.warn
    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: google.appengine.api.urlfetch.fetch
    functionSourceFile: google
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - urlfetch_resp
    - response_kw
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 245
    functionName: pip._vendor.urllib3.contrib.appengine.AppEngineManager._urlfetch_response_to_http_response
    functionSourceFile: pip._vendor.urllib3.contrib.appengine
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytes
    - log.warning
    - pip._vendor.urllib3.response.HTTPResponse._fp_read
    - pip._vendor.urllib3.response.HTTPResponse._flush_decoder
    - pip._vendor.urllib3.response.BrotliDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.release_conn
    - _collections.HTTPHeaderDict.get
    - pip._vendor.urllib3.response.DeflateDecoder.decompress
    - pip._vendor.urllib3.response.MultiDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.isclosed
    - transfer_encoding.split
    - os.environ.get
    - brotli.Decompressor
    - <builtin>.str
    - pip._vendor.urllib3.contrib._appengine_environ.is_prod_appengine
    - _collections.HTTPHeaderDict
    - buffer.write
    - modes.split
    - io.IOBase.close
    - <builtin>.set
    - pip._vendor.urllib3.response.DeflateDecoder.__init__
    - e.strip
    - io.BytesIO
    - <builtin>.min
    - pip._vendor.urllib3.response.HTTPResponse._error_catcher
    - zlib.decompressobj
    - pip._vendor.urllib3.response.BrotliDecoder.flush
    - obj.isclosed
    - tr_enc.split
    - content_encoding.split
    - encodings.remove
    - <builtin>.len
    - buffer.getvalue
    - m.strip
    - enc.strip
    - pip._vendor.urllib3.response.HTTPResponse._init_length
    - <builtin>.reversed
    - <builtin>.int
    - pip._vendor.urllib3.response.HTTPResponse._init_decoder
    - lengths.pop
    - pip._vendor.urllib3.response.GzipDecoder.__init__
    - pip._vendor.urllib3.response.HTTPResponse.close
    - pip._vendor.urllib3.response.GzipDecoder.decompress
    - pip._vendor.urllib3.util.response.is_fp_closed
    - pip._vendor.urllib3.response.HTTPResponse.__init__
    - pip._vendor.urllib3.response.MultiDecoder.flush
    - pip._vendor.urllib3.response.HTTPResponse.read
    - pip._vendor.urllib3.response.MultiDecoder.decompress
    - <builtin>.getattr
    - pip._vendor.urllib3.response.HTTPResponse._decode
    - pip._vendor.urllib3.response._get_decoder
    - <builtin>.bytearray
    - d.decompress
    - urlfetch_resp.headers.get
    - length.split
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urlfetch_resp.headers.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: transfer_encoding.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encodings.remove
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: pip._vendor.distro.__main__
    functionSourceFile: pip._vendor.distro.__main__
    functionUses: 0
    functionsReached:
    - pip._vendor.distro.distro.LinuxDistribution.version_parts
    - _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match
    - re.compile
    - matches.groups
    - <builtin>.dict
    - pip._vendor.distro.distro.LinuxDistribution.id.normalize
    - pip._vendor.distro.distro.LinuxDistribution.major_version
    - parser.parse_args
    - line.strip
    - logging.StreamHandler
    - pip._vendor.distro.distro.LinuxDistribution.version
    - versions.insert
    - table.get
    - pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content
    - os.path.join
    - pip._vendor.distro.distro.LinuxDistribution.like
    - pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr
    - argparse.ArgumentParser
    - pip._vendor.distro.distro.LinuxDistribution.info
    - pip._vendor.distro.distro.LinuxDistribution.minor_version
    - versions.append
    - os.path.isfile
    - pip._vendor.distro.distro.LinuxDistribution.uname_attr
    - v.count
    - logging.getLogger
    - pip._vendor.distro.distro.LinuxDistribution.oslevel_info
    - json.dumps
    - pip._vendor.distro.distro.LinuxDistribution.os_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.distro_release_attr
    - pip._vendor.distro.distro.LinuxDistribution.build_number
    - version_regex.match
    - logger.addHandler
    - logger.setLevel
    - parser.add_argument
    - logger.info
    - matches.group
    - pip._vendor.distro.distro.main
    - pip._vendor.distro.distro.LinuxDistribution.name
    - pip._vendor.distro.distro.LinuxDistribution.id
    - distro_id.lower
    - version.count
    - pip._vendor.distro.distro.LinuxDistribution.codename
    - pip._vendor.distro.distro.LinuxDistribution.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich._stack
    functionSourceFile: pip._vendor.rich._stack
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 10
    functionName: pip._vendor.rich._stack.Stack.top
    functionSourceFile: pip._vendor.rich._stack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 14
    functionName: pip._vendor.rich._stack.Stack.push
    functionSourceFile: pip._vendor.rich._stack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.rich.bar
    functionSourceFile: pip._vendor.rich.bar
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 7
    argDefaultValues: []
    argNames:
    - self
    - size
    - begin
    - end
    - width
    - color
    - bgcolor
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 29
    functionName: pip._vendor.rich.bar.Bar.__init__
    functionSourceFile: pip._vendor.rich.bar
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - <builtin>.min
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__._make_color
    - typing.NamedTuple.lower
    - pip._vendor.rich.color.Color.parse
    - <builtin>.max
    - <builtin>.int
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 45
    functionName: pip._vendor.rich.bar.Bar.__repr__
    functionSourceFile: pip._vendor.rich.bar
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 48
    functionName: pip._vendor.rich.bar.Bar.__rich_console__
    functionSourceFile: pip._vendor.rich.bar
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.segment.Segment.line
    - <builtin>.int
    - typing.NamedTuple.__init__
    - <builtin>.len
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 87
    functionName: pip._vendor.rich.bar.Bar.__rich_measure__
    functionSourceFile: pip._vendor.rich.bar
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 7
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.layout
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - threading.RLock
    - pip._vendor.rich.console.Console.print
    - dataclasses.is_dataclass
    - pip._vendor.rich._pick.pick_bool
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - <builtin>.hash
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.layout.Layout.split
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.layout._Placeholder.__init__
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - pip._vendor.rich.layout.Layout.__init__
    - jupyter_lines.isdigit
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - threading.local.__init__
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - inspect.isclass
    - variants.get
    - word_match.group
    - style_definition.split
    - <builtin>.set
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - pip._vendor.rich.layout.Layout.split_column
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - <builtin>.next
    - pip._vendor.rich.console.Console._detect_color_system
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.cells.cell_len
    - text.clear
    - style_stack.pop
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.layout._Placeholder
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached:
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ecc93b80>
    argNames:
    - self
    - layout
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 56
    functionName: pip._vendor.rich.layout._Placeholder.__init__
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 60
    functionName: pip._vendor.rich.layout._Placeholder.__rich_console__
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached:
    - abc.ABC.__init__
    - pip._vendor.rich.align.Align.center
    - pip._vendor.rich.align.Align.__init__
    - pip._vendor.rich.panel.Panel.__init__
    - pip._vendor.rich.pretty.Pretty.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.layout.Splitter
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    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: 86
    functionName: pip._vendor.rich.layout.Splitter.get_tree_icon
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - children
    - region
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 90
    functionName: pip._vendor.rich.layout.Splitter.divide
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 106
    functionName: pip._vendor.rich.layout.RowSplitter.get_tree_icon
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - children
    - region
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 109
    functionName: pip._vendor.rich.layout.RowSplitter.divide
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - <builtin>.enumerate
    - <builtin>.zip
    - pip._vendor.rich._ratio.ratio_resolve
    - typing.cast
    - fractions.Fraction
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 126
    functionName: pip._vendor.rich.layout.ColumnSplitter.get_tree_icon
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - children
    - region
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 129
    functionName: pip._vendor.rich.layout.ColumnSplitter.divide
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    - <builtin>.sum
    - <builtin>.enumerate
    - <builtin>.zip
    - pip._vendor.rich._ratio.ratio_resolve
    - typing.cast
    - fractions.Fraction
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36ca610>
    argNames:
    - self
    - renderable
    - name
    - size
    - minimum_size
    - ratio
    - visible
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 156
    functionName: pip._vendor.rich.layout.Layout.__init__
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 5
    functionsReached:
    - abc.ABC.__init__
    - pip._vendor.rich.layout._Placeholder.__init__
    - threading.RLock
    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: 184
    functionName: pip._vendor.rich.layout.Layout.renderable
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 189
    functionName: pip._vendor.rich.layout.Layout.children
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 194
    functionName: pip._vendor.rich.layout.Layout.map
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 198
    functionName: pip._vendor.rich.layout.Layout.get
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 1
    functionsReached:
    - child.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: child.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 216
    functionName: pip._vendor.rich.layout.Layout.__getitem__
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached:
    - child.get
    - pip._vendor.rich.layout.Layout.get
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 223
    functionName: pip._vendor.rich.layout.Layout.tree
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached:
    - abc.ABC.__init__
    - pip._vendor.rich.styled.Styled.__init__
    - layout.splitter.get_tree_icon
    - <builtin>.isinstance
    - pip._vendor.rich.layout.Layout.tree.recurse
    - pip._vendor.rich.tree.Tree.__init__
    - <builtin>.len
    - table.add_row
    - pip._vendor.rich.tree.Tree.add
    - pip._vendor.rich.layout.Layout.tree.summary
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.pretty.Pretty.__init__
    - typing.cast
    - <builtin>.list
    - pip._vendor.rich.table.Table.grid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - layout
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 229
    functionName: pip._vendor.rich.layout.Layout.tree.summary
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 2
    functionsReached:
    - abc.ABC.__init__
    - pip._vendor.rich.styled.Styled.__init__
    - layout.splitter.get_tree_icon
    - <builtin>.isinstance
    - <builtin>.len
    - table.add_row
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.pretty.Pretty.__init__
    - typing.cast
    - <builtin>.list
    - pip._vendor.rich.table.Table.grid
    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: layout.splitter.get_tree_icon
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 7
    argDefaultValues: []
    argNames:
    - self
    - label
    - style
    - guide_style
    - expanded
    - highlight
    - hide_root
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 23
    functionName: pip._vendor.rich.tree.Tree.__init__
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - tree
    - layout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 249
    functionName: pip._vendor.rich.layout.Layout.tree.recurse
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 1
    functionsReached:
    - abc.ABC.__init__
    - pip._vendor.rich.styled.Styled.__init__
    - layout.splitter.get_tree_icon
    - <builtin>.isinstance
    - pip._vendor.rich.layout.Layout.tree.recurse
    - pip._vendor.rich.tree.Tree.__init__
    - <builtin>.len
    - pip._vendor.rich.tree.Tree.add
    - table.add_row
    - pip._vendor.rich.layout.Layout.tree.summary
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.pretty.Pretty.__init__
    - typing.cast
    - <builtin>.list
    - pip._vendor.rich.table.Table.grid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - label
    - style
    - guide_style
    - expanded
    - highlight
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: pip._vendor.rich.tree.Tree.add
    functionSourceFile: pip._vendor.rich.tree
    functionUses: 3
    functionsReached:
    - pip._vendor.rich.tree.Tree.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - layouts
    - splitter
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 262
    functionName: pip._vendor.rich.layout.Layout.split
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 3
    functionsReached:
    - abc.ABC.__init__
    - <builtin>.isinstance
    - pip._vendor.rich.layout.Layout.__init__
    - threading.RLock
    - pip._vendor.rich.layout._Placeholder.__init__
    linkageType: pythonLinkage
    raised:
    - NoSplitter
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - layouts
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 287
    functionName: pip._vendor.rich.layout.Layout.add_split
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached:
    - abc.ABC.__init__
    - <builtin>.isinstance
    - pip._vendor.rich.layout.Layout.__init__
    - threading.RLock
    - pip._vendor.rich.layout._Placeholder.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - layouts
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 300
    functionName: pip._vendor.rich.layout.Layout.split_row
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached:
    - abc.ABC.__init__
    - <builtin>.isinstance
    - pip._vendor.rich.layout.Layout.__init__
    - threading.RLock
    - pip._vendor.rich.layout.Layout.split
    - pip._vendor.rich.layout._Placeholder.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - layouts
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 308
    functionName: pip._vendor.rich.layout.Layout.split_column
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 1
    functionsReached:
    - abc.ABC.__init__
    - <builtin>.isinstance
    - pip._vendor.rich.layout.Layout.__init__
    - threading.RLock
    - pip._vendor.rich.layout.Layout.split
    - pip._vendor.rich.layout._Placeholder.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 316
    functionName: pip._vendor.rich.layout.Layout.unsplit
    functionSourceFile: pip._vendor.rich.layout
    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
    - renderable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 320
    functionName: pip._vendor.rich.layout.Layout.update
    functionSourceFile: pip._vendor.rich.layout
    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
    - console
    - layout_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 329
    functionName: pip._vendor.rich.layout.Layout.refresh_screen
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached:
    - console.options.update_dimensions
    - console.update_screen_lines
    - console.render_lines
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: console.options.update_dimensions
    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: console.update_screen_lines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - width
    - height
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 346
    functionName: pip._vendor.rich.layout.Layout._make_region_map
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 5
    functionsReached:
    - typing.NamedTuple.__init__
    - layout.splitter.divide
    - <builtin>.sorted
    - operator.itemgetter
    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: layout.splitter.divide
    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: region_map.items
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 396
    functionName: pip._vendor.rich.layout.Layout.__rich_console__
    functionSourceFile: pip._vendor.rich.layout
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.segment.Segment.line
    - layout.splitter.divide
    - operator.itemgetter
    - typing.NamedTuple.__init__
    - row.extend
    - pip._vendor.rich.layout.Layout.render
    - <builtin>.sorted
    - render_map.values
    - region_map.items
    - <builtin>.zip
    - options.update_dimensions
    - itertools.islice
    - pip._vendor.rich.layout.Layout._make_region_map
    - <builtin>.range
    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: options.update_dimensions
    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: render_map.values
    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: row.extend
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 12
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: pip._vendor.rich.tree
    functionSourceFile: pip._vendor.rich.tree
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.tree.Tree.add
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - threading.RLock
    - operator.attrgetter
    - dataclasses.is_dataclass
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - abc.ABC.title
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich._log_render.LogRender.__init__
    - pip._vendor.rich.align.Align.__init__
    - pip._vendor.pygments.plugin.find_plugin_styles
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - pip._vendor.rich.containers.Lines.justify
    - <builtin>.hash
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.padding.Padding.unpack
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - pip._vendor.rich.text.Text.render.get_current_style
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - importlib.metadata.entry_points
    - match.span
    - jupyter_lines.isdigit
    - RE_COLOR.match
    - line.pad_right
    - pip._vendor.rich.table.Table.add_row.add_cell
    - re.finditer
    - importlib_metadata.entry_points
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - lines.isdigit
    - <builtin>.range
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - <builtin>.__import__
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - pip._vendor.rich.console.Group.__init__
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - pip._vendor.rich.table.Table.add_column
    - pip._vendor.rich.table.Table.add_row
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - pip._vendor.rich.panel.Panel.fit
    - spans.sort
    - word.get_style_at_offset
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - lines.append
    - pip._vendor.rich.table.Table.__init__
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - pip._vendor.rich._windows.get_windows_console_features
    - new_segments.insert
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.text.Text.append
    - typing.cast
    - <builtin>.ord
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - style_stack.append
    - pip._vendor.rich.text.Text.split
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - pip._vendor.rich.tree.Tree.__init__
    - pip._vendor.rich.syntax.Syntax.get_theme
    - column._cells.append
    - plain_text.replace
    - pip._vendor.rich.syntax.Syntax.__init__
    - threading.local.__init__
    - pip._vendor.rich.pretty._is_attr_object
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - pip._vendor.pygments.styles.get_style_by_name
    - inspect.isclass
    - <builtin>.set
    - style_definition.split
    - pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__
    - variants.get
    - word_match.group
    - pip._vendor.rich.syntax.ANSISyntaxTheme.__init__
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - itertools.zip_longest
    - style_definition.strip
    - os.getenv
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.NewLine.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - random.randint
    - pip._vendor.rich.protocol.is_renderable
    - line.expand_tabs
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - <builtin>.next
    - pip._vendor.rich.console.Console._detect_color_system
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - pip._vendor.rich.markdown.Markdown
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.pygments.plugin.iter_entry_points
    - text.clear
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - entrypoint.load
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 12
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 72
    functionName: pip._vendor.rich.tree.Tree.__rich_console__
    functionSourceFile: pip._vendor.rich.tree
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.style.StyleStack.pop
    - <builtin>.isinstance
    - <builtin>.sum
    - pip._vendor.rich.style.StyleStack.__init__
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - levels.pop
    - pip._vendor.rich.segment.Segment.apply_style
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - pip._vendor.rich.segment.Segment.line
    - console.render_lines
    - typing.NamedTuple.__init__
    - pip._vendor.rich.style.Style.__init__
    - <builtin>.len
    - random.randint
    - pip._vendor.rich.tree.Tree.__rich_console__.make_guide
    - options.update
    - pip._vendor.rich._loop.loop_last
    - pip._vendor.rich.style.Style.__init__._make_color
    - <builtin>.iter
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - pip._vendor.rich._loop.loop_first
    - pip._vendor.rich.style.StyleStack.push
    - <builtin>.next
    - levels.append
    - <builtin>.int
    - RE_COLOR.match
    - <builtin>.all
    - color_rgb.split
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - index
    - style
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 94
    functionName: pip._vendor.rich.tree.Tree.__rich_console__.make_guide
    functionSourceFile: pip._vendor.rich.tree
    functionUses: 1
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: levels.pop
    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: levels.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - console
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 169
    functionName: pip._vendor.rich.tree.Tree.__rich_measure__
    functionSourceFile: pip._vendor.rich.tree
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - render_width.normalize
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - variants.get
    - <builtin>.set
    - inspect.isclass
    - open_tag.parameters.strip
    - style_definition.split
    - style_definition.strip
    - <builtin>.hash
    - color_match.groups
    - highlight_text.copy_styles
    - abc.ABC.background_color.lower
    - pip._vendor.rich.measure.Measurement.get
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - pip._vendor.rich.protocol.is_renderable
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - <builtin>.type
    - RE_HANDLER.match
    - typing.cast
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - color_rgb.split
    - pip._vendor.rich.protocol.rich_cast
    - style_stack.append
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - <builtin>.getattr
    - style_stack.pop
    - <builtin>.all
    - <builtin>.repr
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.max
    - rich_visited_set.add
    - <builtin>.hasattr
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: -1
    functionName: pip._vendor.rich.diagnose
    functionSourceFile: pip._vendor.rich.diagnose
    functionUses: 0
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - dataclasses.is_dataclass
    - threading.RLock
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - _console.print
    - <builtin>.hash
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.inspect
    - pip._vendor.rich.get_console
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - <builtin>.callable
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - lines.isdigit
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - pip._vendor.rich.panel.Panel.fit
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - platform.system
    - inspect.ismodule
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - pip._vendor.rich._inspect.Inspect.__init__
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - threading.local.__init__
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - os.getenv
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - pip._vendor.rich._inspect.Inspect._make_title
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - open_tag.name.startswith
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - pip._vendor.rich.diagnose.report
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 10
    functionName: pip._vendor.rich.diagnose.report
    functionSourceFile: pip._vendor.rich.diagnose
    functionUses: 1
    functionsReached:
    - <builtin>.sum
    - pip._vendor.rich.text.Text.__init__
    - pip._vendor.rich._pick.pick_bool
    - pip._vendor.rich.console.Console.print
    - dataclasses.is_dataclass
    - threading.RLock
    - operator.attrgetter
    - handler_match.groups
    - pip._vendor.rich.style.Style.null
    - pip._vendor.rich.text.Text.split.flatten_spans
    - match.groups
    - abc.ABC.__init__
    - <builtin>.str
    - line.divide
    - pip._vendor.rich.segment.Segment.adjust_line_length
    - pip._vendor.rich.align.Align.__init__
    - <builtin>.tuple
    - pip._vendor.rich.text.Text.divide
    - pip._vendor.rich._wrap.words
    - pip._vendor.rich.pretty.Pretty.__init__
    - _console.print
    - <builtin>.hash
    - pip._vendor.rich.containers.Lines.justify
    - highlight_text.copy_styles
    - jupyter_columns.isdigit
    - line.truncate
    - <builtin>.sorted
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.cells.set_cell_size
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich._loop.loop_last
    - word_match.span
    - <builtin>.zip
    - pip._vendor.rich.cells.get_character_cell_size
    - pip._vendor.rich.inspect
    - pip._vendor.rich.get_console
    - pip._vendor.rich.console.get_windows_console_features
    - _TERM_COLORS.get
    - pip._vendor.rich.protocol.rich_cast
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.control.Control.__init__
    - pip._vendor.rich.markup.render.pop_style
    - <builtin>.repr
    - pip._vendor.rich.text.Text.join
    - columns.isdigit
    - pip._vendor.rich.control.strip_control_codes
    - re_word.match
    - <builtin>.hasattr
    - _options.reset_height
    - hook.process_renderables
    - pip._vendor.rich.containers.Lines.extend
    - tag.name.startswith
    - RE_TAGS.finditer
    - next_word.get_style_at_offset
    - pip._vendor.rich.style.Style.combine
    - re.escape
    - marshal.dumps
    - pip._vendor.rich.console.Console.render
    - line.rstrip_end
    - <builtin>.enumerate
    - text.partition
    - open_tag.parameters.strip
    - pip._vendor.rich.text.Text.render.get_current_style
    - pip._vendor.rich.text.Text.join.iter_text
    - <builtin>.min
    - term.rpartition
    - tokens.append
    - abc.ABC.background_color.lower
    - ast.literal_eval
    - pip._vendor.rich.style.Style.parse
    - typing.NamedTuple.lower
    - <builtin>.iter
    - pip._vendor.rich.containers.Lines.__iter__
    - pip._vendor.rich.theme.ThemeStack.__init__
    - pip._vendor.rich.cells.chop_cells
    - match.span
    - jupyter_lines.isdigit
    - <builtin>.callable
    - line.pad_right
    - RE_COLOR.match
    - re.finditer
    - pip._vendor.rich.console.detect_legacy_windows
    - <builtin>.max
    - pip._vendor.rich.console.Console._collect_renderables.check_text
    - pip._vendor.rich.containers.Lines.__init__
    - <builtin>.range
    - lines.isdigit
    - pip._vendor.rich.styled.Styled.__init__
    - pip._vendor.rich.text.Text.copy
    - <builtin>.isinstance
    - attr.has
    - <builtin>.bool
    - pip._vendor.rich.style.Style.copy
    - original_word.lower
    - pip._vendor.rich.style.Style.normalize
    - pip._vendor.rich.text.Text.__rich_console__
    - pip._vendor.rich.text.Text.blank_copy
    - pip._vendor.rich.cells.cached_cell_len
    - ANSI_COLOR_NAMES.get
    - line.split
    - pip._vendor.rich.containers.Lines.pop
    - line.pad_left
    - line.rstrip
    - pip._vendor.rich.text.Text.wrap
    - cropped_line.append
    - STYLE_ATTRIBUTES.get
    - ctypes.wintypes.DWORD
    - color_match.groups
    - <builtin>.list
    - match.end
    - pip._vendor.rich.segment.Segment.line
    - pip._vendor.rich.panel.Panel.fit
    - spans.sort
    - word.get_style_at_offset
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - lines.append
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich.cells._get_codepoint_cell_size
    - new_segments.insert
    - pip._vendor.rich.control.Control.move_to
    - pip._vendor.rich.color.Color.parse
    - pip._vendor.rich.text.Text.append
    - platform.system
    - inspect.ismodule
    - typing.cast
    - <builtin>.ord
    - <builtin>.int
    - pip._vendor.rich.text.Text.split
    - style_stack.append
    - <builtin>.all
    - <builtin>.getattr
    - pip._vendor.rich._wrap.divide_line
    - color_rgb.split
    - pip._vendor.rich.console.Console.__init__
    - word.rstrip
    - <builtin>.type
    - pip._vendor.rich.pretty._safe_isinstance
    - pip._vendor.rich.console.ScreenUpdate.__rich_console__
    - operator.itemgetter
    - pip._vendor.rich._inspect.Inspect.__init__
    - plain_text.replace
    - pip._vendor.rich.pretty._is_attr_object
    - threading.local.__init__
    - style.strip
    - pip._vendor.rich.console.Console.render_str
    - pip._vendor.rich.console.Console.get_style
    - pip._vendor.rich.markup._parse
    - variants.get
    - inspect.isclass
    - style_definition.split
    - word_match.group
    - <builtin>.set
    - pip._vendor.rich.segment.Segment.apply_style
    - pip._vendor.rich.text.Text.render
    - style_definition.strip
    - os.getenv
    - itertools.zip_longest
    - pip._vendor.rich.console.Console._collect_renderables.align_append
    - typing.cast.__rich_console__
    - pip._vendor.rich._inspect.Inspect._make_title
    - pip._vendor.rich.console.NewLine.__init__
    - typing.NamedTuple.__init__
    - pip._vendor.rich.console.Console._collect_renderables
    - line.expand_tabs
    - random.randint
    - open_tag.name.startswith
    - pip._vendor.rich.markup.render
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - tag_text.partition
    - pip._vendor.rich.console.Console._detect_color_system
    - <builtin>.next
    - RE_HANDLER.match
    - <builtin>.reversed
    - pip._vendor.rich.pretty.is_expandable
    - functools.partial
    - pip._vendor.rich.console._is_jupyter
    - text.clear
    - pip._vendor.rich.cells.cell_len
    - style_stack.pop
    - pip._vendor.rich.panel.Panel.__init__
    - rich_visited_set.add
    - pip._vendor.rich.segment.Segment.split_and_crop_lines
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: -1
    functionName: pip._vendor.rich.prompt
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - <builtin>.bool
    - Confirm.ask
    - threading.RLock
    - Prompt.ask
    - threading.local.__init__
    - <builtin>.str
    - ctypes.wintypes.DWORD
    - term.rpartition
    - pip._vendor.rich.print
    - os.getenv
    - jupyter_columns.isdigit
    - <builtin>.len
    - pip._vendor.rich._windows.get_windows_console_features
    - pip._vendor.rich._win32_console.GetStdHandle
    - pip._vendor.rich.theme.ThemeStack.__init__
    - sys.getwindowsversion
    - pip._vendor.rich._win32_console.GetConsoleMode
    - pip._vendor.rich.console.Console._detect_color_system
    - typing.cast
    - write_console.print
    - pip._vendor.rich.get_console
    - <builtin>.int
    - pip._vendor.rich.console.get_windows_console_features
    - pip._vendor.rich.console._is_jupyter
    - _TERM_COLORS.get
    - jupyter_lines.isdigit
    - IntPrompt.ask
    - lines.isdigit
    - pip._vendor.rich.console.detect_legacy_windows
    - columns.isdigit
    - pip._vendor.rich.console.Console.__init__
    - pip._vendor.rich._log_render.LogRender.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 23
    functionName: pip._vendor.rich.prompt.InvalidResponse.__init__
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 26
    functionName: pip._vendor.rich.prompt.InvalidResponse.__rich__
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3fd2e0>
    argNames:
    - self
    - prompt
    - console
    - password
    - choices
    - show_default
    - show_choices
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 53
    functionName: pip._vendor.rich.prompt.PromptBase.__init__
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - get_console
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.rich.prompt.PromptBase
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b5dc0>
    argNames:
    - cls
    - prompt
    - console
    - password
    - choices
    - show_default
    - show_choices
    - default
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 107
    functionName: pip._vendor.rich.prompt.PromptBase.ask
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.rich.prompt.PromptBase.__init__
    - <builtin>.sum
    - tag.name.startswith
    - pip._vendor.rich.style.Style.normalize
    - original_word.lower
    - operator.attrgetter
    - RE_TAGS.finditer
    - handler_match.groups
    - pip._vendor.rich.text.Text.from_markup
    - pip._vendor.rich.style.Style.null
    - ANSI_COLOR_NAMES.get
    - marshal.dumps
    - plain_text.replace
    - match.groups
    - style.strip
    - <builtin>.str
    - STYLE_ATTRIBUTES.get
    - pip._vendor.rich.markup._parse
    - <builtin>.enumerate
    - open_tag.parameters.strip
    - variants.get
    - style_definition.split
    - style_definition.strip
    - color_match.groups
    - <builtin>.hash
    - abc.ABC.background_color.lower
    - open_tag.name.startswith
    - typing.NamedTuple.__init__
    - ast.literal_eval
    - <builtin>.len
    - pip._vendor.rich.style.Style.__init__
    - random.randint
    - <builtin>.sorted
    - pip._vendor.rich.style.Style.parse
    - pip._vendor.rich.style.Style.__init__._make_color
    - pip._vendor.rich.markup.render
    - <builtin>.iter
    - pip._vendor.rich.text.Text.append
    - pip._vendor.rich.color.Color.parse
    - typing.NamedTuple.lower
    - tag_text.partition
    - <builtin>.next
    - RE_HANDLER.match
    - match.span
    - <builtin>.reversed
    - <builtin>.int
    - style_stack.append
    - get_console
    - pip._vendor.rich._emoji_replace._emoji_replace
    - pip._vendor.rich.markup.render.pop_style
    - RE_COLOR.match
    - style_stack.pop
    - <builtin>.all
    - pip._vendor.rich.control.strip_control_codes
    - color_rgb.split
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - default
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 143
    functionName: pip._vendor.rich.prompt.PromptBase.render_default
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 2
    functionsReached:
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.len
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - default
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 154
    functionName: pip._vendor.rich.prompt.PromptBase.make_prompt
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - pip._vendor.rich.prompt.PromptBase.render_default
    - prompt.append
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: prompt.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36c48e0>
    argNames:
    - cls
    - console
    - prompt
    - password
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 186
    functionName: pip._vendor.rich.prompt.PromptBase.get_input
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 1
    functionsReached:
    - console.input
    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: console.input
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 205
    functionName: pip._vendor.rich.prompt.PromptBase.check_choice
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 2
    functionsReached:
    - value.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 217
    functionName: pip._vendor.rich.prompt.PromptBase.process_response
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 1
    functionsReached:
    - value.strip
    - pip._vendor.rich.prompt.PromptBase.check_choice
    linkageType: pythonLinkage
    raised:
    - InvalidResponse
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - value
    - error
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 240
    functionName: pip._vendor.rich.prompt.PromptBase.on_validate_error
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 1
    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: 249
    functionName: pip._vendor.rich.prompt.PromptBase.pre_prompt
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - default
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 262
    functionName: pip._vendor.rich.prompt.PromptBase.__call__
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.prompt.PromptBase.make_prompt
    - <builtin>.isinstance
    - pip._vendor.rich.prompt.PromptBase.pre_prompt
    - pip._vendor.rich.prompt.PromptBase.get_input
    - console.input
    - <builtin>.len
    - pip._vendor.rich.prompt.PromptBase.render_default
    - prompt.append
    - pip._vendor.rich.prompt.PromptBase.on_validate_error
    - value.strip
    - pip._vendor.rich.prompt.PromptBase.check_choice
    - pip._vendor.rich.control.strip_control_codes
    - pip._vendor.rich.prompt.PromptBase.process_response
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - default
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 335
    functionName: pip._vendor.rich.prompt.Confirm.render_default
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 0
    functionsReached:
    - pip._vendor.rich.control.strip_control_codes
    - <builtin>.len
    - pip._vendor.rich.text.Text.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 340
    functionName: pip._vendor.rich.prompt.Confirm.process_response
    functionSourceFile: pip._vendor.rich.prompt
    functionUses: 0
    functionsReached:
    - value.strip
    linkageType: pythonLinkage
    raised:
    - InvalidResponse
    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: Confirm.ask
    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: IntPrompt.ask
    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: Prompt.ask
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.chardet.langhungarianmodel
    functionSourceFile: pip._vendor.chardet.langhungarianmodel
    functionUses: 0
    functionsReached:
    - typing.NamedTuple.__init__
    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: 7
    functionLinenumber: -1
    functionName: pip._vendor.chardet.cli.chardetect
    functionSourceFile: pip._vendor.chardet.cli.chardetect
    functionUses: 0
    functionsReached:
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - parser.parse_args
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - coding_sm.reset
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - coding_sm.get_coding_state_machine
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.close
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.feed
    - prober.get_confidence
    - <builtin>.super
    - argparse.ArgumentParser
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - logging.getLogger
    - f.isatty
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - <builtin>.bytearray
    - <builtin>.max
    - <builtin>.isinstance
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - lower_charset_name.startswith
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - argparse.FileType
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - <builtin>.len
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - max_prober.get_confidence
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.cli.chardetect.main
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - group_prober.get_confidence
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.chardet.cli.chardetect.description_of
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - coding_sm.next_state
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - charset_name.lower
    - prober.feed
    - parser.add_argument
    - <builtin>.print
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36c40a0>
    - <ast.Constant object at 0x7f30e36c4df0>
    - <ast.Constant object at 0x7f30e36c4f10>
    argNames:
    - lines
    - name
    - minimal
    - should_rename_legacy
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 24
    functionName: pip._vendor.chardet.cli.chardetect.description_of
    functionSourceFile: pip._vendor.chardet.cli.chardetect
    functionUses: 2
    functionsReached:
    - group_prober.get_confidence
    - <builtin>.isinstance
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - lower_charset_name.startswith
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - coding_sm.get_coding_state_machine
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - coding_sm.next_state
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.close
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - pip._vendor.chardet.universaldetector.UniversalDetector.feed
    - prober.get_confidence
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - <builtin>.super
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - charset_name.lower
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - <builtin>.len
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - max_prober.get_confidence
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - logging.getLogger
    - prober.feed
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - <builtin>.max
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    - coding_sm.reset
    - <builtin>.bytearray
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 7
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36ca100>
    argNames:
    - argv
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 58
    functionName: pip._vendor.chardet.cli.chardetect.main
    functionSourceFile: pip._vendor.chardet.cli.chardetect
    functionUses: 1
    functionsReached:
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - parser.parse_args
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - coding_sm.reset
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - coding_sm.get_coding_state_machine
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.close
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.feed
    - prober.get_confidence
    - <builtin>.super
    - argparse.ArgumentParser
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - logging.getLogger
    - f.isatty
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - <builtin>.bytearray
    - <builtin>.max
    - <builtin>.isinstance
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - lower_charset_name.startswith
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - argparse.FileType
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - <builtin>.len
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - max_prober.get_confidence
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - group_prober.get_confidence
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.chardet.cli.chardetect.description_of
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - coding_sm.next_state
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - charset_name.lower
    - prober.feed
    - parser.add_argument
    - <builtin>.print
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    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: 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: f.isatty
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.cli
    functionSourceFile: pip._vendor.chardet.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.chardet.metadata.languages
    functionSourceFile: pip._vendor.chardet.metadata.languages
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.chardet.metadata.languages.Language.__init__
    - <builtin>.sorted
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6949640>
    - <ast.Constant object at 0x7f30d6949610>
    - <ast.Constant object at 0x7f30d69495e0>
    - <ast.Constant object at 0x7f30d69495b0>
    - <ast.Constant object at 0x7f30d6949580>
    - <ast.Constant object at 0x7f30d6949550>
    argNames:
    - self
    - name
    - iso_code
    - use_ascii
    - charsets
    - alphabet
    - wiki_start_pages
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._vendor.chardet.metadata.languages.Language.__init__
    functionSourceFile: pip._vendor.chardet.metadata.languages
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - <builtin>.sorted
    - <builtin>.set
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: pip._vendor.chardet.metadata.languages.Language.__repr__
    functionSourceFile: pip._vendor.chardet.metadata.languages
    functionUses: 0
    functionsReached:
    - k.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.chardet.metadata
    functionSourceFile: pip._vendor.chardet.metadata
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.idna.codec
    functionSourceFile: pip._vendor.idna.codec
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f9933a00>
    argNames:
    - self
    - data
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 10
    functionName: pip._vendor.idna.codec.Codec.encode
    functionSourceFile: pip._vendor.idna.codec
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - pip._vendor.idna.codec.Codec.encode
    linkageType: pythonLinkage
    raised:
    - IDNAError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b96d0>
    argNames:
    - self
    - data
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 19
    functionName: pip._vendor.idna.codec.Codec.decode
    functionSourceFile: pip._vendor.idna.codec
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - pip._vendor.idna.codec.Codec.decode
    linkageType: pythonLinkage
    raised:
    - IDNAError
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - data
    - errors
    - final
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 29
    functionName: pip._vendor.idna.codec.IncrementalEncoder._buffer_encode
    functionSourceFile: pip._vendor.idna.codec
    functionUses: 0
    functionsReached:
    - pip._vendor.idna.core._is_script
    - <builtin>.isinstance
    - pip._vendor.idna.core.check_bidi
    - label_bytes.decode
    - pip._vendor.idna.core._combining_class
    - idnadata.joining_types.get
    - unicodedata.normalize
    - unicodedata.category
    - unicodedata.bidirectional
    - pip._vendor.idna.core.ulabel
    - <builtin>.str
    - pip._vendor.idna.core.valid_contexto
    - unicodedata.combining
    - pip._vendor.idna.core.alabel
    - s.encode
    - <builtin>.enumerate
    - pip._vendor.idna.intranges.intranges_contain
    - label_bytes.lower
    - pip._vendor.idna.intranges._encode_range
    - <builtin>.len
    - unicodedata.name
    - pip._vendor.idna.core.valid_label_length
    - pip._vendor.idna.core.check_hyphen_ok
    - <builtin>.ord
    - bisect.bisect_left
    - label.encode
    - <builtin>.chr
    - _unicode_dots_re.split
    - pip._vendor.idna.core._punycode
    - pip._vendor.idna.core.check_nfc
    - label.decode
    - pip._vendor.idna.intranges._decode_range
    - label_bytes.startswith
    - pip._vendor.idna.core.valid_contextj
    - pip._vendor.idna.core.check_label
    - pip._vendor.idna.core.check_initial_combiner
    - result.append
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - IDNAError
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - data
    - errors
    - final
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 62
    functionName: pip._vendor.idna.codec.IncrementalDecoder._buffer_decode
    functionSourceFile: pip._vendor.idna.codec
    functionUses: 0
    functionsReached:
    - pip._vendor.idna.core._is_script
    - <builtin>.isinstance
    - pip._vendor.idna.core.check_bidi
    - label_bytes.decode
    - pip._vendor.idna.core._combining_class
    - idnadata.joining_types.get
    - unicodedata.normalize
    - unicodedata.category
    - unicodedata.bidirectional
    - pip._vendor.idna.core.ulabel
    - pip._vendor.idna.core.valid_contexto
    - unicodedata.combining
    - <builtin>.enumerate
    - pip._vendor.idna.intranges.intranges_contain
    - label_bytes.lower
    - pip._vendor.idna.intranges._encode_range
    - <builtin>.len
    - unicodedata.name
    - pip._vendor.idna.core.check_hyphen_ok
    - <builtin>.ord
    - bisect.bisect_left
    - label.encode
    - <builtin>.chr
    - _unicode_dots_re.split
    - label_bytes.startswith
    - pip._vendor.idna.core.check_nfc
    - label.decode
    - pip._vendor.idna.intranges._decode_range
    - pip._vendor.idna.core.valid_contextj
    - pip._vendor.idna.core.check_label
    - pip._vendor.idna.core.check_initial_combiner
    - result.append
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - IDNAError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 102
    functionName: pip._vendor.idna.codec.getregentry
    functionSourceFile: pip._vendor.idna.codec
    functionUses: 0
    functionsReached:
    - codecs.CodecInfo
    - codecs.Codec.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.idna.compat
    functionSourceFile: pip._vendor.idna.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - label
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 5
    functionName: pip._vendor.idna.compat.ToASCII
    functionSourceFile: pip._vendor.idna.compat
    functionUses: 0
    functionsReached:
    - pip._vendor.idna.core._is_script
    - pip._vendor.idna.core.valid_string_length
    - s.split
    - <builtin>.isinstance
    - pip._vendor.idna.core.check_bidi
    - label_bytes.decode
    - pip._vendor.idna.core._combining_class
    - idnadata.joining_types.get
    - pip._vendor.idna.core.encode
    - unicodedata.normalize
    - unicodedata.category
    - unicodedata.bidirectional
    - pip._vendor.idna.core.ulabel
    - <builtin>.str
    - pip._vendor.idna.core.valid_contexto
    - unicodedata.combining
    - pip._vendor.idna.core.alabel
    - s.encode
    - <builtin>.enumerate
    - pip._vendor.idna.core.uts46_remap
    - label_bytes.lower
    - pip._vendor.idna.intranges.intranges_contain
    - pip._vendor.idna.intranges._encode_range
    - s.decode
    - <builtin>.len
    - unicodedata.name
    - pip._vendor.idna.core.valid_label_length
    - pip._vendor.idna.core.check_hyphen_ok
    - <builtin>.ord
    - bisect.bisect_left
    - label.encode
    - <builtin>.chr
    - _unicode_dots_re.split
    - pip._vendor.idna.core._punycode
    - pip._vendor.idna.core.check_nfc
    - label.decode
    - label_bytes.startswith
    - pip._vendor.idna.intranges._decode_range
    - pip._vendor.idna.core.valid_contextj
    - pip._vendor.idna.core.check_label
    - pip._vendor.idna.core.check_initial_combiner
    - result.append
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - label
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 8
    functionName: pip._vendor.idna.compat.ToUnicode
    functionSourceFile: pip._vendor.idna.compat
    functionUses: 0
    functionsReached:
    - pip._vendor.idna.core._is_script
    - s.split
    - <builtin>.isinstance
    - pip._vendor.idna.core.check_bidi
    - label_bytes.decode
    - pip._vendor.idna.core._combining_class
    - idnadata.joining_types.get
    - unicodedata.normalize
    - unicodedata.category
    - unicodedata.bidirectional
    - pip._vendor.idna.core.ulabel
    - pip._vendor.idna.core.valid_contexto
    - unicodedata.combining
    - <builtin>.enumerate
    - pip._vendor.idna.core.uts46_remap
    - label_bytes.lower
    - pip._vendor.idna.intranges.intranges_contain
    - pip._vendor.idna.intranges._encode_range
    - s.decode
    - <builtin>.len
    - unicodedata.name
    - pip._vendor.idna.core.check_hyphen_ok
    - <builtin>.ord
    - pip._vendor.idna.core.decode
    - bisect.bisect_left
    - label.encode
    - <builtin>.chr
    - _unicode_dots_re.split
    - label_bytes.startswith
    - pip._vendor.idna.core.check_nfc
    - label.decode
    - pip._vendor.idna.intranges._decode_range
    - pip._vendor.idna.core.valid_contextj
    - pip._vendor.idna.core.check_label
    - pip._vendor.idna.core.check_initial_combiner
    - result.append
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 11
    functionName: pip._vendor.idna.compat.nameprep
    functionSourceFile: pip._vendor.idna.compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: pip._vendor.colorama.ansitowin32
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 0
    functionsReached:
    - pip._vendor.colorama.winterm.WinTerm.set_attrs
    - ctypes.byref
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.winterm.WinTerm.__init__
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.Structure.__init__
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 30
    functionName: pip._vendor.colorama.winterm.WinTerm.__init__
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 1
    functionsReached:
    - pip._vendor.colorama.winterm.WinTerm.set_attrs
    - ctypes.byref
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.Structure.__init__
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - wrapped
    - converter
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 22
    functionName: pip._vendor.colorama.ansitowin32.StreamWrapper.__init__
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: pip._vendor.colorama.ansitowin32.StreamWrapper.__getattr__
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._vendor.colorama.ansitowin32.StreamWrapper.__enter__
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 0
    functionsReached:
    - io.TextIOWrapper.__enter__
    - sys.stdout.__enter__
    - sys.stdout.buffer.__enter__
    - sys.stderr.__enter__
    - pip._vendor.colorama.ansitowin32.StreamWrapper.__enter__
    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: io.TextIOWrapper.__enter__
    functionSourceFile: io
    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: sys.stdout.buffer.__enter__
    functionSourceFile: sys
    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: sys.stderr.__enter__
    functionSourceFile: sys
    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: sys.stdout.__enter__
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: pip._vendor.colorama.ansitowin32.StreamWrapper.__exit__
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 0
    functionsReached:
    - pip._vendor.colorama.ansitowin32.StreamWrapper.__exit__
    - sys.stderr.__exit__
    - sys.stdout.__exit__
    - io.TextIOWrapper.__exit__
    - sys.stdout.buffer.__exit__
    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.stderr.__exit__
    functionSourceFile: sys
    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: sys.stdout.__exit__
    functionSourceFile: sys
    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: io.TextIOWrapper.__exit__
    functionSourceFile: io
    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: sys.stdout.buffer.__exit__
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 40
    functionName: pip._vendor.colorama.ansitowin32.StreamWrapper.__setstate__
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 43
    functionName: pip._vendor.colorama.ansitowin32.StreamWrapper.__getstate__
    functionSourceFile: pip._vendor.colorama.ansitowin32
    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
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 46
    functionName: pip._vendor.colorama.ansitowin32.StreamWrapper.write
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 5
    functionsReached:
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.colorama.win32.FillConsoleOutputAttribute
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_osc
    - pip._vendor.colorama.winterm.WinTerm.erase_screen
    - ctypes.wintypes._COORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write_and_convert
    - <builtin>.dict
    - pip._vendor.colorama.winterm.WinTerm.get_position
    - ctypes.Structure.__init__
    - match.groups
    - ctypes.LibraryLoader.kernel32.SetConsoleTitleW
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputAttribute
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write_plain_text
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleCursorPosition
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.call_win32
    - <builtin>.tuple
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputCharacterA
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.extract_params
    - pip._vendor.colorama.winterm.WinTerm.set_cursor_position
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write
    - pip._vendor.colorama.win32.FillConsoleOutputCharacter
    - pip._vendor.colorama.winterm.WinTerm.cursor_adjust
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.reset_all
    - <builtin>.len
    - ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    - pip._vendor.colorama.ansitowin32.StreamWrapper.write
    - ctypes.c_char
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - io.TextIOWrapper.flush
    - paramstring.count
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_ansi
    - match.span
    - sys.stdout.buffer.flush
    - pip._vendor.colorama.winterm.WinTerm.erase_line
    - sys.stderr.write
    - ctypes.c_char.encode
    - <builtin>.int
    - sys.stdout.flush
    - paramstring.split
    - sys.stderr.flush
    - io.TextIOWrapper.write
    - sys.stdout.buffer.write
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    - pip._vendor.colorama.win32.SetConsoleTitle
    - pip._vendor.colorama.winterm.WinTerm.set_title
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 175
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32.write
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 5
    functionsReached:
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.colorama.win32.FillConsoleOutputAttribute
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_osc
    - pip._vendor.colorama.winterm.WinTerm.erase_screen
    - ctypes.wintypes._COORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write_and_convert
    - <builtin>.dict
    - pip._vendor.colorama.winterm.WinTerm.get_position
    - ctypes.Structure.__init__
    - match.groups
    - ctypes.LibraryLoader.kernel32.SetConsoleTitleW
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputAttribute
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write_plain_text
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleCursorPosition
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.call_win32
    - <builtin>.tuple
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputCharacterA
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.extract_params
    - pip._vendor.colorama.winterm.WinTerm.set_cursor_position
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write
    - pip._vendor.colorama.win32.FillConsoleOutputCharacter
    - pip._vendor.colorama.winterm.WinTerm.cursor_adjust
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.reset_all
    - <builtin>.len
    - ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    - pip._vendor.colorama.ansitowin32.StreamWrapper.write
    - ctypes.c_char
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - io.TextIOWrapper.flush
    - paramstring.count
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_ansi
    - match.span
    - sys.stdout.buffer.flush
    - pip._vendor.colorama.winterm.WinTerm.erase_line
    - sys.stderr.write
    - ctypes.c_char.encode
    - <builtin>.int
    - sys.stdout.flush
    - paramstring.split
    - sys.stderr.flush
    - io.TextIOWrapper.write
    - sys.stdout.buffer.write
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    - pip._vendor.colorama.win32.SetConsoleTitle
    - pip._vendor.colorama.winterm.WinTerm.set_title
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: pip._vendor.colorama.ansitowin32.StreamWrapper.isatty
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 9
    functionsReached:
    - sys.stdout.buffer.isatty
    - io.TextIOWrapper.isatty
    - sys.stdout.isatty
    - pip._vendor.colorama.ansitowin32.StreamWrapper.isatty
    - sys.stderr.isatty
    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.stderr.isatty
    functionSourceFile: sys
    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: sys.stdout.buffer.isatty
    functionSourceFile: sys
    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: io.TextIOWrapper.isatty
    functionSourceFile: io
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 62
    functionName: pip._vendor.colorama.ansitowin32.StreamWrapper.closed
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd8102b0>
    - <ast.Constant object at 0x7f30fd810df0>
    - <ast.Constant object at 0x7f30fd810a30>
    argNames:
    - self
    - wrapped
    - convert
    - strip
    - autoreset
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 81
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32.__init__
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 8
    functionsReached:
    - sys.stdout.buffer.fileno
    - ctypes.byref
    - pip._vendor.colorama.ansitowin32.StreamWrapper.__init__
    - <builtin>.bool
    - msvcrt.get_osfhandle
    - pip._vendor.colorama.win32.<lambda2>
    - pip._vendor.colorama.winterm.enable_vt_processing
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.get_win32_calls
    - <builtin>.dict
    - ctypes.Structure.__init__
    - io.TextIOWrapper.isatty
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.GetConsoleMode
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - pip._vendor.colorama.ansitowin32.StreamWrapper.isatty
    - pip._vendor.colorama.win32.winapi_test
    - io.TextIOWrapper.fileno
    - <builtin>.any
    - sys.stdout.isatty
    - pip._vendor.colorama.win32.SetConsoleMode
    - sys.stderr.fileno
    - ctypes.LibraryLoader.kernel32.SetConsoleMode
    - sys.stdout.buffer.isatty
    - pip._vendor.colorama.win32._winapi_test
    - sys.stderr.isatty
    - ctypes.LibraryLoader.kernel32.GetConsoleMode
    - sys.stdout.fileno
    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: pip._vendor.colorama.win32.<lambda2>
    functionSourceFile: ''
    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: sys.stdout.buffer.fileno
    functionSourceFile: sys
    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: io.TextIOWrapper.fileno
    functionSourceFile: io
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - fd
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 178
    functionName: pip._vendor.colorama.winterm.enable_vt_processing
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 9
    functionsReached:
    - <builtin>.any
    - ctypes.byref
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleMode
    - <builtin>.bool
    - msvcrt.get_osfhandle
    - pip._vendor.colorama.win32.GetConsoleMode
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - ctypes.LibraryLoader.kernel32.SetConsoleMode
    - pip._vendor.colorama.win32._winapi_test
    - pip._vendor.colorama.win32.winapi_test
    - ctypes.LibraryLoader.kernel32.GetConsoleMode
    - ctypes.Structure.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 131
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32.get_win32_calls
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 9
    functionsReached:
    - <builtin>.dict
    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: 121
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32.should_wrap
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 192
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32.write_and_convert
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 5
    functionsReached:
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.colorama.win32.FillConsoleOutputAttribute
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_osc
    - pip._vendor.colorama.winterm.WinTerm.erase_screen
    - ctypes.wintypes._COORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write_and_convert
    - pip._vendor.colorama.winterm.WinTerm.get_position
    - <builtin>.dict
    - ctypes.Structure.__init__
    - match.groups
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputAttribute
    - paramstring.count
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write_plain_text
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleCursorPosition
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.call_win32
    - <builtin>.tuple
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputCharacterA
    - pip._vendor.colorama.winterm.WinTerm.set_cursor_position
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.extract_params
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write
    - pip._vendor.colorama.win32.FillConsoleOutputCharacter
    - pip._vendor.colorama.winterm.WinTerm.cursor_adjust
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.reset_all
    - <builtin>.len
    - ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    - pip._vendor.colorama.ansitowin32.StreamWrapper.write
    - ctypes.c_char
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - io.TextIOWrapper.flush
    - match.span
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_ansi
    - pip._vendor.colorama.winterm.WinTerm.erase_line
    - sys.stdout.buffer.flush
    - ctypes.LibraryLoader.kernel32.SetConsoleTitleW
    - ctypes.c_char.encode
    - sys.stderr.write
    - paramstring.split
    - <builtin>.int
    - sys.stdout.flush
    - sys.stderr.flush
    - io.TextIOWrapper.write
    - sys.stdout.buffer.write
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    - pip._vendor.colorama.win32.SetConsoleTitle
    - pip._vendor.colorama.winterm.WinTerm.set_title
    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.stdout.buffer.write
    functionSourceFile: sys
    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: io.TextIOWrapper.write
    functionSourceFile: io
    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: sys.stdout.buffer.flush
    functionSourceFile: sys
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 185
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32.reset_all
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 5
    functionsReached:
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.colorama.win32.FillConsoleOutputAttribute
    - pip._vendor.colorama.winterm.WinTerm.erase_screen
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_osc
    - ctypes.wintypes._COORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write_and_convert
    - pip._vendor.colorama.winterm.WinTerm.get_position
    - <builtin>.dict
    - ctypes.Structure.__init__
    - match.groups
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputAttribute
    - paramstring.count
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write_plain_text
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleCursorPosition
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.call_win32
    - <builtin>.tuple
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputCharacterA
    - pip._vendor.colorama.winterm.WinTerm.set_cursor_position
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.extract_params
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write
    - pip._vendor.colorama.win32.FillConsoleOutputCharacter
    - pip._vendor.colorama.winterm.WinTerm.cursor_adjust
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.reset_all
    - <builtin>.len
    - ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    - pip._vendor.colorama.ansitowin32.StreamWrapper.write
    - ctypes.c_char
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - io.TextIOWrapper.flush
    - match.span
    - pip._vendor.colorama.winterm.WinTerm.erase_line
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_ansi
    - sys.stdout.buffer.flush
    - ctypes.LibraryLoader.kernel32.SetConsoleTitleW
    - sys.stderr.write
    - ctypes.c_char.encode
    - <builtin>.int
    - sys.stdout.flush
    - paramstring.split
    - sys.stderr.flush
    - io.TextIOWrapper.write
    - sys.stdout.buffer.write
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    - pip._vendor.colorama.win32.SetConsoleTitle
    - pip._vendor.colorama.winterm.WinTerm.set_title
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - command
    - params
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 238
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32.call_win32
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 7
    functionsReached:
    - ctypes.byref
    - pip._vendor.colorama.win32.FillConsoleOutputAttribute
    - pip._vendor.colorama.winterm.WinTerm.erase_screen
    - ctypes.wintypes._COORD
    - pip._vendor.colorama.winterm.WinTerm.get_position
    - <builtin>.dict
    - ctypes.Structure.__init__
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputAttribute
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleCursorPosition
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputCharacterA
    - pip._vendor.colorama.winterm.WinTerm.set_cursor_position
    - pip._vendor.colorama.win32.FillConsoleOutputCharacter
    - pip._vendor.colorama.winterm.WinTerm.cursor_adjust
    - ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    - ctypes.c_char
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - pip._vendor.colorama.winterm.WinTerm.erase_line
    - ctypes.c_char.encode
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 260
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_osc
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 6
    functionsReached:
    - match.span
    - paramstring.split
    - match.groups
    - pip._vendor.colorama.win32.SetConsoleTitle
    - pip._vendor.colorama.winterm.WinTerm.set_title
    - paramstring.count
    - ctypes.LibraryLoader.kernel32.SetConsoleTitleW
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - text
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 208
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32.write_plain_text
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 5
    functionsReached:
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.colorama.win32.FillConsoleOutputAttribute
    - pip._vendor.colorama.winterm.WinTerm.erase_screen
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_osc
    - ctypes.wintypes._COORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write_and_convert
    - pip._vendor.colorama.winterm.WinTerm.get_position
    - <builtin>.dict
    - ctypes.Structure.__init__
    - match.groups
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputAttribute
    - paramstring.count
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write_plain_text
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleCursorPosition
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.call_win32
    - <builtin>.tuple
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputCharacterA
    - pip._vendor.colorama.winterm.WinTerm.set_cursor_position
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.extract_params
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write
    - pip._vendor.colorama.win32.FillConsoleOutputCharacter
    - pip._vendor.colorama.winterm.WinTerm.cursor_adjust
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.reset_all
    - <builtin>.len
    - ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    - pip._vendor.colorama.ansitowin32.StreamWrapper.write
    - ctypes.c_char
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - io.TextIOWrapper.flush
    - match.span
    - pip._vendor.colorama.winterm.WinTerm.erase_line
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_ansi
    - sys.stdout.buffer.flush
    - ctypes.LibraryLoader.kernel32.SetConsoleTitleW
    - sys.stderr.write
    - ctypes.c_char.encode
    - <builtin>.int
    - sys.stdout.flush
    - paramstring.split
    - sys.stderr.flush
    - io.TextIOWrapper.write
    - sys.stdout.buffer.write
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    - pip._vendor.colorama.win32.SetConsoleTitle
    - pip._vendor.colorama.winterm.WinTerm.set_title
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - paramstring
    - command
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 214
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_ansi
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 6
    functionsReached:
    - ctypes.byref
    - pip._vendor.colorama.win32.FillConsoleOutputAttribute
    - pip._vendor.colorama.winterm.WinTerm.erase_screen
    - ctypes.wintypes._COORD
    - pip._vendor.colorama.winterm.WinTerm.get_position
    - <builtin>.dict
    - ctypes.Structure.__init__
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputAttribute
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleCursorPosition
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.call_win32
    - <builtin>.tuple
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputCharacterA
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.extract_params
    - pip._vendor.colorama.winterm.WinTerm.set_cursor_position
    - pip._vendor.colorama.win32.FillConsoleOutputCharacter
    - pip._vendor.colorama.winterm.WinTerm.cursor_adjust
    - <builtin>.len
    - ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    - ctypes.c_char
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - pip._vendor.colorama.winterm.WinTerm.erase_line
    - ctypes.c_char.encode
    - <builtin>.int
    - paramstring.split
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - command
    - paramstring
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 220
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32.extract_params
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 7
    functionsReached:
    - <builtin>.len
    - <builtin>.tuple
    - <builtin>.int
    - paramstring.split
    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: paramstring.split
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f99336d0>
    - <ast.Constant object at 0x7f30f99339a0>
    argNames:
    - self
    - mode
    - on_stderr
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 117
    functionName: pip._vendor.colorama.winterm.WinTerm.erase_screen
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 8
    functionsReached:
    - ctypes.byref
    - ctypes.c_char.encode
    - pip._vendor.colorama.win32.FillConsoleOutputCharacter
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleCursorPosition
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - pip._vendor.colorama.win32.FillConsoleOutputAttribute
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    - ctypes.Structure.__init__
    - ctypes.wintypes._COORD
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputCharacterA
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    - ctypes.c_char
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputAttribute
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b9a60>
    - <ast.Constant object at 0x7f30fa5b9a90>
    argNames:
    - self
    - mode
    - on_stderr
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 149
    functionName: pip._vendor.colorama.winterm.WinTerm.erase_line
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 8
    functionsReached:
    - ctypes.byref
    - pip._vendor.colorama.win32.FillConsoleOutputCharacter
    - ctypes.c_char.encode
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - pip._vendor.colorama.win32.FillConsoleOutputAttribute
    - ctypes.Structure.__init__
    - ctypes.wintypes.WORD
    - ctypes.wintypes.DWORD
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputCharacterA
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    - ctypes.c_char
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputAttribute
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f86ca760>
    - <ast.Constant object at 0x7f30f86ca9d0>
    argNames:
    - self
    - position
    - on_stderr
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 99
    functionName: pip._vendor.colorama.winterm.WinTerm.set_cursor_position
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 8
    functionsReached:
    - ctypes.byref
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleCursorPosition
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    - ctypes.wintypes._COORD
    - ctypes.Structure.__init__
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f86ca340>
    argNames:
    - self
    - x
    - y
    - on_stderr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 109
    functionName: pip._vendor.colorama.winterm.WinTerm.cursor_adjust
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 8
    functionsReached:
    - ctypes.byref
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleCursorPosition
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    - ctypes.wintypes._COORD
    - pip._vendor.colorama.winterm.WinTerm.get_position
    - ctypes.Structure.__init__
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    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: paramstring.count
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - title
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 174
    functionName: pip._vendor.colorama.winterm.WinTerm.set_title
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 7
    functionsReached:
    - pip._vendor.colorama.win32.SetConsoleTitle
    - ctypes.LibraryLoader.kernel32.SetConsoleTitleW
    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: 276
    functionName: pip._vendor.colorama.ansitowin32.AnsiToWin32.flush
    functionSourceFile: pip._vendor.colorama.ansitowin32
    functionUses: 0
    functionsReached:
    - sys.stdout.buffer.flush
    - io.TextIOWrapper.flush
    - sys.stderr.flush
    - sys.stdout.flush
    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: pip._vendor.colorama.winterm
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - _
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 5
    functionName: pip._vendor.colorama.winterm.get_osfhandle
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - OSError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Name object at 0x7f30fd810dc0>
    argNames:
    - stream_id
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 118
    functionName: pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 16
    functionsReached:
    - ctypes.Structure.__init__
    - ctypes.byref
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 45
    functionName: pip._vendor.colorama.winterm.WinTerm.set_attrs
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: pip._vendor.colorama.winterm.WinTerm.get_attrs
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f3d6f6a0>
    argNames:
    - self
    - on_stderr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 50
    functionName: pip._vendor.colorama.winterm.WinTerm.reset_all
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 0
    functionsReached:
    - pip._vendor.colorama.winterm.WinTerm.set_attrs
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleTextAttribute
    - ctypes.LibraryLoader.kernel32.SetConsoleTextAttribute
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - pip._vendor.colorama.winterm.WinTerm.set_console
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e36ca220>
    - <ast.Constant object at 0x7f30e36ca0a0>
    argNames:
    - self
    - attrs
    - on_stderr
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 83
    functionName: pip._vendor.colorama.winterm.WinTerm.set_console
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 4
    functionsReached:
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - ctypes.LibraryLoader.kernel32.SetConsoleTextAttribute
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleTextAttribute
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f3d6f1c0>
    - <ast.Constant object at 0x7f30f3d6f190>
    - <ast.Constant object at 0x7f30f3d6f160>
    argNames:
    - self
    - fore
    - light
    - on_stderr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 55
    functionName: pip._vendor.colorama.winterm.WinTerm.fore
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 0
    functionsReached:
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleTextAttribute
    - ctypes.LibraryLoader.kernel32.SetConsoleTextAttribute
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - pip._vendor.colorama.winterm.WinTerm.set_console
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b5910>
    - <ast.Constant object at 0x7f30fa5b5250>
    - <ast.Constant object at 0x7f30fa5b5dc0>
    argNames:
    - self
    - back
    - light
    - on_stderr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 66
    functionName: pip._vendor.colorama.winterm.WinTerm.back
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 0
    functionsReached:
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleTextAttribute
    - ctypes.LibraryLoader.kernel32.SetConsoleTextAttribute
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - pip._vendor.colorama.winterm.WinTerm.set_console
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e82ee910>
    - <ast.Constant object at 0x7f30e82ee7c0>
    argNames:
    - self
    - style
    - on_stderr
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 77
    functionName: pip._vendor.colorama.winterm.WinTerm.style
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 0
    functionsReached:
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.SetConsoleTextAttribute
    - ctypes.LibraryLoader.kernel32.SetConsoleTextAttribute
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - pip._vendor.colorama.winterm.WinTerm.set_console
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - stream_id
    - attrs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 125
    functionName: pip._vendor.colorama.win32.SetConsoleTextAttribute
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 5
    functionsReached:
    - ctypes.LibraryLoader.kernel32.SetConsoleTextAttribute
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - handle
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 91
    functionName: pip._vendor.colorama.winterm.WinTerm.get_position
    functionSourceFile: pip._vendor.colorama.winterm
    functionUses: 9
    functionsReached:
    - ctypes.byref
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.Structure.__init__
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8bf52b0>
    argNames:
    - stream_id
    - position
    - adjust
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 129
    functionName: pip._vendor.colorama.win32.SetConsoleCursorPosition
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 11
    functionsReached:
    - ctypes.byref
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    - ctypes.wintypes._COORD
    - ctypes.Structure.__init__
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - stream_id
    - char
    - length
    - start
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 147
    functionName: pip._vendor.colorama.win32.FillConsoleOutputCharacter
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 10
    functionsReached:
    - ctypes.byref
    - ctypes.c_char.encode
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - ctypes.wintypes.DWORD
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputCharacterA
    - ctypes.c_char
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - stream_id
    - attr
    - length
    - start
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 157
    functionName: pip._vendor.colorama.win32.FillConsoleOutputAttribute
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 10
    functionsReached:
    - ctypes.byref
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputAttribute
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - title
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 167
    functionName: pip._vendor.colorama.win32.SetConsoleTitle
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 8
    functionsReached:
    - ctypes.LibraryLoader.kernel32.SetConsoleTitleW
    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: 2
    functionLinenumber: 114
    functionName: pip._vendor.colorama.win32.winapi_test
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 10
    functionsReached:
    - <builtin>.any
    - ctypes.byref
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - <builtin>.bool
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - pip._vendor.colorama.win32._winapi_test
    - ctypes.Structure.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: msvcrt.get_osfhandle
    functionSourceFile: msvcrt
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - handle
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 170
    functionName: pip._vendor.colorama.win32.GetConsoleMode
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 10
    functionsReached:
    - ctypes.LibraryLoader.kernel32.GetConsoleMode
    - ctypes.byref
    - ctypes.wintypes.DWORD
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - handle
    - mode
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 177
    functionName: pip._vendor.colorama.win32.SetConsoleMode
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 10
    functionsReached:
    - ctypes.LibraryLoader.kernel32.SetConsoleMode
    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: pip._vendor.colorama.win32
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 0
    functionsReached:
    - ctypes.POINTER
    - ctypes.LibraryLoader
    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: pip._vendor.colorama.win32.<lambda1>
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 32
    functionName: pip._vendor.colorama.win32.CONSOLE_SCREEN_BUFFER_INFO.__str__
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - handle
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 108
    functionName: pip._vendor.colorama.win32._winapi_test
    functionSourceFile: pip._vendor.colorama.win32
    functionUses: 11
    functionsReached:
    - <builtin>.bool
    - ctypes.Structure.__init__
    - ctypes.byref
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    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: ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    functionSourceFile: ctypes
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctypes.LibraryLoader.kernel32.GetStdHandle
    functionSourceFile: ctypes
    functionUses: 35
    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: ctypes.LibraryLoader.kernel32.SetConsoleTextAttribute
    functionSourceFile: ctypes
    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: ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    functionSourceFile: ctypes
    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: ctypes.c_char.encode
    functionSourceFile: ctypes
    functionUses: 11
    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: ctypes.LibraryLoader.kernel32.FillConsoleOutputCharacterA
    functionSourceFile: ctypes
    functionUses: 11
    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: ctypes.LibraryLoader.kernel32.FillConsoleOutputAttribute
    functionSourceFile: ctypes
    functionUses: 11
    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: ctypes.LibraryLoader.kernel32.SetConsoleTitleW
    functionSourceFile: ctypes
    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: ctypes.LibraryLoader.kernel32.GetConsoleMode
    functionSourceFile: ctypes
    functionUses: 11
    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: ctypes.LibraryLoader.kernel32.SetConsoleMode
    functionSourceFile: ctypes
    functionUses: 11
    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: pip._vendor.colorama
    functionSourceFile: pip._vendor.colorama
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.colorama.initialise
    functionSourceFile: pip._vendor.colorama.initialise
    functionUses: 0
    functionsReached:
    - pip._vendor.colorama.initialise._wipe_internal_state_for_tests
    - atexit.unregister
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 9
    functionName: pip._vendor.colorama.initialise._wipe_internal_state_for_tests
    functionSourceFile: pip._vendor.colorama.initialise
    functionUses: 1
    functionsReached:
    - atexit.unregister
    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: atexit.unregister
    functionSourceFile: atexit
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 32
    functionName: pip._vendor.colorama.initialise.reset_all
    functionSourceFile: pip._vendor.colorama.initialise
    functionUses: 0
    functionsReached:
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.__init__
    - sys.stdout.buffer.fileno
    - sys.stdout.write
    - ctypes.byref
    - pip._vendor.colorama.ansitowin32.StreamWrapper.__init__
    - <builtin>.bool
    - msvcrt.get_osfhandle
    - pip._vendor.colorama.win32.FillConsoleOutputAttribute
    - pip._vendor.colorama.win32.<lambda2>
    - pip._vendor.colorama.winterm.enable_vt_processing
    - pip._vendor.colorama.winterm.WinTerm.erase_screen
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.get_win32_calls
    - sys.stdout.fileno
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_osc
    - ctypes.wintypes._COORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write_and_convert
    - <builtin>.dict
    - pip._vendor.colorama.winterm.WinTerm.get_position
    - ctypes.Structure.__init__
    - match.groups
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputAttribute
    - paramstring.count
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write_plain_text
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - io.TextIOWrapper.isatty
    - pip._vendor.colorama.win32.SetConsoleCursorPosition
    - pip._vendor.colorama.win32.GetConsoleMode
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - ctypes.wintypes.WORD
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.call_win32
    - <builtin>.tuple
    - pip._vendor.colorama.ansitowin32.StreamWrapper.isatty
    - pip._vendor.colorama.win32.winapi_test
    - ctypes.LibraryLoader.kernel32.FillConsoleOutputCharacterA
    - io.TextIOWrapper.fileno
    - pip._vendor.colorama.winterm.WinTerm.set_cursor_position
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.extract_params
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.write
    - <builtin>.any
    - pip._vendor.colorama.win32.FillConsoleOutputCharacter
    - pip._vendor.colorama.winterm.WinTerm.cursor_adjust
    - pip._vendor.colorama.win32.SetConsoleMode
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.reset_all
    - sys.stdout.isatty
    - <builtin>.len
    - ctypes.LibraryLoader.kernel32.SetConsoleCursorPosition
    - pip._vendor.colorama.ansitowin32.StreamWrapper.write
    - sys.stderr.fileno
    - ctypes.LibraryLoader.kernel32.SetConsoleMode
    - ctypes.c_char
    - pip._vendor.colorama.winterm.WinTerm.get_attrs
    - io.TextIOWrapper.flush
    - match.span
    - pip._vendor.colorama.winterm.WinTerm.erase_line
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_ansi
    - sys.stdout.buffer.flush
    - ctypes.LibraryLoader.kernel32.SetConsoleTitleW
    - sys.stderr.write
    - ctypes.c_char.encode
    - sys.stdout.buffer.isatty
    - sys.stdout.flush
    - paramstring.split
    - <builtin>.int
    - sys.stderr.flush
    - io.TextIOWrapper.write
    - sys.stdout.buffer.write
    - pip._vendor.colorama.win32._winapi_test
    - sys.stderr.isatty
    - ctypes.LibraryLoader.kernel32.GetConsoleMode
    - pip._vendor.colorama.win32.GetConsoleScreenBufferInfo
    - pip._vendor.colorama.win32.SetConsoleTitle
    - pip._vendor.colorama.winterm.WinTerm.set_title
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e19c71f0>
    - <ast.Constant object at 0x7f30e19c71c0>
    - <ast.Constant object at 0x7f30e19c7190>
    - <ast.Constant object at 0x7f30e19c7160>
    argNames:
    - autoreset
    - convert
    - strip
    - wrap
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 37
    functionName: pip._vendor.colorama.initialise.init
    functionSourceFile: pip._vendor.colorama.initialise
    functionUses: 1
    functionsReached:
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.__init__
    - sys.stdout.buffer.fileno
    - ctypes.byref
    - pip._vendor.colorama.initialise.wrap_stream
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.should_wrap
    - pip._vendor.colorama.ansitowin32.StreamWrapper.__init__
    - <builtin>.bool
    - msvcrt.get_osfhandle
    - pip._vendor.colorama.win32.<lambda2>
    - pip._vendor.colorama.winterm.enable_vt_processing
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.get_win32_calls
    - <builtin>.dict
    - ctypes.Structure.__init__
    - atexit.register
    - io.TextIOWrapper.isatty
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.GetConsoleMode
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - pip._vendor.colorama.ansitowin32.StreamWrapper.isatty
    - pip._vendor.colorama.win32.winapi_test
    - io.TextIOWrapper.fileno
    - <builtin>.any
    - sys.stdout.isatty
    - pip._vendor.colorama.win32.SetConsoleMode
    - sys.stderr.fileno
    - ctypes.LibraryLoader.kernel32.SetConsoleMode
    - sys.stdout.buffer.isatty
    - pip._vendor.colorama.win32._winapi_test
    - sys.stderr.isatty
    - ctypes.LibraryLoader.kernel32.GetConsoleMode
    - sys.stdout.fileno
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - stream
    - convert
    - strip
    - autoreset
    - wrap
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 111
    functionName: pip._vendor.colorama.initialise.wrap_stream
    functionSourceFile: pip._vendor.colorama.initialise
    functionUses: 5
    functionsReached:
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.__init__
    - sys.stdout.buffer.fileno
    - ctypes.byref
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.should_wrap
    - pip._vendor.colorama.ansitowin32.StreamWrapper.__init__
    - <builtin>.bool
    - msvcrt.get_osfhandle
    - pip._vendor.colorama.win32.<lambda2>
    - pip._vendor.colorama.winterm.enable_vt_processing
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.get_win32_calls
    - <builtin>.dict
    - ctypes.Structure.__init__
    - io.TextIOWrapper.isatty
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.GetConsoleMode
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - pip._vendor.colorama.ansitowin32.StreamWrapper.isatty
    - pip._vendor.colorama.win32.winapi_test
    - io.TextIOWrapper.fileno
    - <builtin>.any
    - sys.stdout.isatty
    - pip._vendor.colorama.win32.SetConsoleMode
    - sys.stderr.fileno
    - ctypes.LibraryLoader.kernel32.SetConsoleMode
    - sys.stdout.buffer.isatty
    - pip._vendor.colorama.win32._winapi_test
    - sys.stderr.isatty
    - ctypes.LibraryLoader.kernel32.GetConsoleMode
    - sys.stdout.fileno
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 65
    functionName: pip._vendor.colorama.initialise.deinit
    functionSourceFile: pip._vendor.colorama.initialise
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 72
    functionName: pip._vendor.colorama.initialise.just_fix_windows_console
    functionSourceFile: pip._vendor.colorama.initialise
    functionUses: 0
    functionsReached:
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.__init__
    - sys.stdout.buffer.fileno
    - ctypes.byref
    - pip._vendor.colorama.ansitowin32.StreamWrapper.__init__
    - <builtin>.bool
    - msvcrt.get_osfhandle
    - pip._vendor.colorama.win32.<lambda2>
    - pip._vendor.colorama.winterm.enable_vt_processing
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.get_win32_calls
    - <builtin>.dict
    - ctypes.Structure.__init__
    - io.TextIOWrapper.isatty
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.GetConsoleMode
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - pip._vendor.colorama.ansitowin32.StreamWrapper.isatty
    - pip._vendor.colorama.win32.winapi_test
    - io.TextIOWrapper.fileno
    - <builtin>.any
    - sys.stdout.isatty
    - pip._vendor.colorama.win32.SetConsoleMode
    - sys.stderr.fileno
    - ctypes.LibraryLoader.kernel32.SetConsoleMode
    - sys.stdout.buffer.isatty
    - pip._vendor.colorama.win32._winapi_test
    - sys.stderr.isatty
    - ctypes.LibraryLoader.kernel32.GetConsoleMode
    - sys.stdout.fileno
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 96
    functionName: pip._vendor.colorama.initialise.colorama_text
    functionSourceFile: pip._vendor.colorama.initialise
    functionUses: 0
    functionsReached:
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.__init__
    - sys.stdout.buffer.fileno
    - ctypes.byref
    - pip._vendor.colorama.initialise.wrap_stream
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.should_wrap
    - pip._vendor.colorama.ansitowin32.StreamWrapper.__init__
    - <builtin>.bool
    - msvcrt.get_osfhandle
    - pip._vendor.colorama.win32.<lambda2>
    - pip._vendor.colorama.winterm.enable_vt_processing
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.get_win32_calls
    - <builtin>.dict
    - ctypes.Structure.__init__
    - atexit.register
    - pip._vendor.colorama.initialise.init
    - io.TextIOWrapper.isatty
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.colorama.win32.GetConsoleMode
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - ctypes.wintypes.DWORD
    - pip._vendor.colorama.ansitowin32.StreamWrapper.isatty
    - pip._vendor.colorama.initialise.deinit
    - pip._vendor.colorama.win32.winapi_test
    - io.TextIOWrapper.fileno
    - <builtin>.any
    - sys.stdout.isatty
    - pip._vendor.colorama.win32.SetConsoleMode
    - sys.stderr.fileno
    - ctypes.LibraryLoader.kernel32.SetConsoleMode
    - sys.stdout.buffer.isatty
    - pip._vendor.colorama.win32._winapi_test
    - sys.stderr.isatty
    - ctypes.LibraryLoader.kernel32.GetConsoleMode
    - sys.stdout.fileno
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 104
    functionName: pip._vendor.colorama.initialise.reinit
    functionSourceFile: pip._vendor.colorama.initialise
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: pip._vendor.colorama.ansi
    functionSourceFile: pip._vendor.colorama.ansi
    functionUses: 0
    functionsReached:
    - pip._vendor.colorama.ansi.AnsiCodes.__init__
    - <builtin>.str
    - name.startswith
    - <builtin>.setattr
    - <builtin>.getattr
    - pip._vendor.colorama.ansi.code_to_chars
    - <builtin>.dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - code
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 12
    functionName: pip._vendor.colorama.ansi.code_to_chars
    functionSourceFile: pip._vendor.colorama.ansi
    functionUses: 2
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - title
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 15
    functionName: pip._vendor.colorama.ansi.set_title
    functionSourceFile: pip._vendor.colorama.ansi
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b87040>
    argNames:
    - mode
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 18
    functionName: pip._vendor.colorama.ansi.clear_screen
    functionSourceFile: pip._vendor.colorama.ansi
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b87130>
    argNames:
    - mode
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 21
    functionName: pip._vendor.colorama.ansi.clear_line
    functionSourceFile: pip._vendor.colorama.ansi
    functionUses: 0
    functionsReached:
    - <builtin>.str
    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: 26
    functionName: pip._vendor.colorama.ansi.AnsiCodes.__init__
    functionSourceFile: pip._vendor.colorama.ansi
    functionUses: 1
    functionsReached:
    - <builtin>.str
    - name.startswith
    - <builtin>.setattr
    - <builtin>.getattr
    - pip._vendor.colorama.ansi.code_to_chars
    - <builtin>.dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a8670>
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: pip._vendor.colorama.ansi.AnsiCursor.UP
    functionSourceFile: pip._vendor.colorama.ansi
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a87f0>
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 39
    functionName: pip._vendor.colorama.ansi.AnsiCursor.DOWN
    functionSourceFile: pip._vendor.colorama.ansi
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a8580>
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: pip._vendor.colorama.ansi.AnsiCursor.FORWARD
    functionSourceFile: pip._vendor.colorama.ansi
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a7130>
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: pip._vendor.colorama.ansi.AnsiCursor.BACK
    functionSourceFile: pip._vendor.colorama.ansi
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ce3fd310>
    - <ast.Constant object at 0x7f30ce3fdfa0>
    argNames:
    - self
    - x
    - y
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 45
    functionName: pip._vendor.colorama.ansi.AnsiCursor.POS
    functionSourceFile: pip._vendor.colorama.ansi
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.certifi.__main__
    functionSourceFile: pip._vendor.certifi.__main__
    functionUses: 0
    functionsReached:
    - argparse.ArgumentParser
    - importlib.resources.as_file
    - importlib.resources.read_text
    - <builtin>.str
    - importlib.resources.files.joinpath
    - importlib.resources.path
    - os.path.dirname
    - parser.add_argument
    - <builtin>.print
    - parser.parse_args
    - os.path.join
    - pip._vendor.certifi.core.contents
    - importlib.resources.path.__enter__
    - importlib.resources.files
    - importlib.resources.as_file.__enter__
    - pip._vendor.certifi.core.where
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: -1
    functionName: pip._vendor.cachecontrol._cmd
    functionSourceFile: pip._vendor.cachecontrol._cmd
    functionUses: 0
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - h.isalnum
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - argparse.ArgumentParser.parse_args
    - path.split
    - <builtin>.dict
    - socket.inet_ntoa
    - urllib.parse.quote.startswith
    - urllib.parse.quote.split
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - SCHEME_RE.search
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.cachecontrol._cmd.get_args
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - urllib.parse.quote.tell
    - password.encode
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - os.path.expanduser
    - result.update
    - pip._vendor.requests.sessions.merge_hooks
    - threading.Lock
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - merged_setting.items
    - pip._vendor.cachecontrol.cache.DictCache.__init__
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - pip._vendor.requests.sessions.Session.request
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - cache_controller.cached_request
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.request.getproxies
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - u_string.encode
    - urllib.parse.urljoin.seek
    - urllib.parse.urlparse._replace
    - logger.addHandler
    - scheme.lower
    - string_network.count
    - os.path.basename
    - collections.OrderedDict
    - pip._vendor.urllib3.fields.guess_content_type
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.pop
    - pip._vendor.urllib3.packages.six.b
    - urllib.parse.urljoin
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - <builtin>.hasattr
    - collections.abc.MutableMapping.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - base64.b64encode
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._vendor.requests.utils.dotted_netmask
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.models.Request.__init__
    - urllib.request.getproxies.items
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - encoded_component.extend
    - no_proxy.replace
    - pip._vendor.urllib3.util.url.parse_url
    - pip._vendor.requests.sessions.Session.mount
    - logging.StreamHandler
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - argparse.ArgumentParser.add_argument
    - DEFAULT_PORTS.get
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - argparse.ArgumentParser
    - path.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - urllib.parse.urlunparse
    - output.insert
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - d.iteritems
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - urllib.parse.quote.upper
    - netrc.netrc.authenticators
    - pip._vendor.cachecontrol._cmd.main
    - match.span
    - <builtin>.chr
    - pip._vendor.cachecontrol._cmd.setup_logging
    - logger.setLevel
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.requests.sessions.merge_setting
    - proxies.get
    - base64.b64encode.strip
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - field.decode
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - validator.match
    - v.encode
    - socket.inet_aton
    - <builtin>.bool
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - HTTPError.__init__
    - os.fstat
    - os.environ.get
    - send_kwargs.update
    - path.endswith
    - http.cookiejar.CookieJar.set_policy
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - resp.close
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - hooks.get
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - collections.OrderedDict.pop
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - request_hooks.get
    - s.decode
    - urllib.parse.urljoin.lower
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - uri_bytes.count
    - <builtin>.hex
    - http.cookiejar.CookieJar.extract_cookies
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - splitstr.decode
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - pip._vendor.urllib3.util.url._normalize_host
    - collections.OrderedDict.values
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - <builtin>.getattr
    - urllib.request.proxy_bypass
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - IPV4_RE.match
    - method.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - urllib.parse.urlparse.geturl
    - output.append
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - history.pop
    - netrc.netrc
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - kwargs.setdefault
    - pip._vendor.requests.auth._basic_auth_str
    - hist.append
    - copy.copy
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - urllib.parse.urljoin.encode
    - pip._vendor.cachecontrol._cmd.get_session
    - cache_controller.cache_response
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - pip._vendor.requests.sessions.Session.get
    - <builtin>.set
    - pip._vendor.urllib3.packages.six.raise_from
    - merged_setting.update
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - hooks.items
    - cookie.value.endswith
    - boundary.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - collections.abc.MutableMapping.lower
    - fp.read
    - <builtin>.next
    - urllib.parse.urljoin.startswith
    - prefix.lower
    - zone_id.startswith
    - pip._vendor.requests.utils.requote_uri
    - http.cookiejar.Cookie
    - kwargs.get
    - new_proxies.setdefault
    - <builtin>.print
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - pip._vendor.cachecontrol.adapter.CacheControlAdapter.__init__
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 22
    functionName: pip._vendor.cachecontrol._cmd.setup_logging
    functionSourceFile: pip._vendor.cachecontrol._cmd
    functionUses: 2
    functionsReached:
    - logger.addHandler
    - logging.StreamHandler
    - logger.setLevel
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 28
    functionName: pip._vendor.cachecontrol._cmd.get_session
    functionSourceFile: pip._vendor.cachecontrol._cmd
    functionUses: 2
    functionsReached:
    - <builtin>.super
    - pip._vendor.cachecontrol.cache.DictCache.__init__
    - pip._vendor.requests.sessions.Session.mount
    - <builtin>.len
    - pip._vendor.cachecontrol.adapter.CacheControlAdapter.__init__
    - threading.Lock
    - collections.OrderedDict.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: pip._vendor.cachecontrol._cmd.get_args
    functionSourceFile: pip._vendor.cachecontrol._cmd
    functionUses: 2
    functionsReached:
    - argparse.ArgumentParser
    - argparse.ArgumentParser.add_argument
    - argparse.ArgumentParser.parse_args
    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.add_argument
    functionSourceFile: argparse
    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: argparse.ArgumentParser.parse_args
    functionSourceFile: argparse
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 46
    functionName: pip._vendor.cachecontrol._cmd.main
    functionSourceFile: pip._vendor.cachecontrol._cmd
    functionUses: 1
    functionsReached:
    - os.urandom
    - cookie.value.replace
    - urllib.parse.quote.fileno
    - pip._vendor.requests.models.RequestHooksMixin.register_hook
    - urllib.parse.urlparse.hostname.endswith
    - pip._vendor.requests.models.PreparedRequest.copy
    - h.isalnum
    - pip._vendor.requests.auth.HTTPBasicAuth.__init__
    - urllib.parse.quote.encode
    - argparse.ArgumentParser.parse_args
    - path.split
    - <builtin>.dict
    - socket.inet_ntoa
    - urllib.parse.quote.startswith
    - urllib.parse.quote.split
    - pip._vendor.requests.utils.is_valid_cidr
    - string_network.split
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method
    - SCHEME_RE.search
    - <builtin>.str
    - urllib.parse.urlparse.netloc.split
    - byte.decode
    - collections.abc.MutableMapping.get
    - pip._vendor.cachecontrol._cmd.get_args
    - pip._vendor.requests.cookies.RequestsCookieJar.copy
    - pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host
    - urllib.parse.quote.tell
    - password.encode
    - pip._vendor.requests.cookies.MockRequest.get_new_headers
    - os.path.expanduser
    - result.update
    - pip._vendor.requests.sessions.merge_hooks
    - threading.Lock
    - output.pop
    - pip._vendor.requests.utils._validate_header_part
    - merged_setting.items
    - pip._vendor.cachecontrol.cache.DictCache.__init__
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth
    - username.encode
    - key.upper
    - pip._vendor.requests.sessions.Session.request
    - binascii.hexlify
    - PERCENT_RE.subn
    - pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target
    - cache_controller.cached_request
    - pip._vendor.requests.models.PreparedRequest.prepare_hooks
    - pip._vendor.urllib3.util.url._idna_encode
    - urllib.request.getproxies
    - adapter.send
    - session_hooks.get
    - pip._vendor.requests.utils.should_bypass_proxies
    - u_string.encode
    - urllib.parse.urljoin.seek
    - urllib.parse.urlparse._replace
    - logger.addHandler
    - scheme.lower
    - string_network.count
    - os.path.basename
    - collections.OrderedDict
    - pip._vendor.urllib3.fields.guess_content_type
    - field.render_headers
    - urllib.parse.quote
    - pip._vendor.urllib3.util.url.parse_url.ensure_type
    - collections.abc.MutableMapping.pop
    - pip._vendor.urllib3.packages.six.b
    - urllib.parse.urljoin
    - pip._vendor.urllib3.filepost.encode_multipart_formdata
    - pip._vendor.requests.structures.CaseInsensitiveDict.__init__
    - collections.abc.MutableMapping.startswith
    - collections.abc.MutableMapping.update
    - collections.abc.MutableMapping.__init__
    - urllib.parse.urlparse
    - urllib.parse.quote.lstrip
    - <builtin>.hasattr
    - collections.abc.MutableMapping.decode
    - pip._vendor.requests.cookies.RequestsCookieJar.get_policy
    - collections.abc.MutableMapping.fileno
    - pip._vendor.urllib3.fields.RequestField.from_tuples
    - pip._vendor.requests.utils.get_auth_from_url
    - URI_RE.match
    - <builtin>.object
    - collections.abc.MutableMapping.tell
    - urllib.parse.urlunparse.split
    - name.lower
    - base64.b64encode
    - pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth
    - pip._vendor.requests.utils.dotted_netmask
    - pip._vendor.urllib3.filepost.choose_boundary
    - pip._vendor.requests.models.Request.__init__
    - urllib.request.getproxies.items
    - pip._vendor.requests.structures.CaseInsensitiveDict.__iter__
    - http.cookiejar.CookieJar.add_cookie_header
    - urllib.request.getproxies.get
    - encoded_component.extend
    - no_proxy.replace
    - pip._vendor.urllib3.util.url.parse_url
    - pip._vendor.requests.sessions.Session.mount
    - logging.StreamHandler
    - urllib.parse.urljoin.split
    - ZONE_ID_RE.search
    - pip._vendor.requests.utils.get_environ_proxies.<dict1>.get
    - datetime.timedelta
    - pip._vendor.requests.utils.address_in_network
    - argparse.ArgumentParser.add_argument
    - DEFAULT_PORTS.get
    - pip._vendor.requests.sessions.Session.prepare_request
    - pip._vendor.requests.models.PreparedRequest.prepare_body
    - pip._vendor.idna.encode
    - pip._vendor.urllib3.fields.RequestField.make_multipart
    - collections.abc.MutableMapping.split
    - <builtin>.super
    - argparse.ArgumentParser
    - path.startswith
    - pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects
    - pip._vendor.urllib3.util.url._encode_invalid_chars
    - pip._vendor.requests.cookies.extract_cookies_to_jar
    - pip._vendor.requests.cookies.get_cookie_header
    - urllib.parse.urlunparse
    - output.insert
    - pip._vendor.requests.sessions.Session.get_adapter
    - <builtin>.iter
    - d.iteritems
    - collections.OrderedDict.items
    - new_jar.set_cookie
    - urllib.parse.quote.upper
    - netrc.netrc.authenticators
    - match.span
    - <builtin>.chr
    - pip._vendor.cachecontrol._cmd.setup_logging
    - logger.setLevel
    - os.path.exists
    - pip._vendor.requests.utils.resolve_proxies
    - urllib.parse.urlencode
    - warnings.warn
    - pip._vendor.urllib3.packages.six.ensure_str
    - pip._vendor.requests.sessions.merge_setting
    - proxies.get
    - base64.b64encode.strip
    - pip._vendor.requests.utils.set_environ
    - cookie.value.startswith
    - <builtin>.bytearray
    - <builtin>.max
    - pip._vendor.urllib3.packages.six.ensure_text
    - host.startswith
    - urllib.parse.urlencode.tell
    - kwargs.pop
    - field.decode
    - <builtin>.range
    - urllib.parse.urlencode.seek
    - <builtin>.isinstance
    - request.method.upper
    - pip._vendor.requests.cookies.RequestsCookieJar.update
    - pip._vendor.requests.compat.MutableMapping.__init__
    - validator.match
    - v.encode
    - socket.inet_aton
    - <builtin>.bool
    - io.BytesIO.getvalue
    - urllib.parse.urljoin.decode
    - new_jar.clear
    - HTTPError.__init__
    - os.fstat
    - os.environ.get
    - send_kwargs.update
    - path.endswith
    - http.cookiejar.CookieJar.set_policy
    - component.encode
    - pip._vendor.requests.sessions.Session.merge_environment_settings
    - pip._vendor.requests.cookies.MockRequest.__init__
    - pip._vendor.requests.utils.should_bypass_proxies.get_proxy
    - net.split
    - resp.close
    - s.encode
    - pip._vendor.requests.models.PreparedRequest.prepare
    - collections.abc.MutableMapping.upper
    - hooks.get
    - pip._vendor.requests._internal_utils.unicode_is_ascii
    - <builtin>.list
    - collections.OrderedDict.pop
    - pip._vendor.requests.cookies.merge_cookies
    - <builtin>.any
    - struct.unpack
    - pip._vendor.requests.models.PreparedRequest.prepare_method
    - pip._vendor.requests.utils.unquote_unreserved
    - mimetypes.guess_type
    - pip._vendor.requests.utils.guess_filename
    - <builtin>.len
    - pip._vendor.requests.models.PreparedRequest.prepare_headers
    - pip._vendor.requests.utils.rewind_body
    - history.insert
    - request_hooks.get
    - s.decode
    - urllib.parse.urljoin.lower
    - pip._vendor.urllib3.packages.six.iteritems
    - pip._vendor.requests.utils.check_header_validity
    - pip._vendor.requests.models.RequestEncodingMixin._encode_params
    - json.dumps
    - collections.abc.MutableMapping.setdefault
    - pip._vendor.requests.hooks.dispatch_hook
    - time.perf_counter
    - pip._vendor.requests.cookies.cookiejar_from_dict
    - uri_bytes.count
    - <builtin>.hex
    - http.cookiejar.CookieJar.extract_cookies
    - <builtin>.ord
    - pip._internal.network.auth.MultiDomainBasicAuth.__init__
    - pip._vendor.requests.utils.super_len
    - pip._vendor.requests.cookies.RequestsCookieJar.set_cookie
    - splitstr.decode
    - pip._vendor.requests._internal_utils.to_native_string
    - <builtin>.int
    - pip._vendor.urllib3.exceptions.LocationParseError.__init__
    - pip._internal.network.session.PipSession.request
    - pip._vendor.urllib3.util.url._normalize_host
    - collections.OrderedDict.values
    - request_param.make_multipart
    - pip._vendor.requests.cookies.create_cookie
    - pip._vendor.requests.utils.get_environ_proxies
    - <builtin>.getattr
    - urllib.request.proxy_bypass
    - <builtin>.all
    - pip._vendor.requests.utils.to_key_val_list
    - collections.abc.MutableMapping.items
    - pip._vendor.urllib3.filepost.iter_field_objects
    - urllib.parse.quote.seek
    - http.cookiejar.CookieJar.__init__
    - result.append
    - <builtin>.type
    - urllib.parse.unquote
    - d.items
    - urllib.parse.urljoin.fileno
    - pip._vendor.requests.cookies._copy_cookie_jar
    - IPV4_RE.match
    - method.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_cookies
    - pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies
    - urllib.parse.urlparse.geturl
    - output.append
    - urllib.parse.urlencode.fileno
    - pip._vendor.requests.models.PreparedRequest.prepare_auth
    - pip._vendor.requests.structures.CaseInsensitiveDict.copy
    - urllib.parse.urljoin.upper
    - pip._vendor.requests.models.PreparedRequest.prepare_url
    - history.pop
    - netrc.netrc
    - pip._vendor.urllib3.fields.RequestField.__init__
    - io.BytesIO.write
    - location.encode
    - pip._vendor.requests.hooks.default_hooks
    - authority.rpartition
    - kwargs.setdefault
    - pip._vendor.requests.auth._basic_auth_str
    - hist.append
    - copy.copy
    - pip._vendor.requests.cookies.MockResponse.__init__
    - resp.raw.read
    - urllib.parse.urljoin.encode
    - pip._vendor.cachecontrol._cmd.get_session
    - cache_controller.cache_response
    - pip._vendor.requests.models.PreparedRequest.prepare_content_length
    - pip._vendor.requests.sessions.Session.get
    - <builtin>.set
    - pip._vendor.urllib3.packages.six.raise_from
    - merged_setting.update
    - _HOST_PORT_RE.match
    - urllib.parse.quote.decode
    - IPV6_ADDRZ_RE.match
    - pip._vendor.requests.utils.is_ipv4_address
    - encoded_component.decode
    - pip._vendor.requests.utils.get_netrc_auth
    - new_fields.append
    - collections.abc.MutableMapping.seek
    - urllib.parse.quote.lower
    - struct.pack
    - pip._vendor.requests.models.PreparedRequest.__init__
    - hooks.items
    - cookie.value.endswith
    - boundary.decode
    - proxies.copy
    - pip._vendor.requests.models.RequestEncodingMixin._encode_files
    - collections.abc.MutableMapping.lower
    - fp.read
    - <builtin>.next
    - urllib.parse.urljoin.startswith
    - prefix.lower
    - zone_id.startswith
    - pip._vendor.requests.utils.requote_uri
    - http.cookiejar.Cookie
    - kwargs.get
    - new_proxies.setdefault
    - <builtin>.print
    - pip._vendor.requests.sessions.Session.send
    - urllib.parse.urljoin.tell
    - pip._vendor.cachecontrol.adapter.CacheControlAdapter.__init__
    - urllib.parse.urlparse.scheme.startswith
    - pip._vendor.urllib3.util.url._remove_path_dot_segments
    - collections.namedtuple.__init__
    - k.encode
    - collections.abc.MutableMapping.encode
    - io.BytesIO
    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: cache_controller.cache_response
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cache_controller.cached_request
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: pip._vendor.distlib.markers
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached:
    - _DIGITS.match
    - <builtin>.str
    - platform.python_implementation
    - pip._vendor.distlib.markers.default_context
    - <builtin>.hasattr
    - platform.machine
    - m.group
    - re.compile
    - platform.release
    - <builtin>.getattr
    - platform.version
    - pip._vendor.distlib.markers.default_context.format_full_version
    - platform.system
    - platform.python_version
    - pip._vendor.distlib.util.in_venv
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._vendor.distlib.markers._is_version_marker
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 9
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - o
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._vendor.distlib.markers._is_literal
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 9
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 41
    functionName: pip._vendor.distlib.markers._get_versions
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 9
    functionsReached:
    - <builtin>.isinstance
    - _VERSION_PATTERN.finditer
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - m.groups
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 31
    functionName: pip._vendor.distlib.version.Version.__init__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 68
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    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: _VERSION_PATTERN.finditer
    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: pip._vendor.distlib.markers.Evaluator.<dict1>.<lambda1>
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.markers.Evaluator.<dict1>.<lambda2>
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.markers.Evaluator.<dict1>.<lambda3>
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.markers.Evaluator.<dict1>.<lambda4>
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.markers.Evaluator.<dict1>.<lambda5>
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.markers.Evaluator.<dict1>.<lambda6>
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.markers.Evaluator.<dict1>.<lambda7>
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.markers.Evaluator.<dict1>.<lambda8>
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.markers.Evaluator.<dict1>.<lambda9>
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.markers.Evaluator.<dict1>.<lambda10>
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.markers.Evaluator.<dict1>.<lambda11>
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.markers.Evaluator.<dict1>.<lambda12>
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - expr
    - context
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 65
    functionName: pip._vendor.distlib.markers.Evaluator.evaluate
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 8
    functionsReached:
    - <builtin>.isinstance
    - _VERSION_PATTERN.finditer
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.markers.Evaluator.evaluate
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.markers._is_literal
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.markers._is_version_marker
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.markers._get_versions
    - pip._vendor.distlib.version.Version.parse
    - result.append
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    - SyntaxError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 104
    functionName: pip._vendor.distlib.markers.default_context
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 1
    functionsReached:
    - _DIGITS.match
    - <builtin>.str
    - platform.python_implementation
    - <builtin>.hasattr
    - platform.machine
    - m.group
    - platform.release
    - <builtin>.getattr
    - platform.version
    - pip._vendor.distlib.markers.default_context.format_full_version
    - platform.system
    - platform.python_version
    - pip._vendor.distlib.util.in_venv
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - info
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 106
    functionName: pip._vendor.distlib.markers.default_context.format_full_version
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 2
    functionsReached:
    - <builtin>.str
    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: _DIGITS.match
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd8108e0>
    argNames:
    - marker
    - execution_context
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 147
    functionName: pip._vendor.distlib.markers.interpret
    functionSourceFile: pip._vendor.distlib.markers
    functionUses: 7
    functionsReached:
    - <builtin>.isinstance
    - _VERSION_PATTERN.finditer
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.markers.Evaluator.evaluate
    - _SEMVER_RE.match
    - pip._vendor.distlib.util.parse_marker.marker_and
    - OR.match
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.util.parse_marker.marker_var
    - <builtin>.dict
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.markers._is_literal
    - m.end
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - IDENTIFIER.match
    - local.split
    - s.strip
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - MARKER_OP.match
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - <builtin>.len
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.markers._is_version_marker
    - pip._vendor.distlib.version.SemanticVersion.parse
    - context.update
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - m.groups
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - p.startswith
    - AND.match
    - pip._vendor.distlib.markers._get_versions
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.util.parse_marker.marker
    - result.append
    linkageType: pythonLinkage
    raised:
    - SyntaxError
    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: context.update
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.version
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - re.compile
    - pip._vendor.distlib.version.VersionScheme.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 274
    functionName: pip._vendor.distlib.version.NormalizedVersion.parse
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 69
    functionsReached:
    - <builtin>.int
    - part.isdigit
    - m.groups
    - s.strip
    - <builtin>.len
    - parts.append
    - <builtin>.tuple
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - local.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 615
    functionName: pip._vendor.distlib.version.LegacyVersion.parse
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 69
    functionsReached:
    - _VERSION_PART.split
    - result.pop
    - s.lower
    - p.zfill
    - pip._vendor.distlib.version._legacy_key.get_parts
    - p.startswith
    - pip._vendor.distlib.version._legacy_key
    - <builtin>.tuple
    - _VERSION_REPLACE.get
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 37
    functionName: pip._vendor.distlib.version.Version.parse
    functionSourceFile: ''
    functionUses: 69
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 686
    functionName: pip._vendor.distlib.version.SemanticVersion.parse
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 69
    functionsReached:
    - pip._vendor.distlib.version._semantic_key
    - <builtin>.int
    - p.zfill
    - m.groups
    - _SEMVER_RE.match
    - p.isdigit
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: pip._vendor.distlib.version.Version._check_compatible
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 6
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 44
    functionName: pip._vendor.distlib.version.Version.__eq__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 4
    functionsReached:
    - pip._vendor.distlib.version.Version._check_compatible
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 48
    functionName: pip._vendor.distlib.version.Version.__ne__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.version.Version._check_compatible
    - pip._vendor.distlib.version.Version.__eq__
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 51
    functionName: pip._vendor.distlib.version.Version.__lt__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 3
    functionsReached:
    - pip._vendor.distlib.version.Version._check_compatible
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 55
    functionName: pip._vendor.distlib.version.Version.__gt__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 1
    functionsReached:
    - pip._vendor.distlib.version.Version._check_compatible
    - pip._vendor.distlib.version.Version.__lt__
    - pip._vendor.distlib.version.Version.__eq__
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 58
    functionName: pip._vendor.distlib.version.Version.__le__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.version.Version._check_compatible
    - pip._vendor.distlib.version.Version.__lt__
    - pip._vendor.distlib.version.Version.__eq__
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 61
    functionName: pip._vendor.distlib.version.Version.__ge__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.version.Version.__lt__
    - pip._vendor.distlib.version.Version.__gt__
    - pip._vendor.distlib.version.Version._check_compatible
    - pip._vendor.distlib.version.Version.__eq__
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 65
    functionName: pip._vendor.distlib.version.Version.__hash__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 68
    functionName: pip._vendor.distlib.version.Version.__repr__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 71
    functionName: pip._vendor.distlib.version.Version.__str__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 75
    functionName: pip._vendor.distlib.version.Version.is_prerelease
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: pip._vendor.distlib.version.Matcher.<dict1>.<lambda1>
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.version.Matcher.<dict1>.<lambda2>
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.version.Matcher.<dict1>.<lambda3>
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.version.Matcher.<dict1>.<lambda4>
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.version.Matcher.<dict1>.<lambda5>
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.version.Matcher.<dict1>.<lambda6>
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.version.Matcher.<dict1>.<lambda7>
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.version.Matcher.<dict1>.<lambda8>
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 97
    functionName: pip._vendor.distlib.version.Matcher.parse_requirement
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 46
    functionsReached:
    - pip._vendor.distlib.version.Matcher.parse_requirement
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 100
    functionName: pip._vendor.distlib.version.Matcher.__init__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 45
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - pip._vendor.distlib.version.Version.parse
    - result.append
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: clist.append
    functionSourceFile: <builtin>
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 129
    functionName: pip._vendor.distlib.version.Matcher.match
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 11
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - <builtin>.getattr
    - pip._vendor.distlib.version.Version.parse
    - result.append
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 151
    functionName: pip._vendor.distlib.version.Matcher.exact_version
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 157
    functionName: pip._vendor.distlib.version.Matcher._check_compatible
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 2
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 161
    functionName: pip._vendor.distlib.version.Matcher.__eq__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 1
    functionsReached:
    - <builtin>.type
    - pip._vendor.distlib.version.Matcher._check_compatible
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 165
    functionName: pip._vendor.distlib.version.Matcher.__ne__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.version.Matcher.__eq__
    - <builtin>.type
    - pip._vendor.distlib.version.Matcher._check_compatible
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 169
    functionName: pip._vendor.distlib.version.Matcher.__hash__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 172
    functionName: pip._vendor.distlib.version.Matcher.__repr__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 175
    functionName: pip._vendor.distlib.version.Matcher.__str__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 1
    IfCount: 14
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 184
    functionName: pip._vendor.distlib.version._pep_440_key
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 72
    functionsReached:
    - <builtin>.int
    - part.isdigit
    - s.strip
    - m.groups
    - <builtin>.len
    - parts.append
    - <builtin>.tuple
    - PEP440_VERSION_RE.match
    - local.split
    linkageType: pythonLinkage
    raised:
    - UnsupportedVersionError
    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: PEP440_VERSION_RE.match
    functionSourceFile: <builtin>
    functionUses: 73
    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: local.split
    functionSourceFile: <builtin>
    functionUses: 73
    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: pip._vendor.distlib.version.NormalizedVersion
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 288
    functionName: pip._vendor.distlib.version.NormalizedVersion.is_prerelease
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - x
    - y
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 292
    functionName: pip._vendor.distlib.version._match_prefix
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 6
    functionsReached:
    - x.startswith
    - <builtin>.len
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - version
    - constraint
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 318
    functionName: pip._vendor.distlib.version.NormalizedMatcher._adjust_local
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 7
    functionsReached:
    - <builtin>.isinstance
    - version._string.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    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: version._string.split
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - version
    - constraint
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 332
    functionName: pip._vendor.distlib.version.NormalizedMatcher._match_lt
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - version._string.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - <builtin>.str
    - pip._vendor.distlib.version._legacy_key
    - x.startswith
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - pip._vendor.distlib.version.NormalizedMatcher._adjust_local
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.version._match_prefix
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - version
    - constraint
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 340
    functionName: pip._vendor.distlib.version.NormalizedMatcher._match_gt
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - version._string.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - <builtin>.str
    - pip._vendor.distlib.version._legacy_key
    - x.startswith
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - pip._vendor.distlib.version.NormalizedMatcher._adjust_local
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.version._match_prefix
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - version
    - constraint
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 348
    functionName: pip._vendor.distlib.version.NormalizedMatcher._match_le
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - version._string.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - pip._vendor.distlib.version.NormalizedMatcher._adjust_local
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - version
    - constraint
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 352
    functionName: pip._vendor.distlib.version.NormalizedMatcher._match_ge
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - version._string.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - pip._vendor.distlib.version.NormalizedMatcher._adjust_local
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - version
    - constraint
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 356
    functionName: pip._vendor.distlib.version.NormalizedMatcher._match_eq
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - version._string.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - <builtin>.str
    - pip._vendor.distlib.version._legacy_key
    - x.startswith
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - pip._vendor.distlib.version.NormalizedMatcher._adjust_local
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.version._match_prefix
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - version
    - constraint
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 364
    functionName: pip._vendor.distlib.version.NormalizedMatcher._match_arbitrary
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - version
    - constraint
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 367
    functionName: pip._vendor.distlib.version.NormalizedMatcher._match_ne
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - version._string.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - <builtin>.str
    - pip._vendor.distlib.version._legacy_key
    - x.startswith
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - pip._vendor.distlib.version.NormalizedMatcher._adjust_local
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.version._match_prefix
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - version
    - constraint
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 375
    functionName: pip._vendor.distlib.version.NormalizedMatcher._match_compatible
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - version._string.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - <builtin>.str
    - pip._vendor.distlib.version._legacy_key
    - x.startswith
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - pip._vendor.distlib.version.NormalizedMatcher._adjust_local
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.version._match_prefix
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 415
    functionName: pip._vendor.distlib.version._suggest_semantic_version
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 1
    functionsReached:
    - <builtin>.str
    - <builtin>.int
    - m.end
    - m.groups
    - <builtin>.len
    - suffix.strip
    - _NUMERIC_PREFIX.match
    - _SEMVER_RE.match
    - pat.sub
    - prefix.append
    - pip._vendor.distlib.version.is_semver
    - s.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: _NUMERIC_PREFIX.match
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: prefix.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: suffix.strip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 660
    functionName: pip._vendor.distlib.version.is_semver
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 73
    functionsReached:
    - _SEMVER_RE.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 461
    functionName: pip._vendor.distlib.version._suggest_normalized_version
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 1
    functionsReached:
    - re.sub
    - s.lower
    - <builtin>.int
    - part.isdigit
    - rs.startswith
    - s.strip
    - m.groups
    - <builtin>.len
    - rs.replace
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._pep_440_key
    - PEP440_VERSION_RE.match
    - local.split
    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.lower
    functionSourceFile: <builtin>
    functionUses: 74
    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: rs.replace
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rs.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 588
    functionName: pip._vendor.distlib.version._legacy_key
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 70
    functionsReached:
    - _VERSION_PART.split
    - result.pop
    - s.lower
    - p.zfill
    - pip._vendor.distlib.version._legacy_key.get_parts
    - p.startswith
    - <builtin>.tuple
    - _VERSION_REPLACE.get
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 589
    functionName: pip._vendor.distlib.version._legacy_key.get_parts
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 71
    functionsReached:
    - _VERSION_PART.split
    - s.lower
    - p.zfill
    - _VERSION_REPLACE.get
    - result.append
    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: _VERSION_PART.split
    functionSourceFile: <builtin>
    functionUses: 72
    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: _VERSION_REPLACE.get
    functionSourceFile: <builtin>
    functionUses: 72
    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: p.zfill
    functionSourceFile: <builtin>
    functionUses: 75
    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.pop
    functionSourceFile: <builtin>
    functionUses: 71
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 619
    functionName: pip._vendor.distlib.version.LegacyVersion.is_prerelease
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - x.startswith
    - <builtin>.isinstance
    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: pip._vendor.distlib.version.LegacyMatcher
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.dict
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - version
    - constraint
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 637
    functionName: pip._vendor.distlib.version.LegacyMatcher._match_compatible
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - m.groups
    - <builtin>.len
    - x.startswith
    - s.rsplit
    - pip._vendor.distlib.version._match_prefix
    - logger.warning
    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.rsplit
    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: _SEMVER_RE.match
    functionSourceFile: <builtin>
    functionUses: 74
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 664
    functionName: pip._vendor.distlib.version._semantic_key
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 70
    functionsReached:
    - <builtin>.int
    - p.zfill
    - m.groups
    - _SEMVER_RE.match
    - p.isdigit
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised:
    - UnsupportedVersionError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - s
    - absent
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 665
    functionName: pip._vendor.distlib.version._semantic_key.make_tuple
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 71
    functionsReached:
    - p.isdigit
    - <builtin>.tuple
    - p.zfill
    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: p.isdigit
    functionSourceFile: <builtin>
    functionUses: 72
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 690
    functionName: pip._vendor.distlib.version.SemanticVersion.is_prerelease
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6cb9e20>
    argNames:
    - self
    - key
    - matcher
    - suggester
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 699
    functionName: pip._vendor.distlib.version.VersionScheme.__init__
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 704
    functionName: pip._vendor.distlib.version.VersionScheme.is_valid_version
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 33
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 712
    functionName: pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 35
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 720
    functionName: pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 33
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 729
    functionName: pip._vendor.distlib.version.VersionScheme.suggest
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached:
    - _NUMERIC_PREFIX.match
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.version._suggest_semantic_version
    - <builtin>.str
    - m.end
    - parts.append
    - prefix.append
    - <builtin>.tuple
    - s.strip
    - local.split
    - re.sub
    - rs.startswith
    - <builtin>.len
    - rs.replace
    - pip._vendor.distlib.version._pep_440_key
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._suggest_normalized_version
    - s.lower
    - <builtin>.int
    - part.isdigit
    - m.groups
    - suffix.strip
    - pat.sub
    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: pip._vendor.distlib.version.<dict2>.<lambda1>
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 748
    functionName: pip._vendor.distlib.version.get_scheme
    functionSourceFile: pip._vendor.distlib.version
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.manifest
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30ec0c0e20>
    argNames:
    - self
    - base
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: pip._vendor.distlib.manifest.Manifest.__init__
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 0
    functionsReached:
    - os.path.abspath
    - os.path.normpath
    - os.getcwd
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: pip._vendor.distlib.manifest.Manifest.findall
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 2
    functionsReached:
    - os.stat
    - allfiles.append
    - os.fsdecode
    - os.listdir
    - stat.S_ISLNK
    - os.path.join
    - stat.S_ISDIR
    - stat.S_ISREG
    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: allfiles.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stat.S_ISDIR
    functionSourceFile: stat
    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: stat.S_ISLNK
    functionSourceFile: stat
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: pip._vendor.distlib.manifest.Manifest.add
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 1
    functionsReached:
    - item.startswith
    - os.path.normpath
    - 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: item.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - items
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 96
    functionName: pip._vendor.distlib.manifest.Manifest.add_many
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 0
    functionsReached:
    - item.startswith
    - pip._vendor.distlib.manifest.Manifest.add
    - os.path.normpath
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b873a0>
    argNames:
    - self
    - wantdirs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 105
    functionName: pip._vendor.distlib.manifest.Manifest.sorted
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 0
    functionsReached:
    - dirs.add
    - pip._vendor.distlib.manifest.Manifest.sorted
    - os.path.dirname
    - <builtin>.set
    - logger.debug
    - pip._vendor.distlib.manifest.Manifest.sorted.add_dir
    - os.path.join
    - os.path.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - dirs
    - d
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: pip._vendor.distlib.manifest.Manifest.sorted.add_dir
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 1
    functionsReached:
    - logger.debug
    - os.path.split
    - pip._vendor.distlib.manifest.Manifest.sorted.add_dir
    - dirs.add
    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: dirs.add
    functionSourceFile: <builtin>
    functionUses: 2
    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: 127
    functionName: pip._vendor.distlib.manifest.Manifest.clear
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 0
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 9
    IfCount: 13
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - directive
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 132
    functionName: pip._vendor.distlib.manifest.Manifest.process_directive
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 0
    functionsReached:
    - allfiles.append
    - <builtin>.isinstance
    - pip._vendor.distlib.manifest.Manifest._exclude_pattern
    - stat.S_ISLNK
    - paths.remove
    - re.compile
    - pathname.split
    - pattern_re.startswith
    - re.escape
    - pip._vendor.distlib.manifest.Manifest._parse_directive
    - pattern_re.endswith
    - os.fsdecode
    - pip._vendor.distlib.manifest.Manifest._include_pattern
    - prefix_re.startswith
    - words.insert
    - os.path.join
    - pip._vendor.distlib.util.convert_path
    - <builtin>.list
    - re.sub
    - pip._vendor.distlib.manifest.Manifest._glob_to_re
    - <builtin>.len
    - os.sep.join
    - pip._vendor.distlib.manifest.Manifest.findall
    - stat.S_ISDIR
    - pattern_re.search
    - stat.S_ISREG
    - prefix_re.endswith
    - os.stat
    - directive.split
    - os.listdir
    - fnmatch.translate
    - pip._vendor.distlib.manifest.Manifest._translate_pattern
    - logger.warning
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - directive
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 200
    functionName: pip._vendor.distlib.manifest.Manifest._parse_directive
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - directive.split
    - paths.remove
    - pathname.split
    - words.insert
    - os.path.join
    - pip._vendor.distlib.util.convert_path
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d08a8910>
    - <ast.Constant object at 0x7f30d08a8940>
    - <ast.Constant object at 0x7f30d08a8970>
    argNames:
    - self
    - pattern
    - anchor
    - prefix
    - is_regex
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 247
    functionName: pip._vendor.distlib.manifest.Manifest._include_pattern
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 1
    functionsReached:
    - allfiles.append
    - <builtin>.isinstance
    - stat.S_ISLNK
    - re.compile
    - pattern_re.startswith
    - re.escape
    - pattern_re.endswith
    - os.fsdecode
    - prefix_re.startswith
    - os.path.join
    - re.sub
    - pip._vendor.distlib.manifest.Manifest._glob_to_re
    - <builtin>.len
    - os.sep.join
    - pip._vendor.distlib.manifest.Manifest.findall
    - stat.S_ISDIR
    - pattern_re.search
    - stat.S_ISREG
    - prefix_re.endswith
    - os.stat
    - os.listdir
    - fnmatch.translate
    - pip._vendor.distlib.manifest.Manifest._translate_pattern
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30ec0d6bb0>
    - <ast.Constant object at 0x7f30ec0d6b80>
    - <ast.Constant object at 0x7f30ec0d6b50>
    argNames:
    - self
    - pattern
    - anchor
    - prefix
    - is_regex
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 288
    functionName: pip._vendor.distlib.manifest.Manifest._exclude_pattern
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 1
    functionsReached:
    - pattern_re.endswith
    - re.sub
    - <builtin>.isinstance
    - pip._vendor.distlib.manifest.Manifest._glob_to_re
    - <builtin>.len
    - prefix_re.startswith
    - os.sep.join
    - fnmatch.translate
    - pip._vendor.distlib.manifest.Manifest._translate_pattern
    - re.compile
    - os.path.join
    - re.escape
    - pattern_re.startswith
    - pattern_re.search
    - <builtin>.list
    - prefix_re.endswith
    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: directive.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: words.insert
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 1
    IfCount: 11
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30ec0d6220>
    - <ast.Constant object at 0x7f30ec0d61f0>
    - <ast.Constant object at 0x7f30ec0d61c0>
    argNames:
    - self
    - pattern
    - anchor
    - prefix
    - is_regex
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 308
    functionName: pip._vendor.distlib.manifest.Manifest._translate_pattern
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 3
    functionsReached:
    - re.sub
    - pattern_re.endswith
    - <builtin>.isinstance
    - pip._vendor.distlib.manifest.Manifest._glob_to_re
    - <builtin>.len
    - prefix_re.startswith
    - os.sep.join
    - fnmatch.translate
    - re.compile
    - os.path.join
    - re.escape
    - pattern_re.startswith
    - prefix_re.endswith
    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: pattern_re.search
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 363
    functionName: pip._vendor.distlib.manifest.Manifest._glob_to_re
    functionSourceFile: pip._vendor.distlib.manifest
    functionUses: 4
    functionsReached:
    - fnmatch.translate
    - re.sub
    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: pattern_re.startswith
    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: pattern_re.endswith
    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: prefix_re.startswith
    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: prefix_re.endswith
    functionSourceFile: <builtin>
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.database
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - logging.getLogger
    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: 49
    functionName: pip._vendor.distlib.database._Cache.__init__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 57
    functionName: pip._vendor.distlib.database._Cache.clear
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 65
    functionName: pip._vendor.distlib.database._Cache.add
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30dc1161c0>
    - <ast.Constant object at 0x7f30dc116190>
    argNames:
    - self
    - path
    - include_egg
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 80
    functionName: pip._vendor.distlib.database.DistributionPath.__init__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.database._Cache.__init__
    - pip._vendor.distlib.version.get_scheme
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 100
    functionName: pip._vendor.distlib.database.DistributionPath._get_cache_enabled
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 103
    functionName: pip._vendor.distlib.database.DistributionPath._set_cache_enabled
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.property
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.database.DistributionPath
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.property
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 108
    functionName: pip._vendor.distlib.database.DistributionPath.clear_cache
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.database._Cache.clear
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 9
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 115
    functionName: pip._vendor.distlib.database.DistributionPath._yield_distributions
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 6
    functionsReached:
    - name.replace
    - posixpath.join
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.util.parse_marker.marker_var
    - possible_versions.remove
    - pip._vendor.distlib.database.EggInfoDistribution.__init__
    - run_requires.insert
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.database._Cache.add
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - MARKER_OP.match
    - io.StringIO.read
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - finder.find
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - tl_data.splitlines
    - COMPARE_OP.match
    - codecs.open
    - NON_SPACE.match
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - zipimport.zipimporter
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.metadata.Metadata.add_requirements
    - data.splitlines
    - fields.items
    - entry.endswith
    - line.strip
    - reqs.append
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - types.SimpleNamespace
    - pip._vendor.distlib.metadata.LegacyMetadata.add_requirements
    - pip._vendor.distlib.version._legacy_key
    - os.path.join
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pydist.as_stream
    - IDENTIFIER.match
    - parts.append
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - <builtin>.super
    - extras.append
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - zipf.get_data
    - os.path.isdir
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pkgutil.get_importer
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - os.path.exists
    - warnings.warn
    - pip._vendor.distlib.resources.finder_for_path
    - VERSION_IDENTIFIER.match
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.util.parse_requirement
    - pip._vendor.distlib.util.parse_marker.marker
    - req.strip
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - contextlib.closing
    - line.startswith
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _finder_registry.get
    - mapping.items
    - remaining.find
    - missing.append
    - sys.path_importer_cache.get
    - pattern.match
    - _VERSION_REPLACE.get
    - path.endswith
    - result.pop
    - m.end
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - v.split
    - <builtin>.any
    - versions.append
    - pip._vendor.distlib.database.EggInfoDistribution.__init__.set_name_and_version
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - seen.add
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - AND.match
    - <builtin>.open
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - <builtin>.type
    - email.message_from_file
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - urlparse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - r.as_stream
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_path
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - pip._vendor.distlib.database.InstalledDistribution.__init__
    - n.lower
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - fp.read
    - email.message_from_file.get_all
    - s.endswith
    - remaining.startswith
    - pip._vendor.distlib.metadata._best_version
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_data
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    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: finder.find
    functionSourceFile: <builtin>
    functionUses: 17
    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: entry.endswith
    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: pydist.as_stream
    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: contextlib.closing
    functionSourceFile: contextlib
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 4
    IfCount: 6
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f3269550>
    - <ast.Constant object at 0x7f30f3269520>
    - <ast.Constant object at 0x7f30f32694f0>
    - <ast.Constant object at 0x7f30f32694c0>
    argNames:
    - self
    - path
    - fileobj
    - mapping
    - scheme
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 655
    functionName: pip._vendor.distlib.metadata.Metadata.__init__
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 23
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - io.StringIO.read
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - codecs.open
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - fields.items
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.version._pep_440_key
    - warnings.append
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pattern.match
    - _VERSION_REPLACE.get
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - <builtin>.any
    - v.split
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - <builtin>.open
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - email.message_from_file
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - logger.debug
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - json.loads
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e8a47fd0>
    - <ast.Constant object at 0x7f30e8a5b040>
    argNames:
    - self
    - path
    - metadata
    - env
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 548
    functionName: pip._vendor.distlib.database.InstalledDistribution.__init__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 8
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.database._Cache.add
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - io.StringIO.read
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - finder.find
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - codecs.open
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - fields.items
    - data.splitlines
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - pip._vendor.distlib.version._legacy_key
    - io.StringIO
    - parts.append
    - os.path.join
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - <builtin>.super
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pkgutil.get_importer
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - os.path.exists
    - pip._vendor.distlib.resources.finder_for_path
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - contextlib.closing
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _finder_registry.get
    - mapping.items
    - sys.path_importer_cache.get
    - missing.append
    - pattern.match
    - _VERSION_REPLACE.get
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - v.split
    - <builtin>.any
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - <builtin>.open
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - <builtin>.type
    - email.message_from_file
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - logger.debug
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - r.as_stream
    - json.loads
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30ee9fda90>
    argNames:
    - self
    - path
    - env
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 876
    functionName: pip._vendor.distlib.database.EggInfoDistribution.__init__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 7
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - pip._vendor.distlib.util.parse_marker.marker_var
    - run_requires.insert
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.database._Cache.add
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - MARKER_OP.match
    - io.StringIO.read
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - tl_data.splitlines
    - COMPARE_OP.match
    - codecs.open
    - NON_SPACE.match
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - zipimport.zipimporter
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.metadata.Metadata.add_requirements
    - data.splitlines
    - fields.items
    - line.strip
    - reqs.append
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - types.SimpleNamespace
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.add_requirements
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - os.path.join
    - pip._vendor.distlib.version._legacy_key
    - IDENTIFIER.match
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - <builtin>.super
    - extras.append
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - zipf.get_data
    - os.path.isdir
    - pip._vendor.distlib.version._pep_440_key
    - warnings.append
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - os.path.exists
    - _LINE_PREFIX_1_2.sub
    - VERSION_IDENTIFIER.match
    - f.read
    - pip._vendor.distlib.util.parse_requirement
    - pip._vendor.distlib.util.parse_marker.marker
    - req.strip
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - line.startswith
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - remaining.find
    - missing.append
    - pattern.match
    - _VERSION_REPLACE.get
    - path.endswith
    - result.pop
    - m.end
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - <builtin>.any
    - v.split
    - versions.append
    - pip._vendor.distlib.database.EggInfoDistribution.__init__.set_name_and_version
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - p.startswith
    - AND.match
    - <builtin>.open
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - email.message_from_file
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - urlparse.urlparse
    - logger.debug
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_path
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - n.lower
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - fp.read
    - email.message_from_file.get_all
    - s.endswith
    - remaining.startswith
    - pip._vendor.distlib.metadata._best_version
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_data
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 169
    functionName: pip._vendor.distlib.database.DistributionPath._generate_cache
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 5
    functionsReached:
    - name.replace
    - posixpath.join
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.util.parse_marker.marker_var
    - possible_versions.remove
    - pip._vendor.distlib.database.EggInfoDistribution.__init__
    - run_requires.insert
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.database._Cache.add
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - MARKER_OP.match
    - io.StringIO.read
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - finder.find
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - tl_data.splitlines
    - COMPARE_OP.match
    - codecs.open
    - NON_SPACE.match
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - zipimport.zipimporter
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.metadata.Metadata.add_requirements
    - data.splitlines
    - fields.items
    - entry.endswith
    - line.strip
    - reqs.append
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - types.SimpleNamespace
    - pip._vendor.distlib.metadata.LegacyMetadata.add_requirements
    - pip._vendor.distlib.version._legacy_key
    - os.path.join
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pydist.as_stream
    - IDENTIFIER.match
    - parts.append
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - <builtin>.super
    - extras.append
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - zipf.get_data
    - os.path.isdir
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pkgutil.get_importer
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - os.path.exists
    - warnings.warn
    - pip._vendor.distlib.resources.finder_for_path
    - VERSION_IDENTIFIER.match
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.util.parse_requirement
    - pip._vendor.distlib.util.parse_marker.marker
    - req.strip
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - contextlib.closing
    - line.startswith
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _finder_registry.get
    - mapping.items
    - remaining.find
    - missing.append
    - sys.path_importer_cache.get
    - pattern.match
    - _VERSION_REPLACE.get
    - path.endswith
    - result.pop
    - m.end
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - v.split
    - <builtin>.any
    - versions.append
    - pip._vendor.distlib.database.EggInfoDistribution.__init__.set_name_and_version
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - seen.add
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - AND.match
    - <builtin>.open
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - <builtin>.type
    - email.message_from_file
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - urlparse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - r.as_stream
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_path
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - pip._vendor.distlib.database.InstalledDistribution.__init__
    - n.lower
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.database.DistributionPath._yield_distributions
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - fp.read
    - email.message_from_file.get_all
    - s.endswith
    - remaining.startswith
    - pip._vendor.distlib.metadata._best_version
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_data
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - name
    - version
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 189
    functionName: pip._vendor.distlib.database.DistributionPath.distinfo_dirname
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - name.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 210
    functionName: pip._vendor.distlib.database.DistributionPath.get_distributions
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 2
    functionsReached:
    - name.replace
    - posixpath.join
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.util.parse_marker.marker_var
    - possible_versions.remove
    - pip._vendor.distlib.database.EggInfoDistribution.__init__
    - run_requires.insert
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.database._Cache.add
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - MARKER_OP.match
    - io.StringIO.read
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - finder.find
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - tl_data.splitlines
    - COMPARE_OP.match
    - codecs.open
    - NON_SPACE.match
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - zipimport.zipimporter
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.metadata.Metadata.add_requirements
    - data.splitlines
    - fields.items
    - entry.endswith
    - line.strip
    - reqs.append
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - types.SimpleNamespace
    - pip._vendor.distlib.metadata.LegacyMetadata.add_requirements
    - pip._vendor.distlib.version._legacy_key
    - os.path.join
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pydist.as_stream
    - IDENTIFIER.match
    - parts.append
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - <builtin>.super
    - extras.append
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - zipf.get_data
    - os.path.isdir
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pkgutil.get_importer
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - os.path.exists
    - warnings.warn
    - pip._vendor.distlib.resources.finder_for_path
    - VERSION_IDENTIFIER.match
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.util.parse_requirement
    - pip._vendor.distlib.util.parse_marker.marker
    - req.strip
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - contextlib.closing
    - line.startswith
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _finder_registry.get
    - mapping.items
    - remaining.find
    - missing.append
    - sys.path_importer_cache.get
    - pattern.match
    - _VERSION_REPLACE.get
    - path.endswith
    - result.pop
    - m.end
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.database.DistributionPath._generate_cache
    - pip._vendor.distlib.metadata.Metadata.__init__
    - v.split
    - <builtin>.any
    - versions.append
    - pip._vendor.distlib.database.EggInfoDistribution.__init__.set_name_and_version
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - seen.add
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - AND.match
    - <builtin>.open
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - <builtin>.type
    - email.message_from_file
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - urlparse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - r.as_stream
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_path
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - pip._vendor.distlib.database.InstalledDistribution.__init__
    - n.lower
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.database.DistributionPath._yield_distributions
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - fp.read
    - email.message_from_file.get_all
    - s.endswith
    - remaining.startswith
    - pip._vendor.distlib.metadata._best_version
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_data
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 232
    functionName: pip._vendor.distlib.database.DistributionPath.get_distribution
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 1
    functionsReached:
    - name.replace
    - posixpath.join
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.util.parse_marker.marker_var
    - possible_versions.remove
    - pip._vendor.distlib.database.EggInfoDistribution.__init__
    - run_requires.insert
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.database._Cache.add
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - MARKER_OP.match
    - io.StringIO.read
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - finder.find
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - tl_data.splitlines
    - COMPARE_OP.match
    - codecs.open
    - NON_SPACE.match
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - zipimport.zipimporter
    - _ATTR2FIELD.get
    - name.lower
    - res.append
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.metadata.Metadata.add_requirements
    - data.splitlines
    - fields.items
    - entry.endswith
    - line.strip
    - reqs.append
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - types.SimpleNamespace
    - pip._vendor.distlib.metadata.LegacyMetadata.add_requirements
    - pip._vendor.distlib.version._legacy_key
    - os.path.join
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pydist.as_stream
    - IDENTIFIER.match
    - parts.append
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - <builtin>.super
    - extras.append
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - zipf.get_data
    - os.path.isdir
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pkgutil.get_importer
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - os.path.exists
    - warnings.warn
    - pip._vendor.distlib.resources.finder_for_path
    - VERSION_IDENTIFIER.match
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.util.parse_requirement
    - pip._vendor.distlib.util.parse_marker.marker
    - req.strip
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - contextlib.closing
    - line.startswith
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _finder_registry.get
    - mapping.items
    - remaining.find
    - missing.append
    - sys.path_importer_cache.get
    - pattern.match
    - _VERSION_REPLACE.get
    - path.endswith
    - result.pop
    - m.end
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.database.DistributionPath._generate_cache
    - pip._vendor.distlib.metadata.Metadata.__init__
    - v.split
    - <builtin>.any
    - versions.append
    - pip._vendor.distlib.database.EggInfoDistribution.__init__.set_name_and_version
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - seen.add
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - AND.match
    - <builtin>.open
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - <builtin>.type
    - email.message_from_file
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - urlparse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - r.as_stream
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_path
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - pip._vendor.distlib.database.InstalledDistribution.__init__
    - n.lower
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.database.DistributionPath._yield_distributions
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - fp.read
    - email.message_from_file.get_all
    - s.endswith
    - remaining.startswith
    - pip._vendor.distlib.metadata._best_version
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_data
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b5820>
    argNames:
    - self
    - name
    - version
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 258
    functionName: pip._vendor.distlib.database.DistributionPath.provides_distribution
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - name.replace
    - posixpath.join
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - pip._vendor.distlib.util.parse_marker.marker_var
    - pip._vendor.distlib.database.EggInfoDistribution.__init__
    - run_requires.insert
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.database._Cache.add
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - MARKER_OP.match
    - io.StringIO.read
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.database.DistributionPath.get_distributions
    - pip._vendor.distlib.metadata._best_version._has_marker
    - finder.find
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - tl_data.splitlines
    - COMPARE_OP.match
    - pip._vendor.distlib.version.Matcher.match
    - codecs.open
    - NON_SPACE.match
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - zipimport.zipimporter
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.metadata.Metadata.add_requirements
    - data.splitlines
    - fields.items
    - entry.endswith
    - line.strip
    - reqs.append
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - pip._vendor.distlib.version._legacy_key
    - io.StringIO
    - pip._vendor.distlib.metadata.LegacyMetadata.add_requirements
    - types.SimpleNamespace
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - os.path.join
    - pydist.as_stream
    - parts.append
    - IDENTIFIER.match
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - <builtin>.super
    - extras.append
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - zipf.get_data
    - os.path.isdir
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pkgutil.get_importer
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - m.groupdict
    - os.path.exists
    - warnings.warn
    - pip._vendor.distlib.resources.finder_for_path
    - _LINE_PREFIX_1_2.sub
    - VERSION_IDENTIFIER.match
    - f.read
    - pip._vendor.distlib.util.parse_requirement
    - pip._vendor.distlib.util.parse_marker.marker
    - req.strip
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - contextlib.closing
    - line.startswith
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _finder_registry.get
    - mapping.items
    - remaining.find
    - missing.append
    - sys.path_importer_cache.get
    - pattern.match
    - _VERSION_REPLACE.get
    - path.endswith
    - result.pop
    - m.end
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.database.DistributionPath._generate_cache
    - pip._vendor.distlib.metadata.Metadata.__init__
    - v.split
    - <builtin>.any
    - versions.append
    - pip._vendor.distlib.database.EggInfoDistribution.__init__.set_name_and_version
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - seen.add
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - <builtin>.open
    - AND.match
    - <builtin>.getattr
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - NAME_VERSION_RE.match
    - <builtin>.type
    - pip._vendor.distlib.util.parse_name_and_version
    - email.message_from_file
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - urlparse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - r.as_stream
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_path
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - pip._vendor.distlib.database.InstalledDistribution.__init__
    - n.lower
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.database.DistributionPath._yield_distributions
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - fp.read
    - email.message_from_file.get_all
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - remaining.startswith
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_data
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - relative_path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 299
    functionName: pip._vendor.distlib.database.DistributionPath.get_file_path
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - name.replace
    - posixpath.join
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.util.parse_marker.marker_var
    - possible_versions.remove
    - pip._vendor.distlib.database.EggInfoDistribution.__init__
    - run_requires.insert
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.database._Cache.add
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - MARKER_OP.match
    - io.StringIO.read
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - finder.find
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - tl_data.splitlines
    - COMPARE_OP.match
    - codecs.open
    - NON_SPACE.match
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - zipimport.zipimporter
    - _ATTR2FIELD.get
    - name.lower
    - res.append
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.metadata.Metadata.add_requirements
    - data.splitlines
    - fields.items
    - entry.endswith
    - line.strip
    - reqs.append
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - types.SimpleNamespace
    - pip._vendor.distlib.metadata.LegacyMetadata.add_requirements
    - pip._vendor.distlib.version._legacy_key
    - os.path.join
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pydist.as_stream
    - IDENTIFIER.match
    - parts.append
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - <builtin>.super
    - extras.append
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - zipf.get_data
    - os.path.isdir
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pkgutil.get_importer
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - os.path.exists
    - warnings.warn
    - pip._vendor.distlib.resources.finder_for_path
    - VERSION_IDENTIFIER.match
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.util.parse_requirement
    - pip._vendor.distlib.util.parse_marker.marker
    - req.strip
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - contextlib.closing
    - line.startswith
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _finder_registry.get
    - mapping.items
    - remaining.find
    - missing.append
    - sys.path_importer_cache.get
    - pattern.match
    - _VERSION_REPLACE.get
    - path.endswith
    - result.pop
    - m.end
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.database.DistributionPath._generate_cache
    - pip._vendor.distlib.metadata.Metadata.__init__
    - v.split
    - <builtin>.any
    - versions.append
    - pip._vendor.distlib.database.EggInfoDistribution.__init__.set_name_and_version
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - seen.add
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - AND.match
    - <builtin>.open
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.database.DistributionPath.get_distribution
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - <builtin>.type
    - email.message_from_file
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - urlparse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - r.as_stream
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_path
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - pip._vendor.distlib.database.InstalledDistribution.__init__
    - n.lower
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.database.DistributionPath._yield_distributions
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - fp.read
    - email.message_from_file.get_all
    - s.endswith
    - remaining.startswith
    - pip._vendor.distlib.metadata._best_version
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_data
    - dist.get_resource_path
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised:
    - LookupError
    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: dist.get_resource_path
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b87880>
    argNames:
    - self
    - category
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 308
    functionName: pip._vendor.distlib.database.DistributionPath.get_exported_entries
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - name.replace
    - posixpath.join
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.util.parse_marker.marker_var
    - possible_versions.remove
    - pip._vendor.distlib.database.EggInfoDistribution.__init__
    - run_requires.insert
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.database._Cache.add
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - MARKER_OP.match
    - io.StringIO.read
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.database.DistributionPath.get_distributions
    - pip._vendor.distlib.metadata._best_version._has_marker
    - finder.find
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - tl_data.splitlines
    - COMPARE_OP.match
    - codecs.open
    - NON_SPACE.match
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - zipimport.zipimporter
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.metadata.Metadata.add_requirements
    - data.splitlines
    - fields.items
    - entry.endswith
    - line.strip
    - reqs.append
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - types.SimpleNamespace
    - pip._vendor.distlib.metadata.LegacyMetadata.add_requirements
    - pip._vendor.distlib.version._legacy_key
    - os.path.join
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pydist.as_stream
    - IDENTIFIER.match
    - parts.append
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - <builtin>.super
    - extras.append
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - zipf.get_data
    - os.path.isdir
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pkgutil.get_importer
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - os.path.exists
    - warnings.warn
    - pip._vendor.distlib.resources.finder_for_path
    - VERSION_IDENTIFIER.match
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.util.parse_requirement
    - pip._vendor.distlib.util.parse_marker.marker
    - req.strip
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - contextlib.closing
    - line.startswith
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _finder_registry.get
    - mapping.items
    - remaining.find
    - missing.append
    - sys.path_importer_cache.get
    - pattern.match
    - _VERSION_REPLACE.get
    - path.endswith
    - result.pop
    - m.end
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - d.values
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.database.DistributionPath._generate_cache
    - pip._vendor.distlib.metadata.Metadata.__init__
    - v.split
    - <builtin>.any
    - versions.append
    - pip._vendor.distlib.database.EggInfoDistribution.__init__.set_name_and_version
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - seen.add
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - AND.match
    - <builtin>.open
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - <builtin>.type
    - email.message_from_file
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - urlparse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - r.as_stream
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_path
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - pip._vendor.distlib.database.InstalledDistribution.__init__
    - n.lower
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.database.DistributionPath._yield_distributions
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - fp.read
    - email.message_from_file.get_all
    - s.endswith
    - remaining.startswith
    - pip._vendor.distlib.metadata._best_version
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_data
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - metadata
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 345
    functionName: pip._vendor.distlib.database.Distribution.__init__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 8
    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: 363
    functionName: pip._vendor.distlib.database.Distribution.source_url
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 372
    functionName: pip._vendor.distlib.database.Distribution.name_and_version
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    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: 0
    functionLinenumber: 379
    functionName: pip._vendor.distlib.database.Distribution.provides
    functionSourceFile: pip._vendor.distlib.database
    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
    - req_attr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 390
    functionName: pip._vendor.distlib.database.Distribution._get_requirements
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - _VERSION_PATTERN.finditer
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.markers.Evaluator.evaluate
    - logger.debug
    - pip._vendor.distlib.util.parse_marker.marker_and
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.util.get_extras
    - pip._vendor.distlib.version.is_semver
    - <builtin>.dict
    - pip._vendor.distlib.util.parse_marker.marker_var
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.markers._is_literal
    - m.end
    - <builtin>.set
    - pip._vendor.distlib.version._legacy_key
    - result.add
    - result.remove
    - <builtin>.tuple
    - parts.append
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - s.strip
    - IDENTIFIER.match
    - pip._vendor.distlib.version.LegacyVersion.parse
    - pip._vendor.distlib.metadata.Metadata.get_requirements
    - _VERSION_PART.split
    - MARKER_OP.match
    - pip._vendor.distlib.util.parse_marker
    - <builtin>.len
    - STRING_CHUNK.match
    - result.append
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.markers._is_version_marker
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.markers.interpret
    - pip._vendor.distlib.version.SemanticVersion.parse
    - result.extend
    - context.update
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - d.get
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - requested.remove
    - AND.match
    - <builtin>.getattr
    - extras.remove
    - r.startswith
    - pip._vendor.distlib.markers._get_versions
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.util.parse_marker.marker
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ec200130>
    - <ast.Constant object at 0x7f30ec200100>
    argNames:
    - self
    - reqts
    - extras
    - env
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 837
    functionName: pip._vendor.distlib.metadata.Metadata.get_requirements
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - _VERSION_PATTERN.finditer
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.markers.Evaluator.evaluate
    - _SEMVER_RE.match
    - pip._vendor.distlib.util.parse_marker.marker_and
    - OR.match
    - pip._vendor.distlib.util.get_extras
    - pip._vendor.distlib.version.is_semver
    - <builtin>.dict
    - pip._vendor.distlib.util.parse_marker.marker_var
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.markers._is_literal
    - m.end
    - <builtin>.set
    - pip._vendor.distlib.version._legacy_key
    - result.add
    - result.remove
    - <builtin>.tuple
    - parts.append
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - s.strip
    - IDENTIFIER.match
    - pip._vendor.distlib.version.LegacyVersion.parse
    - pip._vendor.distlib.metadata.Metadata.get_requirements
    - _VERSION_PART.split
    - MARKER_OP.match
    - pip._vendor.distlib.util.parse_marker
    - <builtin>.len
    - STRING_CHUNK.match
    - result.append
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.markers._is_version_marker
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.markers.interpret
    - pip._vendor.distlib.version.SemanticVersion.parse
    - result.extend
    - context.update
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - d.get
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - requested.remove
    - AND.match
    - extras.remove
    - r.startswith
    - pip._vendor.distlib.markers._get_versions
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.util.parse_marker.marker
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 399
    functionName: pip._vendor.distlib.database.Distribution.run_requires
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - _VERSION_PATTERN.finditer
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.markers.Evaluator.evaluate
    - pip._vendor.distlib.database.Distribution._get_requirements
    - logger.debug
    - pip._vendor.distlib.util.parse_marker.marker_and
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.util.get_extras
    - pip._vendor.distlib.version.is_semver
    - <builtin>.dict
    - pip._vendor.distlib.util.parse_marker.marker_var
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.markers._is_literal
    - m.end
    - <builtin>.set
    - pip._vendor.distlib.version._legacy_key
    - result.add
    - result.remove
    - <builtin>.tuple
    - parts.append
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - s.strip
    - IDENTIFIER.match
    - pip._vendor.distlib.version.LegacyVersion.parse
    - pip._vendor.distlib.metadata.Metadata.get_requirements
    - _VERSION_PART.split
    - MARKER_OP.match
    - pip._vendor.distlib.util.parse_marker
    - <builtin>.len
    - STRING_CHUNK.match
    - result.append
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.markers._is_version_marker
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.markers.interpret
    - pip._vendor.distlib.version.SemanticVersion.parse
    - result.extend
    - context.update
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - d.get
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - requested.remove
    - AND.match
    - <builtin>.getattr
    - extras.remove
    - r.startswith
    - pip._vendor.distlib.markers._get_versions
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.util.parse_marker.marker
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 403
    functionName: pip._vendor.distlib.database.Distribution.meta_requires
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - _VERSION_PATTERN.finditer
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.markers.Evaluator.evaluate
    - pip._vendor.distlib.database.Distribution._get_requirements
    - logger.debug
    - pip._vendor.distlib.util.parse_marker.marker_and
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.util.get_extras
    - pip._vendor.distlib.version.is_semver
    - <builtin>.dict
    - pip._vendor.distlib.util.parse_marker.marker_var
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.markers._is_literal
    - m.end
    - <builtin>.set
    - pip._vendor.distlib.version._legacy_key
    - result.add
    - result.remove
    - <builtin>.tuple
    - parts.append
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - s.strip
    - IDENTIFIER.match
    - pip._vendor.distlib.version.LegacyVersion.parse
    - pip._vendor.distlib.metadata.Metadata.get_requirements
    - _VERSION_PART.split
    - MARKER_OP.match
    - pip._vendor.distlib.util.parse_marker
    - <builtin>.len
    - STRING_CHUNK.match
    - result.append
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.markers._is_version_marker
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.markers.interpret
    - pip._vendor.distlib.version.SemanticVersion.parse
    - result.extend
    - context.update
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - d.get
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - requested.remove
    - AND.match
    - <builtin>.getattr
    - extras.remove
    - r.startswith
    - pip._vendor.distlib.markers._get_versions
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.util.parse_marker.marker
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 407
    functionName: pip._vendor.distlib.database.Distribution.build_requires
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - _VERSION_PATTERN.finditer
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.markers.Evaluator.evaluate
    - pip._vendor.distlib.database.Distribution._get_requirements
    - logger.debug
    - pip._vendor.distlib.util.parse_marker.marker_and
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.util.get_extras
    - pip._vendor.distlib.version.is_semver
    - <builtin>.dict
    - pip._vendor.distlib.util.parse_marker.marker_var
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.markers._is_literal
    - m.end
    - <builtin>.set
    - pip._vendor.distlib.version._legacy_key
    - result.add
    - result.remove
    - <builtin>.tuple
    - parts.append
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - s.strip
    - IDENTIFIER.match
    - pip._vendor.distlib.version.LegacyVersion.parse
    - pip._vendor.distlib.metadata.Metadata.get_requirements
    - _VERSION_PART.split
    - MARKER_OP.match
    - pip._vendor.distlib.util.parse_marker
    - <builtin>.len
    - STRING_CHUNK.match
    - result.append
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.markers._is_version_marker
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.markers.interpret
    - pip._vendor.distlib.version.SemanticVersion.parse
    - result.extend
    - context.update
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - d.get
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - requested.remove
    - AND.match
    - <builtin>.getattr
    - extras.remove
    - r.startswith
    - pip._vendor.distlib.markers._get_versions
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.util.parse_marker.marker
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 411
    functionName: pip._vendor.distlib.database.Distribution.test_requires
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - _VERSION_PATTERN.finditer
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.markers.Evaluator.evaluate
    - pip._vendor.distlib.database.Distribution._get_requirements
    - logger.debug
    - pip._vendor.distlib.util.parse_marker.marker_and
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.util.get_extras
    - pip._vendor.distlib.version.is_semver
    - <builtin>.dict
    - pip._vendor.distlib.util.parse_marker.marker_var
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.markers._is_literal
    - m.end
    - <builtin>.set
    - pip._vendor.distlib.version._legacy_key
    - result.add
    - result.remove
    - <builtin>.tuple
    - parts.append
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - s.strip
    - IDENTIFIER.match
    - pip._vendor.distlib.version.LegacyVersion.parse
    - pip._vendor.distlib.metadata.Metadata.get_requirements
    - _VERSION_PART.split
    - MARKER_OP.match
    - pip._vendor.distlib.util.parse_marker
    - <builtin>.len
    - STRING_CHUNK.match
    - result.append
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.markers._is_version_marker
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.markers.interpret
    - pip._vendor.distlib.version.SemanticVersion.parse
    - result.extend
    - context.update
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - d.get
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - requested.remove
    - AND.match
    - <builtin>.getattr
    - extras.remove
    - r.startswith
    - pip._vendor.distlib.markers._get_versions
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.util.parse_marker.marker
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 415
    functionName: pip._vendor.distlib.database.Distribution.dev_requires
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - _VERSION_PATTERN.finditer
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.markers.Evaluator.evaluate
    - pip._vendor.distlib.database.Distribution._get_requirements
    - logger.debug
    - pip._vendor.distlib.util.parse_marker.marker_and
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.util.get_extras
    - pip._vendor.distlib.version.is_semver
    - <builtin>.dict
    - pip._vendor.distlib.util.parse_marker.marker_var
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.markers._is_literal
    - m.end
    - <builtin>.set
    - pip._vendor.distlib.version._legacy_key
    - result.add
    - result.remove
    - <builtin>.tuple
    - parts.append
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - s.strip
    - IDENTIFIER.match
    - pip._vendor.distlib.version.LegacyVersion.parse
    - pip._vendor.distlib.metadata.Metadata.get_requirements
    - _VERSION_PART.split
    - MARKER_OP.match
    - pip._vendor.distlib.util.parse_marker
    - <builtin>.len
    - STRING_CHUNK.match
    - result.append
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.markers._is_version_marker
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.markers.interpret
    - pip._vendor.distlib.version.SemanticVersion.parse
    - result.extend
    - context.update
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - d.get
    - <builtin>.int
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - requested.remove
    - AND.match
    - <builtin>.getattr
    - extras.remove
    - r.startswith
    - pip._vendor.distlib.markers._get_versions
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.util.parse_marker.marker
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 418
    functionName: pip._vendor.distlib.database.Distribution.matches_requirement
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.util.parse_name_and_version
    - req.strip
    - remaining.find
    - pip._vendor.distlib.version._legacy_key.get_parts
    - urlparse.urlparse
    - _SEMVER_RE.match
    - pip._vendor.distlib.util.parse_marker.marker_and
    - OR.match
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.util.parse_marker.marker_var
    - _VERSION_REPLACE.get
    - result.pop
    - m.end
    - req.split
    - types.SimpleNamespace
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - <builtin>.tuple
    - s.strip
    - local.split
    - IDENTIFIER.match
    - clist.append
    - pip._vendor.distlib.version.LegacyVersion.parse
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - _VERSION_PART.split
    - MARKER_OP.match
    - extras.append
    - versions.append
    - <builtin>.len
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - result.append
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - remaining.startswith
    - part.isdigit
    - p.zfill
    - m.groupdict
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - pip._vendor.distlib.version.get_scheme
    - COMPARE_OP.match
    - pip._vendor.distlib.version.Matcher.match
    - p.startswith
    - <builtin>.getattr
    - NON_SPACE.match
    - VERSION_IDENTIFIER.match
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.util.parse_requirement
    - AND.match
    - urllib.parse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker
    - logger.warning
    - NAME_VERSION_RE.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 451
    functionName: pip._vendor.distlib.database.Distribution.__repr__
    functionSourceFile: pip._vendor.distlib.database
    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
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 461
    functionName: pip._vendor.distlib.database.Distribution.__eq__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.type
    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: 476
    functionName: pip._vendor.distlib.database.Distribution.__hash__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e8a3dc70>
    argNames:
    - self
    - metadata
    - path
    - env
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 491
    functionName: pip._vendor.distlib.database.BaseInstalledDistribution.__init__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e8a47190>
    argNames:
    - self
    - data
    - hasher
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 506
    functionName: pip._vendor.distlib.database.BaseInstalledDistribution.get_hash
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 3
    functionsReached:
    - hashlib.md5
    - base64.urlsafe_b64encode
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.as_stream
    functionSourceFile: <builtin>
    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: data.splitlines
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 582
    functionName: pip._vendor.distlib.database.InstalledDistribution.__repr__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 586
    functionName: pip._vendor.distlib.database.InstalledDistribution.__str__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 589
    functionName: pip._vendor.distlib.database.InstalledDistribution._get_records
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 3
    functionsReached:
    - pkgutil.get_importer
    - finder.find
    - results.append
    - contextlib.closing
    - pip._vendor.distlib.util.CSVReader.__init__
    - csv.reader
    - pip._vendor.distlib.util._csv_open
    - codecs.getreader
    - _finder_registry.get
    - sys.path_importer_cache.get
    - <builtin>.len
    - pip._vendor.distlib.resources.finder_for_path
    - pip._vendor.distlib.database.InstalledDistribution.get_distinfo_resource
    - <builtin>.open
    - os.path.join
    - <builtin>.type
    - r.as_stream
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 805
    functionName: pip._vendor.distlib.database.InstalledDistribution.get_distinfo_resource
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 7
    functionsReached:
    - pkgutil.get_importer
    - finder.find
    - _finder_registry.get
    - sys.path_importer_cache.get
    - pip._vendor.distlib.resources.finder_for_path
    - os.path.join
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - DistlibException
    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: pip._vendor.distlib.database.InstalledDistribution
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.util.cached_property
    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: 3
    functionLinenumber: 613
    functionName: pip._vendor.distlib.database.InstalledDistribution.exports
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - pkgutil.get_importer
    - finder.find
    - _finder_registry.get
    - sys.path_importer_cache.get
    - pip._vendor.distlib.resources.finder_for_path
    - pip._vendor.distlib.database.InstalledDistribution.get_distinfo_resource
    - os.path.join
    - <builtin>.type
    - pip._vendor.distlib.database.InstalledDistribution.read_exports
    - r.as_stream
    - contextlib.closing
    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: 3
    functionLinenumber: 626
    functionName: pip._vendor.distlib.database.InstalledDistribution.read_exports
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 1
    functionsReached:
    - pkgutil.get_importer
    - finder.find
    - _finder_registry.get
    - sys.path_importer_cache.get
    - pip._vendor.distlib.resources.finder_for_path
    - pip._vendor.distlib.database.InstalledDistribution.get_distinfo_resource
    - os.path.join
    - <builtin>.type
    - pip._vendor.distlib.database.InstalledDistribution.read_exports
    - r.as_stream
    - contextlib.closing
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - exports
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 641
    functionName: pip._vendor.distlib.database.InstalledDistribution.write_exports
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.database.InstalledDistribution.write_exports
    - <builtin>.open
    - os.path.join
    - path.split
    - pip._vendor.distlib.database.InstalledDistribution.get_distinfo_file
    - path.find
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 814
    functionName: pip._vendor.distlib.database.InstalledDistribution.get_distinfo_file
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 4
    functionsReached:
    - os.path.join
    - path.find
    - path.split
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - relative_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 652
    functionName: pip._vendor.distlib.database.InstalledDistribution.get_resource_path
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - pkgutil.get_importer
    - finder.find
    - csv.reader
    - pip._vendor.distlib.util.CSVReader.__init__
    - pip._vendor.distlib.util._csv_open
    - codecs.getreader
    - _finder_registry.get
    - sys.path_importer_cache.get
    - pip._vendor.distlib.resources.finder_for_path
    - pip._vendor.distlib.database.InstalledDistribution.get_distinfo_resource
    - <builtin>.open
    - os.path.join
    - <builtin>.type
    - r.as_stream
    - contextlib.closing
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 672
    functionName: pip._vendor.distlib.database.InstalledDistribution.list_installed_files
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 1
    functionsReached:
    - results.append
    - codecs.getreader
    - _finder_registry.get
    - sys.path_importer_cache.get
    - pip._vendor.distlib.database.InstalledDistribution._get_records
    - r.as_stream
    - csv.reader
    - pip._vendor.distlib.util.CSVReader.__init__
    - pip._vendor.distlib.util._csv_open
    - os.path.join
    - <builtin>.len
    - pip._vendor.distlib.database.InstalledDistribution.get_distinfo_resource
    - <builtin>.type
    - pkgutil.get_importer
    - finder.find
    - <builtin>.range
    - pip._vendor.distlib.resources.finder_for_path
    - <builtin>.open
    - contextlib.closing
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e8a54220>
    argNames:
    - self
    - paths
    - prefix
    - dry_run
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 682
    functionName: pip._vendor.distlib.database.InstalledDistribution.write_installed_files
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 1
    functionsReached:
    - os.path.getsize
    - record_path.startswith
    - pip._vendor.distlib.database.BaseInstalledDistribution.get_hash
    - path.split
    - path.endswith
    - writer.writerow
    - pip._vendor.distlib.util._csv_open
    - csv.writer
    - os.path.join
    - base64.urlsafe_b64encode
    - path.startswith
    - os.path.relpath
    - pip._vendor.distlib.util.CSVWriter.__init__
    - os.path.isdir
    - fp.read
    - base.startswith
    - hashlib.md5
    - os.path.dirname
    - logger.info
    - <builtin>.open
    - <builtin>.getattr
    - pip._vendor.distlib.database.InstalledDistribution.get_distinfo_file
    - path.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: base.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: writer.writerow
    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: record_path.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 4
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 717
    functionName: pip._vendor.distlib.database.InstalledDistribution.check_installed_files
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - contextlib.closing
    - results.append
    - codecs.getreader
    - _finder_registry.get
    - sys.path_importer_cache.get
    - os.path.getsize
    - hash_value.split
    - pip._vendor.distlib.database.BaseInstalledDistribution.get_hash
    - path.split
    - pip._vendor.distlib.database.InstalledDistribution._get_records
    - r.as_stream
    - csv.reader
    - <builtin>.str
    - pip._vendor.distlib.util.CSVReader.__init__
    - pip._vendor.distlib.util._csv_open
    - os.path.isabs
    - os.path.join
    - mismatches.append
    - base64.urlsafe_b64encode
    - pip._vendor.distlib.database.InstalledDistribution.list_installed_files
    - os.path.isfile
    - <builtin>.len
    - pip._vendor.distlib.database.InstalledDistribution.get_distinfo_resource
    - <builtin>.type
    - hashlib.md5
    - pkgutil.get_importer
    - finder.find
    - path.find
    - os.path.exists
    - os.path.dirname
    - pip._vendor.distlib.resources.finder_for_path
    - <builtin>.open
    - <builtin>.getattr
    - f.read
    - pip._vendor.distlib.database.InstalledDistribution.get_distinfo_file
    - <builtin>.range
    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: hash_value.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 754
    functionName: pip._vendor.distlib.database.InstalledDistribution.shared_locations
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - os.path.isfile
    - result.setdefault
    - codecs.open
    - os.path.join
    - f.read
    - line.split
    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.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30eea0a310>
    argNames:
    - self
    - paths
    - dry_run
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 780
    functionName: pip._vendor.distlib.database.InstalledDistribution.write_shared_locations
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 1
    functionsReached:
    - lines.append
    - f.write
    - logger.info
    - codecs.open
    - os.path.isdir
    - os.path.join
    - paths.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: paths.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 843
    functionName: pip._vendor.distlib.database.InstalledDistribution.list_distinfo_files
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - contextlib.closing
    - results.append
    - codecs.getreader
    - _finder_registry.get
    - sys.path_importer_cache.get
    - pip._vendor.distlib.database.InstalledDistribution._get_records
    - r.as_stream
    - csv.reader
    - pip._vendor.distlib.util.CSVReader.__init__
    - pip._vendor.distlib.util._csv_open
    - os.path.isabs
    - os.path.join
    - path.startswith
    - <builtin>.len
    - pip._vendor.distlib.database.InstalledDistribution.get_distinfo_resource
    - <builtin>.type
    - pkgutil.get_importer
    - finder.find
    - os.path.dirname
    - pip._vendor.distlib.resources.finder_for_path
    - <builtin>.open
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 859
    functionName: pip._vendor.distlib.database.InstalledDistribution.__eq__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - s
    - n
    - v
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 878
    functionName: pip._vendor.distlib.database.EggInfoDistribution.__init__.set_name_and_version
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 8
    functionsReached:
    - n.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: n.lower
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 898
    functionName: pip._vendor.distlib.database.EggInfoDistribution._get_metadata
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 8
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - pip._vendor.distlib.util.parse_marker.marker_var
    - run_requires.insert
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - MARKER_OP.match
    - io.StringIO.read
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - tl_data.splitlines
    - COMPARE_OP.match
    - codecs.open
    - NON_SPACE.match
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - zipimport.zipimporter
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - OR.match
    - pip._vendor.distlib.metadata.Metadata.add_requirements
    - data.splitlines
    - fields.items
    - line.strip
    - reqs.append
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - types.SimpleNamespace
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.add_requirements
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - os.path.join
    - pip._vendor.distlib.version._legacy_key
    - IDENTIFIER.match
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - extras.append
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - zipf.get_data
    - os.path.isdir
    - pip._vendor.distlib.version._pep_440_key
    - warnings.append
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - os.path.exists
    - _LINE_PREFIX_1_2.sub
    - VERSION_IDENTIFIER.match
    - f.read
    - pip._vendor.distlib.util.parse_requirement
    - pip._vendor.distlib.util.parse_marker.marker
    - req.strip
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - line.startswith
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - remaining.find
    - missing.append
    - pattern.match
    - _VERSION_REPLACE.get
    - path.endswith
    - result.pop
    - m.end
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - <builtin>.any
    - v.split
    - versions.append
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - p.startswith
    - AND.match
    - <builtin>.open
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - email.message_from_file
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - urlparse.urlparse
    - logger.debug
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_path
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - fp.read
    - email.message_from_file.get_all
    - s.endswith
    - remaining.startswith
    - pip._vendor.distlib.metadata._best_version
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_data
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 901
    functionName: pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_data
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 10
    functionsReached:
    - line.startswith
    - req.strip
    - remaining.find
    - urlparse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker_and
    - OR.match
    - data.splitlines
    - pip._vendor.distlib.util.parse_marker.marker_var
    - line.strip
    - m.end
    - reqs.append
    - types.SimpleNamespace
    - parts.append
    - IDENTIFIER.match
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - MARKER_OP.match
    - extras.append
    - versions.append
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - remaining.startswith
    - m.groups
    - COMPARE_OP.match
    - AND.match
    - NON_SPACE.match
    - VERSION_IDENTIFIER.match
    - pip._vendor.distlib.util.parse_requirement
    - urllib.parse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker
    - logger.warning
    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: reqs.append
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - req_path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 931
    functionName: pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_path
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 9
    functionsReached:
    - line.startswith
    - req.strip
    - remaining.find
    - urlparse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker_and
    - OR.match
    - data.splitlines
    - pip._vendor.distlib.util.parse_marker.marker_var
    - line.strip
    - m.end
    - reqs.append
    - types.SimpleNamespace
    - parts.append
    - IDENTIFIER.match
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - MARKER_OP.match
    - extras.append
    - versions.append
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - fp.read
    - remaining.startswith
    - m.groups
    - pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_data
    - COMPARE_OP.match
    - AND.match
    - codecs.open
    - NON_SPACE.match
    - VERSION_IDENTIFIER.match
    - pip._vendor.distlib.util.parse_requirement
    - urllib.parse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker
    - logger.warning
    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: zipf.get_data
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - requirements
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1047
    functionName: pip._vendor.distlib.metadata.Metadata.add_requirements
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 9
    functionsReached:
    - run_requires.insert
    - pip._vendor.distlib.metadata.LegacyMetadata.add_requirements
    - <builtin>.sorted
    - <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: tl_data.splitlines
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 992
    functionName: pip._vendor.distlib.database.EggInfoDistribution.__repr__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 996
    functionName: pip._vendor.distlib.database.EggInfoDistribution.__str__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 999
    functionName: pip._vendor.distlib.database.EggInfoDistribution.check_installed_files
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.database.EggInfoDistribution.list_installed_files
    - hashlib.md5
    - os.stat
    - line.strip
    - pip._vendor.distlib.database.EggInfoDistribution.list_installed_files._md5
    - os.path.exists
    - pip._vendor.distlib.database.EggInfoDistribution.list_installed_files._size
    - f.close
    - result.append
    - <builtin>.open
    - codecs.open
    - os.path.normpath
    - os.path.join
    - os.path.isdir
    - f.read
    - mismatches.append
    - p.endswith
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1018
    functionName: pip._vendor.distlib.database.EggInfoDistribution.list_installed_files
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 1
    functionsReached:
    - hashlib.md5
    - os.stat
    - line.strip
    - pip._vendor.distlib.database.EggInfoDistribution.list_installed_files._md5
    - os.path.exists
    - pip._vendor.distlib.database.EggInfoDistribution.list_installed_files._size
    - result.append
    - <builtin>.open
    - codecs.open
    - os.path.normpath
    - os.path.join
    - os.path.isdir
    - f.close
    - f.read
    - p.endswith
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1026
    functionName: pip._vendor.distlib.database.EggInfoDistribution.list_installed_files._md5
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 2
    functionsReached:
    - f.close
    - <builtin>.open
    - hashlib.md5
    - f.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1034
    functionName: pip._vendor.distlib.database.EggInfoDistribution.list_installed_files._size
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 2
    functionsReached:
    - os.stat
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30dc0fc460>
    argNames:
    - self
    - absolute
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1056
    functionName: pip._vendor.distlib.database.EggInfoDistribution.list_distinfo_files
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - line.strip
    - os.path.exists
    - p.startswith
    - codecs.open
    - os.path.join
    - os.path.normpath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1085
    functionName: pip._vendor.distlib.database.EggInfoDistribution.__eq__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1113
    functionName: pip._vendor.distlib.database.DependencyGraph.__init__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - distribution
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1118
    functionName: pip._vendor.distlib.database.DependencyGraph.add_distribution
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30dc0fe6d0>
    argNames:
    - self
    - x
    - y
    - label
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1128
    functionName: pip._vendor.distlib.database.DependencyGraph.add_edge
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - distribution
    - requirement
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1143
    functionName: pip._vendor.distlib.database.DependencyGraph.add_missing
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 3
    functionsReached:
    - logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1154
    functionName: pip._vendor.distlib.database.DependencyGraph._repr_dist
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e76b47c0>
    argNames:
    - self
    - dist
    - level
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1157
    functionName: pip._vendor.distlib.database.DependencyGraph.repr_node
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 1
    functionsReached:
    - suboutput.split
    - output.extend
    - <builtin>.str
    - pip._vendor.distlib.database.DependencyGraph._repr_dist
    - pip._vendor.distlib.database.DependencyGraph.repr_node
    - output.append
    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: suboutput.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 12
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e76c97c0>
    argNames:
    - self
    - f
    - skip_disconnected
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1170
    functionName: pip._vendor.distlib.database.DependencyGraph.to_dot
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - disconnected.append
    - <builtin>.len
    - f.write
    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: disconnected.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1202
    functionName: pip._vendor.distlib.database.DependencyGraph.topological_sort
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - result.extend
    - logger.debug
    - alist.keys
    - to_remove.append
    - alist.items
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: alist.items
    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: to_remove.append
    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: alist.keys
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1233
    functionName: pip._vendor.distlib.database.DependencyGraph.__repr__
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - suboutput.split
    - output.extend
    - <builtin>.str
    - pip._vendor.distlib.database.DependencyGraph._repr_dist
    - pip._vendor.distlib.database.DependencyGraph.repr_node
    - output.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e76c6e20>
    argNames:
    - dists
    - scheme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1241
    functionName: pip._vendor.distlib.database.make_graph
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.util.parse_name_and_version
    - pip._vendor.distlib.version._legacy_key.get_parts
    - logger.debug
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.database.DependencyGraph.add_distribution
    - _VERSION_REPLACE.get
    - result.pop
    - req.split
    - provided.setdefault
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - result.append
    - p.isdigit
    - pip._vendor.distlib.database.DependencyGraph.add_edge
    - pip._vendor.distlib.database.DependencyGraph.add_missing
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.database.DependencyGraph.__init__
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - m.groupdict
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - pip._vendor.distlib.version.Matcher.match
    - <builtin>.getattr
    - pip._vendor.distlib.version.Version.parse
    - logger.warning
    - NAME_VERSION_RE.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: provided.setdefault
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - dists
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1295
    functionName: pip._vendor.distlib.database.get_dependent_dists
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.util.parse_name_and_version
    - pip._vendor.distlib.version._legacy_key.get_parts
    - logger.debug
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.database.DependencyGraph.add_distribution
    - dep.pop
    - _VERSION_REPLACE.get
    - result.pop
    - req.split
    - provided.setdefault
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - dep.append
    - <builtin>.len
    - result.append
    - p.isdigit
    - pip._vendor.distlib.database.DependencyGraph.add_edge
    - pip._vendor.distlib.database.DependencyGraph.add_missing
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.database.DependencyGraph.__init__
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - m.groupdict
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - todo.append
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - todo.pop
    - pip._vendor.distlib.version.Matcher.match
    - <builtin>.getattr
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.database.make_graph
    - logger.warning
    - NAME_VERSION_RE.match
    linkageType: pythonLinkage
    raised:
    - DistlibException
    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: dep.append
    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: dep.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - dists
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1321
    functionName: pip._vendor.distlib.database.get_required_dists
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.util.parse_name_and_version
    - pip._vendor.distlib.version._legacy_key.get_parts
    - logger.debug
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.database.DependencyGraph.add_distribution
    - _VERSION_REPLACE.get
    - result.pop
    - req.split
    - <builtin>.set
    - provided.setdefault
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - result.append
    - p.isdigit
    - pip._vendor.distlib.database.DependencyGraph.add_edge
    - pip._vendor.distlib.database.DependencyGraph.add_missing
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.database.DependencyGraph.__init__
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - logger.warning
    - <builtin>.int
    - s.lower
    - part.isdigit
    - p.zfill
    - m.groupdict
    - seen.add
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - todo.append
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - todo.pop
    - pip._vendor.distlib.version.Matcher.match
    - <builtin>.getattr
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.database.make_graph
    - req.add
    - NAME_VERSION_RE.match
    linkageType: pythonLinkage
    raised:
    - DistlibException
    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
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - name
    - version
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 1350
    functionName: pip._vendor.distlib.database.make_dist
    functionSourceFile: pip._vendor.distlib.database
    functionUses: 5
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.database.Distribution.__init__
    - io.StringIO.read
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - codecs.open
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - fields.items
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - _LINE_PREFIX_1_2.sub
    - f.read
    - kwargs.pop
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pattern.match
    - _VERSION_REPLACE.get
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - <builtin>.any
    - v.split
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - <builtin>.open
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - email.message_from_file
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - logger.debug
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 7
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.metadata
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - <builtin>.object
    - _ALL_FIELDS.update
    - name.lower
    - _ATTR2FIELD.items
    - <builtin>.set
    - logging.getLogger
    - re.compile
    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: _ALL_FIELDS.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - version
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 118
    functionName: pip._vendor.distlib.metadata._version2fieldlist
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 13
    functionsReached:
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised:
    - ValueError
    - MetadataUnrecognizedVersionError
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 14
    IfCount: 15
    argCount: 1
    argDefaultValues: []
    argNames:
    - fields
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 136
    functionName: pip._vendor.distlib.metadata._best_version
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 36
    functionsReached:
    - pip._vendor.distlib.metadata._best_version._has_marker
    - <builtin>.any
    - <builtin>.int
    - <builtin>.len
    - logger.debug
    - fields.items
    - possible_versions.remove
    linkageType: pythonLinkage
    raised:
    - MetadataConflictError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - keys
    - markers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 138
    functionName: pip._vendor.distlib.metadata._best_version._has_marker
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 37
    functionsReached:
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fields.items
    functionSourceFile: <builtin>
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: possible_versions.remove
    functionSourceFile: <builtin>
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _ATTR2FIELD.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b51f0>
    argNames:
    - name
    - version
    - for_filename
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 232
    functionName: pip._vendor.distlib.metadata._get_name_and_version
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 2
    functionsReached:
    - version.replace
    - _FILESAFE.sub
    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: _FILESAFE.sub
    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: version.replace
    functionSourceFile: <builtin>
    functionUses: 3
    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 0x7f30e36c4610>
    - <ast.Constant object at 0x7f30e36c4d90>
    - <ast.Constant object at 0x7f30e36c4550>
    - <ast.Constant object at 0x7f30e36c4e80>
    argNames:
    - self
    - path
    - fileobj
    - mapping
    - scheme
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 257
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.__init__
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 26
    functionsReached:
    - name.replace
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - _ATTR2FIELD.get
    - email.message_from_file
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - logger.debug
    - _SEMVER_RE.match
    - fields.items
    - pip._vendor.distlib.version.is_semver
    - possible_versions.remove
    - _VERSION_REPLACE.get
    - logger.isEnabledFor
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.any
    - v.split
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - <builtin>.len
    - email.message_from_file.get_payload
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - p.isdigit
    - pip._vendor.distlib.version._pep_440_key
    - PEP440_VERSION_RE.match
    - email.message_from_file.get_all
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.metadata._best_version._has_marker
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - fp.close
    - pip._vendor.distlib.version.Version.__init__
    - <builtin>.int
    - pip._vendor.distlib.metadata._best_version
    - part.isdigit
    - s.lower
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.zfill
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - <builtin>.hasattr
    - codecs.open
    - _LINE_PREFIX_1_2.sub
    - other.keys
    - pip._vendor.distlib.version.Version.parse
    - logger.warning
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filepath
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 339
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.read
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 27
    functionsReached:
    - v.strip
    - name.replace
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _ATTR2FIELD.get
    - email.message_from_file
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - logger.isEnabledFor
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - v.split
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - <builtin>.len
    - email.message_from_file.get_payload
    - result.append
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - email.message_from_file.get_all
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - fp.close
    - pip._vendor.distlib.version.Version.__init__
    - <builtin>.int
    - s.lower
    - part.isdigit
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.get_scheme
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - codecs.open
    - _LINE_PREFIX_1_2.sub
    - pip._vendor.distlib.version.Version.parse
    - logger.warning
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fileob
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 347
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.read_file
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 28
    functionsReached:
    - v.strip
    - name.replace
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _ATTR2FIELD.get
    - email.message_from_file
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - logger.isEnabledFor
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - v.split
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - <builtin>.len
    - email.message_from_file.get_payload
    - result.append
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - email.message_from_file.get_all
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.get_scheme
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - _LINE_PREFIX_1_2.sub
    - pip._vendor.distlib.version.Version.parse
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f0c882e0>
    argNames:
    - self
    - other
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 408
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.update
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 27
    functionsReached:
    - name.replace
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _ATTR2FIELD.get
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - logger.isEnabledFor
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - v.split
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - <builtin>.len
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - _LINE_PREFIX_1_2.sub
    - other.keys
    - pip._vendor.distlib.version.Version.parse
    - logger.warning
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 273
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 35
    functionsReached:
    - pip._vendor.distlib.metadata._best_version._has_marker
    - <builtin>.any
    - <builtin>.int
    - pip._vendor.distlib.metadata._best_version
    - <builtin>.len
    - logger.debug
    - fields.items
    - possible_versions.remove
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - fileobj
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 276
    functionName: pip._vendor.distlib.metadata.LegacyMetadata._write_field
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 5
    functionsReached:
    - fileobj.write
    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: fileobj.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: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 279
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.__getitem__
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - <builtin>.isinstance
    - _ATTR2FIELD.get
    - value.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - res.append
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 3
    IfCount: 8
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f30f0c85070>
    argNames:
    - self
    - name
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 480
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.get
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 31
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - <builtin>.isinstance
    - _ATTR2FIELD.get
    - value.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - res.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 282
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.__setitem__
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - v.strip
    - name.replace
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _ATTR2FIELD.get
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - logger.isEnabledFor
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - v.split
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - <builtin>.len
    - result.append
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.get_scheme
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - _LINE_PREFIX_1_2.sub
    - pip._vendor.distlib.version.Version.parse
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 4
    IfCount: 13
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 436
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.set
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 32
    functionsReached:
    - v.strip
    - name.replace
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - _ATTR2FIELD.get
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - logger.isEnabledFor
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - v.split
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - <builtin>.len
    - result.append
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.get_scheme
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - _LINE_PREFIX_1_2.sub
    - pip._vendor.distlib.version.Version.parse
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 285
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.__delitem__
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - name.replace
    - _ATTR2FIELD.get
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 296
    functionName: pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 44
    functionsReached:
    - name.replace
    - _ATTR2FIELD.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 292
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.__contains__
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - name.replace
    - _ATTR2FIELD.get
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    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: _ATTR2FIELD.get
    functionSourceFile: <builtin>
    functionUses: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 302
    functionName: pip._vendor.distlib.metadata.LegacyMetadata._default_value
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 307
    functionName: pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 33
    functionsReached:
    - _LINE_PREFIX_PRE_1_2.sub
    - _LINE_PREFIX_1_2.sub
    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_PREFIX_PRE_1_2.sub
    functionSourceFile: <builtin>
    functionUses: 34
    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_PREFIX_1_2.sub
    functionSourceFile: <builtin>
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 313
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.__getattr__
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e954a1f0>
    argNames:
    - self
    - filesafe
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 324
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.get_fullname
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - version.replace
    - _FILESAFE.sub
    - pip._vendor.distlib.metadata._get_name_and_version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 330
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.is_field
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - name.replace
    - _ATTR2FIELD.get
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 335
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.is_multi_field
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - name.replace
    - _ATTR2FIELD.get
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    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: email.message_from_file
    functionSourceFile: email
    functionUses: 32
    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: email.message_from_file.get_all
    functionSourceFile: email
    functionUses: 29
    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: email.message_from_file.get_payload
    functionSourceFile: email
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e953aeb0>
    argNames:
    - self
    - filepath
    - skip_unknown
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 375
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.write
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 3
    functionsReached:
    - name.replace
    - <builtin>.isinstance
    - _ATTR2FIELD.get
    - value.split
    - res.append
    - logger.debug
    - fields.items
    - possible_versions.remove
    - values.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - fileobj.write
    - <builtin>.tuple
    - pip._vendor.distlib.metadata._version2fieldlist
    - <builtin>.any
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - <builtin>.len
    - pip._vendor.distlib.metadata.LegacyMetadata.write_file
    - pip._vendor.distlib.metadata._best_version._has_marker
    - fp.close
    - <builtin>.int
    - pip._vendor.distlib.metadata._best_version
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - codecs.open
    - pip._vendor.distlib.metadata.LegacyMetadata._write_field
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 4
    IfCount: 6
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e953a8e0>
    argNames:
    - self
    - fileobject
    - skip_unknown
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 383
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.write_file
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 4
    functionsReached:
    - name.replace
    - <builtin>.isinstance
    - _ATTR2FIELD.get
    - value.split
    - res.append
    - logger.debug
    - fields.items
    - possible_versions.remove
    - values.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - fileobj.write
    - <builtin>.tuple
    - pip._vendor.distlib.metadata._version2fieldlist
    - <builtin>.any
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - <builtin>.len
    - pip._vendor.distlib.metadata._best_version._has_marker
    - <builtin>.int
    - pip._vendor.distlib.metadata._best_version
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - pip._vendor.distlib.metadata.LegacyMetadata._write_field
    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: values.replace
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - key
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 418
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.update._set
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 28
    functionsReached:
    - name.replace
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _ATTR2FIELD.get
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - logger.isEnabledFor
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - v.split
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - <builtin>.len
    - result.append
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.get_scheme
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - _LINE_PREFIX_1_2.sub
    - pip._vendor.distlib.version.Version.parse
    - logger.warning
    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: v.split
    functionSourceFile: <builtin>
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f0c9c790>
    argNames:
    - self
    - strict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 509
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.check
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 26
    functionsReached:
    - name.replace
    - <builtin>.isinstance
    - _ATTR2FIELD.get
    - value.split
    - missing.append
    - res.append
    - logger.debug
    - fields.items
    - possible_versions.remove
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - <builtin>.any
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - <builtin>.len
    - warnings.append
    - pip._vendor.distlib.metadata._best_version._has_marker
    - <builtin>.int
    - pip._vendor.distlib.metadata._best_version
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    linkageType: pythonLinkage
    raised:
    - MetadataMissingError
    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: missing.append
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 535
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.check.are_valid_constraints
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - v.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: warnings.append
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f3297a60>
    argNames:
    - self
    - skip_missing
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 553
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.todict
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 6
    functionsReached:
    - pip._vendor.distlib.metadata._best_version._has_marker
    - <builtin>.any
    - <builtin>.int
    - pip._vendor.distlib.metadata._best_version
    - <builtin>.len
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - logger.debug
    - <builtin>.tuple
    - fields.items
    - possible_versions.remove
    - pip._vendor.distlib.metadata._version2fieldlist
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - requirements
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 576
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.add_requirements
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 587
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.keys
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 3
    functionsReached:
    - <builtin>.tuple
    - <builtin>.list
    - pip._vendor.distlib.metadata._version2fieldlist
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 590
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.__iter__
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - <builtin>.tuple
    - <builtin>.list
    - pip._vendor.distlib.metadata.LegacyMetadata.keys
    - pip._vendor.distlib.metadata._version2fieldlist
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 594
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.values
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - <builtin>.tuple
    - <builtin>.list
    - pip._vendor.distlib.metadata.LegacyMetadata.keys
    - pip._vendor.distlib.metadata._version2fieldlist
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 597
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.items
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - <builtin>.tuple
    - <builtin>.list
    - pip._vendor.distlib.metadata.LegacyMetadata.keys
    - pip._vendor.distlib.metadata._version2fieldlist
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 600
    functionName: pip._vendor.distlib.metadata.LegacyMetadata.__repr__
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.metadata.Metadata
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - mapping
    - scheme
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 899
    functionName: pip._vendor.distlib.metadata.Metadata._validate_mapping
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 26
    functionsReached:
    - mapping.items
    - missing.append
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - pattern.match
    - mapping.get
    linkageType: pythonLinkage
    raised:
    - MetadataMissingError
    - MetadataUnrecognizedVersionError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 913
    functionName: pip._vendor.distlib.metadata.Metadata.validate
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 25
    functionsReached:
    - name.replace
    - <builtin>.isinstance
    - _ATTR2FIELD.get
    - mapping.items
    - value.split
    - missing.append
    - res.append
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - pattern.match
    - logger.debug
    - fields.items
    - possible_versions.remove
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - <builtin>.any
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - <builtin>.len
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - mapping.get
    - warnings.append
    - pip._vendor.distlib.metadata._best_version._has_marker
    - <builtin>.int
    - pip._vendor.distlib.metadata._best_version
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 0
    IfCount: 13
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 723
    functionName: pip._vendor.distlib.metadata.Metadata.__getattribute__
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - <builtin>.isinstance
    - d.get
    - <builtin>.object
    - _ATTR2FIELD.get
    - value.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - res.append
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - object.__getattribute__
    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: object.__getattribute__
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: d.get
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30ec220760>
    argNames:
    - self
    - key
    - value
    - scheme
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 766
    functionName: pip._vendor.distlib.metadata.Metadata._validate_value
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 28
    functionsReached:
    - pattern.match
    linkageType: pythonLinkage
    raised:
    - MetadataInvalidError
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 2
    IfCount: 11
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 776
    functionName: pip._vendor.distlib.metadata.Metadata.__setattr__
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - value.split
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - value.strip
    - pattern.match
    - d.setdefault
    - object.__setattr__
    - object.__getattribute__
    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: d.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 816
    functionName: pip._vendor.distlib.metadata.Metadata.name_and_version
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - version.replace
    - _FILESAFE.sub
    - pip._vendor.distlib.metadata._get_name_and_version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 831
    functionName: pip._vendor.distlib.metadata.Metadata.provides
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - result.append
    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: extras.remove
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 880
    functionName: pip._vendor.distlib.metadata.Metadata.dictionary
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.metadata._best_version._has_marker
    - <builtin>.any
    - <builtin>.int
    - pip._vendor.distlib.metadata._best_version
    - <builtin>.len
    - lmd.get
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.metadata.LegacyMetadata.todict
    - logger.debug
    - <builtin>.tuple
    - fields.items
    - pip._vendor.distlib.metadata.Metadata._from_legacy
    - possible_versions.remove
    - pip._vendor.distlib.metadata._version2fieldlist
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 929
    functionName: pip._vendor.distlib.metadata.Metadata._from_legacy
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 4
    functionsReached:
    - pip._vendor.distlib.metadata._best_version._has_marker
    - <builtin>.any
    - <builtin>.int
    - pip._vendor.distlib.metadata._best_version
    - <builtin>.len
    - lmd.get
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.metadata.LegacyMetadata.todict
    - logger.debug
    - <builtin>.tuple
    - fields.items
    - possible_versions.remove
    - pip._vendor.distlib.metadata._version2fieldlist
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 893
    functionName: pip._vendor.distlib.metadata.Metadata.dependencies
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - keys.split
    - pip._vendor.distlib.util.extract_by_key
    - <builtin>.isinstance
    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: mapping.get
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 922
    functionName: pip._vendor.distlib.metadata.Metadata.todict
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.util.extract_by_key
    - <builtin>.any
    - <builtin>.isinstance
    - <builtin>.int
    - pip._vendor.distlib.metadata._best_version
    - <builtin>.len
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.metadata.LegacyMetadata.todict
    - logger.debug
    - keys.split
    - <builtin>.tuple
    - fields.items
    - possible_versions.remove
    - pip._vendor.distlib.metadata._version2fieldlist
    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: lmd.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 971
    functionName: pip._vendor.distlib.metadata.Metadata._to_legacy
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 3
    functionsReached:
    - v.strip
    - name.replace
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - _ATTR2FIELD.get
    - email.message_from_file
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - logger.debug
    - _SEMVER_RE.match
    - fields.items
    - pip._vendor.distlib.version.is_semver
    - possible_versions.remove
    - _VERSION_REPLACE.get
    - logger.isEnabledFor
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - <builtin>.set
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.any
    - v.split
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.metadata.Metadata._to_legacy.process_entries
    - <builtin>.len
    - <builtin>.sorted
    - email.message_from_file.get_payload
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - email.message_from_file.get_all
    - reqts.add
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.metadata._best_version._has_marker
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - fp.close
    - pip._vendor.distlib.version.Version.__init__
    - <builtin>.int
    - pip._vendor.distlib.metadata._best_version
    - part.isdigit
    - s.lower
    - <builtin>.hasattr
    - e.get
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - m.groups
    - p.zfill
    - p.startswith
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - pip._vendor.distlib.version.Matcher.__init__
    - _LINE_PREFIX_1_2.sub
    - codecs.open
    - other.keys
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - logger.warning
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - entries
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 972
    functionName: pip._vendor.distlib.metadata.Metadata._to_legacy.process_entries
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 4
    functionsReached:
    - <builtin>.set
    - e.get
    - reqts.add
    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: e.get
    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: reqts.add
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30df330160>
    - <ast.Constant object at 0x7f30df330190>
    - <ast.Constant object at 0x7f30df3301c0>
    - <ast.Constant object at 0x7f30df3301f0>
    argNames:
    - self
    - path
    - fileobj
    - legacy
    - skip_unknown
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 1021
    functionName: pip._vendor.distlib.metadata.Metadata.write
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 2
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - values.replace
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.LegacyMetadata.write_file
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - pip._vendor.distlib.metadata.LegacyMetadata.write
    - p.isdigit
    - pip._vendor.distlib.metadata.Metadata._from_legacy
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - e.get
    - pip._vendor.distlib.metadata.Metadata._to_legacy
    - codecs.open
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - lmd.get
    - res.append
    - _SEMVER_RE.match
    - fields.items
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - fileobj.write
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.version._pep_440_key
    - reqts.add
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - _LINE_PREFIX_1_2.sub
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pip._vendor.distlib.metadata.LegacyMetadata.todict
    - pattern.match
    - _VERSION_REPLACE.get
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - <builtin>.any
    - v.split
    - pip._vendor.distlib.metadata.Metadata._to_legacy.process_entries
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.metadata.LegacyMetadata._write_field
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - email.message_from_file
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - pip._vendor.distlib.metadata._version2fieldlist
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - json.dump
    - other.keys
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: run_requires.insert
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1064
    functionName: pip._vendor.distlib.metadata.Metadata.__repr__
    functionSourceFile: pip._vendor.distlib.metadata
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.index
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd2e7730>
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 37
    functionName: pip._vendor.distlib.index.PackageIndex.__init__
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 0
    functionsReached:
    - urlparse.urlparse
    - config.get
    - subprocess.check_call
    - index_servers.split
    - config.sections
    - os.path.join
    - configparser.RawConfigParser
    - os.path.expanduser
    - urllib.parse.urlparse
    - server.strip
    - pip._vendor.distlib.util.PyPIRCFile.read
    - ConfigParser.RawConfigParser
    - cfg.get
    - os.path.exists
    - <builtin>.open
    - pip._vendor.distlib.util._load_pypirc
    - pip._vendor.distlib.util.PyPIRCFile.__init__
    - config.read
    - pip._vendor.distlib.index.PackageIndex.read_configuration
    - config.has_option
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 74
    functionName: pip._vendor.distlib.index.PackageIndex.read_configuration
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 1
    functionsReached:
    - index_servers.split
    - server.strip
    - config.sections
    - config.read
    - os.path.exists
    - ConfigParser.RawConfigParser
    - os.path.expanduser
    - pip._vendor.distlib.util.PyPIRCFile.__init__
    - pip._vendor.distlib.util.PyPIRCFile.read
    - os.path.join
    - configparser.RawConfigParser
    - cfg.get
    - pip._vendor.distlib.util._load_pypirc
    - config.get
    - config.has_option
    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: 66
    functionName: pip._vendor.distlib.index.PackageIndex._get_pypirc_command
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cfg.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 87
    functionName: pip._vendor.distlib.index.PackageIndex.save_configuration
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 0
    functionsReached:
    - urllib2.HTTPBasicAuthHandler
    - urlparse.urlparse
    - urllib2.HTTPPasswordMgr
    - urllib.request.HTTPPasswordMgr
    - pip._vendor.distlib.util._store_pypirc
    - os.path.join
    - configparser.RawConfigParser
    - os.path.expanduser
    - config.write
    - pip._vendor.distlib.util.PyPIRCFile.update
    - pip._vendor.distlib.index.PackageIndex.check_credentials
    - ConfigParser.RawConfigParser
    - config.set
    - urllib.request.HTTPBasicAuthHandler
    - urllib2.HTTPPasswordMgr.add_password
    - config.add_section
    - config.has_section
    - <builtin>.open
    - pip._vendor.distlib.util.PyPIRCFile.__init__
    - config.read
    - urllib.parse.urlparse
    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: 1
    functionLinenumber: 96
    functionName: pip._vendor.distlib.index.PackageIndex.check_credentials
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 4
    functionsReached:
    - urllib.parse.urlparse
    - urllib2.HTTPBasicAuthHandler
    - urlparse.urlparse
    - urllib2.HTTPPasswordMgr
    - urllib.request.HTTPPasswordMgr
    - urllib.request.HTTPBasicAuthHandler
    - urllib2.HTTPPasswordMgr.add_password
    linkageType: pythonLinkage
    raised:
    - DistlibException
    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: urllib2.HTTPPasswordMgr
    functionSourceFile: urllib2
    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: urllib.request.HTTPPasswordMgr
    functionSourceFile: urllib
    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: urllib2.HTTPPasswordMgr.add_password
    functionSourceFile: urllib2
    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: urllib.request.HTTPBasicAuthHandler
    functionSourceFile: urllib
    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: urllib2.HTTPBasicAuthHandler
    functionSourceFile: urllib2
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - metadata
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 108
    functionName: pip._vendor.distlib.index.PackageIndex.register
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 0
    functionsReached:
    - urllib2.build_opener
    - <builtin>.isinstance
    - v.encode
    - d.items
    - urllib2.HTTPBasicAuthHandler
    - urlparse.urlparse
    - urllib2.HTTPPasswordMgr
    - pip._vendor.distlib.index.PackageIndex.encode_request
    - urllib2.build_opener.open
    - urllib.request.HTTPPasswordMgr
    - <builtin>.str
    - metadata.validate
    - metadata.todict
    - <builtin>.len
    - handlers.append
    - pip._vendor.distlib.index.PackageIndex.check_credentials
    - urllib.request.build_opener.open
    - urllib.request.HTTPBasicAuthHandler
    - urllib2.HTTPPasswordMgr.add_password
    - urllib.request.Request
    - pip._vendor.distlib.index.PackageIndex.send_request
    - urllib.request.build_opener
    - urllib2.Request
    - urllib.parse.urlparse
    - parts.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: metadata.validate
    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: metadata.todict
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - fields
    - files
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 458
    functionName: pip._vendor.distlib.index.PackageIndex.encode_request
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - v.encode
    - <builtin>.str
    - <builtin>.len
    - urllib2.Request
    - urllib.request.Request
    - parts.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 442
    functionName: pip._vendor.distlib.index.PackageIndex.send_request
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 4
    functionsReached:
    - urllib2.build_opener
    - handlers.append
    - urllib.request.build_opener
    - urllib2.build_opener.open
    - urllib.request.build_opener.open
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - name
    - stream
    - outbuf
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 128
    functionName: pip._vendor.distlib.index.PackageIndex._reader
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 0
    functionsReached:
    - outbuf.append
    - s.decode
    - logger.debug
    - stream.close
    - stream.readline
    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: outbuf.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f86cab50>
    argNames:
    - self
    - filename
    - signer
    - sign_password
    - keystore
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: pip._vendor.distlib.index.PackageIndex.get_sign_command
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 2
    functionsReached:
    - tempfile.mkdtemp
    - os.path.basename
    - cmd.extend
    - logger.debug
    - 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: cmd.extend
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a83d0>
    argNames:
    - self
    - cmd
    - input_data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 174
    functionName: pip._vendor.distlib.index.PackageIndex.run_command
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 3
    functionsReached:
    - threading.Thread.join
    - p.stdin.close
    - p.stdin.write
    - p.wait
    - threading.Thread.start
    - threading.Thread
    - subprocess.Popen
    - dummy_threading.Thread
    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: p.stdin.write
    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: p.stdin.close
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8c01850>
    argNames:
    - self
    - filename
    - signer
    - sign_password
    - keystore
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 209
    functionName: pip._vendor.distlib.index.PackageIndex.sign_file
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 1
    functionsReached:
    - pip._vendor.distlib.index.PackageIndex.run_command
    - threading.Thread.join
    - tempfile.mkdtemp
    - os.path.basename
    - cmd.extend
    - p.stdin.close
    - logger.debug
    - p.stdin.write
    - p.wait
    - os.path.join
    - subprocess.Popen
    - threading.Thread.start
    - sign_password.encode
    - threading.Thread
    - pip._vendor.distlib.index.PackageIndex.get_sign_command
    - dummy_threading.Thread
    linkageType: pythonLinkage
    raised:
    - DistlibException
    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: sign_password.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 7
    IfCount: 4
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f30eea09af0>
    - <ast.Constant object at 0x7f30eea09bb0>
    - <ast.Constant object at 0x7f30eea09a60>
    - <ast.Constant object at 0x7f30eea09a90>
    - <ast.Constant object at 0x7f30eea09a30>
    argNames:
    - self
    - metadata
    - filename
    - signer
    - sign_password
    - filetype
    - pyversion
    - keystore
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 232
    functionName: pip._vendor.distlib.index.PackageIndex.upload_file
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.index.PackageIndex.run_command
    - v.encode
    - <builtin>.isinstance
    - urllib2.build_opener
    - d.items
    - shutil.rmtree
    - urllib2.HTTPBasicAuthHandler
    - urlparse.urlparse
    - logger.debug
    - urllib2.HTTPPasswordMgr
    - pip._vendor.distlib.index.PackageIndex.encode_request
    - urllib2.build_opener.open
    - urllib.request.HTTPPasswordMgr
    - pip._vendor.distlib.index.PackageIndex.get_sign_command
    - <builtin>.str
    - p.wait
    - files.append
    - os.path.join
    - sign_password.encode
    - metadata.validate
    - subprocess.Popen
    - dummy_threading.Thread
    - threading.Thread.join
    - metadata.todict
    - tempfile.mkdtemp
    - pip._vendor.distlib.index.PackageIndex.sign_file
    - cmd.extend
    - <builtin>.len
    - handlers.append
    - pip._vendor.distlib.index.PackageIndex.check_credentials
    - d.update
    - p.stdin.close
    - hashlib.sha256
    - urllib.request.build_opener.open
    - threading.Thread
    - urllib.request.HTTPBasicAuthHandler
    - urllib2.HTTPPasswordMgr.add_password
    - urllib.request.Request
    - pip._vendor.distlib.index.PackageIndex.send_request
    - threading.Thread.start
    - hashlib.md5
    - os.path.basename
    - os.path.exists
    - os.path.dirname
    - urllib.request.build_opener
    - <builtin>.open
    - p.stdin.write
    - urllib2.Request
    - f.read
    - urllib.parse.urlparse
    - logger.warning
    - parts.extend
    linkageType: pythonLinkage
    raised:
    - DistlibException
    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: d.update
    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: files.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - metadata
    - doc_dir
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 289
    functionName: pip._vendor.distlib.index.PackageIndex.upload_documentation
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 0
    functionsReached:
    - urllib2.build_opener
    - v.encode
    - <builtin>.isinstance
    - urllib2.HTTPBasicAuthHandler
    - urlparse.urlparse
    - urllib2.HTTPPasswordMgr
    - pip._vendor.distlib.index.PackageIndex.encode_request
    - urllib2.build_opener.open
    - urllib.request.HTTPPasswordMgr
    - os.walk
    - <builtin>.str
    - zf.write
    - os.path.join
    - metadata.validate
    - zipfile.ZipFile
    - <builtin>.len
    - handlers.append
    - pip._vendor.distlib.index.PackageIndex.check_credentials
    - urllib.request.build_opener.open
    - os.path.isdir
    - urllib.request.HTTPBasicAuthHandler
    - urllib2.HTTPPasswordMgr.add_password
    - urllib.request.Request
    - pip._vendor.distlib.util.zip_dir
    - pip._vendor.distlib.index.PackageIndex.send_request
    - os.path.exists
    - urllib.request.build_opener
    - urllib2.Request
    - urllib.parse.urlparse
    - io.BytesIO
    - parts.extend
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30df0a60d0>
    argNames:
    - self
    - signature_filename
    - data_filename
    - keystore
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 317
    functionName: pip._vendor.distlib.index.PackageIndex.get_verify_command
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 1
    functionsReached:
    - logger.debug
    - cmd.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30d08d7af0>
    argNames:
    - self
    - signature_filename
    - data_filename
    - keystore
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 341
    functionName: pip._vendor.distlib.index.PackageIndex.verify_signature
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.index.PackageIndex.run_command
    - threading.Thread.join
    - cmd.extend
    - pip._vendor.distlib.index.PackageIndex.get_verify_command
    - p.stdin.close
    - logger.debug
    - p.stdin.write
    - p.wait
    - threading.Thread.start
    - threading.Thread
    - subprocess.Popen
    - dummy_threading.Thread
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 9
    IfCount: 10
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6cb5a90>
    - <ast.Constant object at 0x7f30d6cb5a60>
    argNames:
    - self
    - url
    - destfile
    - digest
    - reporthook
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 365
    functionName: pip._vendor.distlib.index.PackageIndex.download_file
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 0
    functionsReached:
    - sfp.info
    - digester.hexdigest
    - urllib2.build_opener
    - <builtin>.isinstance
    - logger.debug
    - urllib2.build_opener.open
    - sfp.close
    - <builtin>.len
    - sfp.read
    - handlers.append
    - digester.update
    - urllib.request.build_opener.open
    - urllib.request.Request
    - pip._vendor.distlib.index.PackageIndex.send_request
    - <builtin>.int
    - urllib.request.build_opener
    - <builtin>.open
    - urllib2.Request
    - <builtin>.getattr
    - dfp.write
    linkageType: pythonLinkage
    raised:
    - DistlibException
    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: urllib2.Request
    functionSourceFile: urllib2
    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: urllib.request.Request
    functionSourceFile: urllib
    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: sfp.info
    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: sfp.read
    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: dfp.write
    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: digester.update
    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: sfp.close
    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: digester.hexdigest
    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: handlers.append
    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: urllib2.build_opener
    functionSourceFile: urllib2
    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.build_opener
    functionSourceFile: urllib
    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: urllib2.build_opener.open
    functionSourceFile: urllib2
    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: urllib.request.build_opener.open
    functionSourceFile: urllib
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fd2e44c0>
    argNames:
    - self
    - terms
    - operator
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 501
    functionName: pip._vendor.distlib.index.PackageIndex.search
    functionSourceFile: pip._vendor.distlib.index
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.util.ServerProxy.__init__
    - xmlrpc.client.ServerProxy.__init__
    - <builtin>.isinstance
    - xmlrpclib.Transport.__init__
    - kwargs.get
    - xmlrpc.client.Transport.__init__
    - xmlrpc.client.SafeTransport.__init__
    - urlparse.urlparse
    - xmlrpclib.SafeTransport.__init__
    - pip._vendor.distlib.util.Transport.__init__
    - xmlrpclib.ServerProxy.search
    - pip._vendor.distlib.util.SafeTransport.__init__
    - xmlrpclib.ServerProxy.__init__
    - urllib.parse.urlparse
    - kwargs.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xmlrpclib.ServerProxy.search
    functionSourceFile: xmlrpclib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: pip._vendor.distlib.wheel
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - arches.append
    - _aix_support.aix_platform.replace
    - machine.replace
    - ABI.replace
    - pip._vendor.distlib.wheel._get_glibc_version
    - platform.libc_ver
    - re.compile
    - distutils.sysconfig.get_config_vars
    - _aix_support.aix_platform
    - re.match
    - suffix.split
    - pip._vendor.distlib.wheel.compatible_tags
    - os.environ.get
    - sys.version.lower
    - suffix.startswith
    - <builtin>.str
    - arch.replace
    - <builtin>.enumerate
    - rel_re.match
    - <builtin>.set
    - m.group
    - parts.append
    - <builtin>.tuple
    - imp.get_suffixes
    - osname.lower
    - pip._vendor.distlib.util.get_platform
    - abis.sort
    - versions.append
    - <builtin>.len
    - s.isdigit
    - _osx_support.get_platform_osx
    - sysconfig.get_config_var
    - logging.getLogger
    - ABI.startswith
    - pip._vendor.distlib.wheel.Mounter.__init__
    - sysconfig.get_config_vars
    - matches.append
    - sys.platform.replace
    - abis.insert
    - os.uname
    - pip._vendor.distlib.util.get_host_platform
    - <builtin>.int
    - pip._vendor.distlib.wheel._derive_abi
    - m.groups
    - pip._vendor.distlib.wheel._get_suffixes
    - sys.platform.startswith
    - abis.append
    - result.append
    - <builtin>.hasattr
    - <builtin>.range
    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: _aix_support.aix_platform.replace
    functionSourceFile: _aix_support
    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: sys.platform.replace
    functionSourceFile: sys
    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: ABI.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ABI.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 3
    IfCount: 7
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: pip._vendor.distlib.wheel._derive_abi
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 1
    functionsReached:
    - parts.append
    - sysconfig.get_config_var
    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: pip._vendor.distlib.wheel.<lambda1>
    functionSourceFile: pip._vendor.distlib.wheel
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.wheel.<lambda2>
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 3
    functionsReached:
    - o.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: o.replace
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 116
    functionName: pip._vendor.distlib.wheel._get_suffixes
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 2
    functionsReached:
    - imp.get_suffixes
    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: imp.get_suffixes
    functionSourceFile: imp
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - name
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 123
    functionName: pip._vendor.distlib.wheel._load_dynamic
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 1
    functionsReached:
    - spec.loader.exec_module
    - imp.load_dynamic
    - importlib.util.module_from_spec
    - importlib.util.spec_from_file_location
    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: imp.load_dynamic
    functionSourceFile: imp
    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: importlib.util.spec_from_file_location
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.util.module_from_spec
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: spec.loader.exec_module
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 137
    functionName: pip._vendor.distlib.wheel.Mounter.__init__
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - pathname
    - extensions
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 141
    functionName: pip._vendor.distlib.wheel.Mounter.add
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pathname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 145
    functionName: pip._vendor.distlib.wheel.Mounter.remove
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b89100>
    argNames:
    - self
    - fullname
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 151
    functionName: pip._vendor.distlib.wheel.Mounter.find_module
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fullname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 158
    functionName: pip._vendor.distlib.wheel.Mounter.load_module
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.wheel._load_dynamic
    - <builtin>.len
    - importlib.util.module_from_spec
    - spec.loader.exec_module
    - fullname.rsplit
    - importlib.util.spec_from_file_location
    - imp.load_dynamic
    linkageType: pythonLinkage
    raised:
    - ImportError
    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: fullname.rsplit
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e26a8f70>
    - <ast.Constant object at 0x7f30e26a8160>
    - <ast.Constant object at 0x7f30e26a8580>
    argNames:
    - self
    - filename
    - sign
    - verify
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 183
    functionName: pip._vendor.distlib.wheel.Wheel.__init__
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 9
    functionsReached:
    - m.groupdict
    - os.getcwd
    - FILENAME_RE.match
    - os.path.abspath
    - os.path.split
    - NAME_VERSION_RE.match
    linkageType: pythonLinkage
    raised:
    - DistlibException
    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: FILENAME_RE.match
    functionSourceFile: <builtin>
    functionUses: 10
    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: 0
    functionLinenumber: 225
    functionName: pip._vendor.distlib.wheel.Wheel.filename
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 242
    functionName: pip._vendor.distlib.wheel.Wheel.exists
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - os.path.isfile
    - os.path.join
    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: 247
    functionName: pip._vendor.distlib.wheel.Wheel.tags
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.wheel.Wheel
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.util.cached_property
    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: 12
    functionLinenumber: 254
    functionName: pip._vendor.distlib.wheel.Wheel.metadata
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - name.replace
    - posixpath.join
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - <builtin>.dict
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - io.StringIO.read
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - codecs.open
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - zf.open
    - fields.items
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - os.path.join
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - zipfile.ZipFile
    - pip._vendor.distlib.wheel.Wheel.get_wheel_metadata
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - codecs.getreader
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pattern.match
    - _VERSION_REPLACE.get
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - <builtin>.any
    - v.split
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - <builtin>.open
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - email.message_from_file
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - json.loads
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - zf
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 285
    functionName: pip._vendor.distlib.wheel.Wheel.get_wheel_metadata
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 2
    functionsReached:
    - posixpath.join
    - codecs.getreader
    - email.message_from_file
    - zf.open
    - <builtin>.dict
    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: zf.open
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 295
    functionName: pip._vendor.distlib.wheel.Wheel.info
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - posixpath.join
    - codecs.getreader
    - zipfile.ZipFile
    - email.message_from_file
    - pip._vendor.distlib.wheel.Wheel.get_wheel_metadata
    - zf.open
    - os.path.join
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 301
    functionName: pip._vendor.distlib.wheel.Wheel.process_shebang
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 1
    functionsReached:
    - m.end
    - shebang.lower
    - m.groups
    - data.find
    - SHEBANG_DETAIL_RE.match
    - SHEBANG_RE.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: SHEBANG_RE.match
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shebang.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: SHEBANG_DETAIL_RE.match
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.find
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30e7b32dc0>
    argNames:
    - self
    - data
    - hash_kind
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 331
    functionName: pip._vendor.distlib.wheel.Wheel.get_hash
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 5
    functionsReached:
    - <builtin>.getattr
    - base64.urlsafe_b64encode
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - records
    - record_path
    - archive_record_path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 343
    functionName: pip._vendor.distlib.wheel.Wheel.write_record
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 3
    functionsReached:
    - writer.writerow
    - pip._vendor.distlib.util._csv_open
    - csv.writer
    - pip._vendor.distlib.util.CSVWriter.__init__
    - <builtin>.open
    - records.append
    - <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: records.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - info
    - libdir
    - archive_paths
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 350
    functionName: pip._vendor.distlib.wheel.Wheel.write_records
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 2
    functionsReached:
    - writer.writerow
    - pip._vendor.distlib.wheel.<lambda1>
    - archive_paths.append
    - pip._vendor.distlib.util._csv_open
    - csv.writer
    - os.path.getsize
    - pip._vendor.distlib.wheel.<lambda2>
    - <builtin>.open
    - base64.urlsafe_b64encode
    - pip._vendor.distlib.util.CSVWriter.__init__
    - <builtin>.getattr
    - os.path.join
    - f.read
    - <builtin>.list
    - records.append
    - pip._vendor.distlib.wheel.Wheel.write_record
    - o.replace
    - pip._vendor.distlib.wheel.Wheel.get_hash
    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: archive_paths.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - pathname
    - archive_paths
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 366
    functionName: pip._vendor.distlib.wheel.Wheel.build_zip
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 2
    functionsReached:
    - logger.debug
    - zipfile.ZipFile
    - zf.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 10
    IfCount: 9
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30e7b214c0>
    - <ast.Constant object at 0x7f30e7b21490>
    argNames:
    - self
    - paths
    - tags
    - wheel_version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 372
    functionName: pip._vendor.distlib.wheel.Wheel.build
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.wheel.<lambda1>
    - sys.executable.endswith
    - f.write
    - os.path.getsize
    - logger.debug
    - pip._vendor.distlib.wheel.Wheel.process_shebang
    - records.append
    - pip._vendor.distlib.compat.filter
    - writer.writerow
    - os.walk
    - pip._vendor.distlib.util._csv_open
    - m.end
    - itertools.ifilter
    - os.fsdecode
    - zf.write
    - <builtin>.enumerate
    - csv.writer
    - os.path.join
    - pip._vendor.distlib.wheel.Wheel.build_zip
    - pip._vendor.distlib.wheel.Wheel.write_records
    - <builtin>.list
    - base64.urlsafe_b64encode
    - tags.get
    - archive_paths.append
    - os.path.relpath
    - zipfile.ZipFile
    - <builtin>.sorted
    - SHEBANG_DETAIL_RE.match
    - pip._vendor.distlib.util.CSVWriter.__init__
    - wheel_metadata.append
    - os.path.isdir
    - pip._vendor.distlib.wheel.Wheel.write_record
    - o.replace
    - pip._vendor.distlib.wheel.Wheel.get_hash
    - m.groups
    - shebang.lower
    - os.listdir
    - data.find
    - pip._vendor.distlib.wheel.<lambda2>
    - <builtin>.open
    - <builtin>.getattr
    - f.read
    - SHEBANG_RE.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.wheel.Wheel.build.<lambda1>
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: itertools.ifilter
    functionSourceFile: itertools
    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: pip._vendor.distlib.compat.filter
    functionSourceFile: pip
    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: tags.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.executable.endswith
    functionSourceFile: sys
    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: wheel_metadata.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - t
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 472
    functionName: pip._vendor.distlib.wheel.Wheel.build.sorter
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - ap.count
    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: ap.count
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - arcname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 489
    functionName: pip._vendor.distlib.wheel.Wheel.skip_entry
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 2
    functionsReached:
    - arcname.endswith
    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: arcname.endswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 25
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 36
    ICount: 21
    IfCount: 25
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - paths
    - maker
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 505
    functionName: pip._vendor.distlib.wheel.Wheel.install
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - name.replace
    - posixpath.join
    - py_compile.compile
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - shutil.rmtree
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - os.path.getsize
    - pip._vendor.distlib.database.BaseInstalledDistribution.get_hash
    - path.split
    - <builtin>.dict
    - possible_versions.remove
    - StringIO.StringIO
    - logger.isEnabledFor
    - <builtin>.str
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - flags.split
    - console_scripts.items
    - <builtin>.tuple
    - os.rmdir
    - pip._vendor.distlib.database._Cache.add
    - s.strip
    - pip._vendor.distlib.util.read_exports
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - cp.read_file
    - outfiles.extend
    - io.StringIO.read
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - base.startswith
    - pip._vendor.distlib.metadata._best_version._has_marker
    - os.stat
    - pip._vendor.distlib.version._semantic_key
    - finder.find
    - os.path.basename
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - pip._vendor.distlib.util.FileOperator.set_mode
    - arcname.decode
    - codecs.open
    - os.path.split
    - pip._vendor.distlib.database.InstalledDistribution.get_distinfo_file
    - logger.warning
    - <builtin>.hasattr
    - pip._vendor.distlib.util.get_export_entry
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - f.strip
    - pip._vendor.distlib.wheel.Wheel.skip_entry
    - _ATTR2FIELD.get
    - res.append
    - textwrap.dedent
    - _SEMVER_RE.match
    - zf.open
    - pathname.split
    - fields.items
    - data.splitlines
    - commands.get
    - pip._vendor.distlib.util.CSVReader.__init__
    - pip._vendor.distlib.util._csv_open
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - os.path.join
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - base64.urlsafe_b64encode
    - path.count
    - <builtin>.super
    - path.startswith
    - os.chmod
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - zipfile.ZipFile
    - pip._vendor.distlib.util.CSVWriter.__init__
    - os.path.isdir
    - io.StringIO.close
    - pip._vendor.distlib.version._pep_440_key
    - os.path.abspath
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pkgutil.get_importer
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - outstream.close
    - result.items
    - pip._vendor.distlib.util.FileOperator.record_as_written
    - m.groupdict
    - os.path.exists
    - os.path.dirname
    - pip._vendor.distlib.resources.finder_for_path
    - _LINE_PREFIX_1_2.sub
    - f.read
    - record_path.startswith
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - contextlib.closing
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - codecs.getreader
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - _finder_registry.get
    - mapping.items
    - gui_scripts.items
    - missing.append
    - sys.path_importer_cache.get
    - pattern.match
    - paths.remove
    - configparser.ConfigParser
    - _VERSION_REPLACE.get
    - pip._vendor.distlib.util.FileOperator.copy_stream
    - path.endswith
    - writer.writerow
    - csv.reader
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - csv.writer
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - importlib.util.cache_from_source
    - arcname.endswith
    - pip._vendor.distlib.util.convert_path
    - <builtin>.list
    - pip._vendor.distlib.metadata.Metadata.__init__
    - v.split
    - cp.readfp
    - <builtin>.any
    - tempfile.mkdtemp
    - outfile.endswith
    - os.path.relpath
    - pip._vendor.distlib.util.FileOperator.__init__
    - <builtin>.len
    - lines.append
    - email.message_from_file.get_payload
    - bf.read
    - mapping.get
    - os.mkdir
    - pip._vendor.distlib.util.FileOperator.newer
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.util.FileOperator.ensure_dir
    - hashlib.md5
    - fp.close
    - <builtin>.int
    - os.remove
    - part.isdigit
    - pip._vendor.distlib.util.FileOperator.byte_compile
    - m.groups
    - os.listdir
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - <builtin>.open
    - u_arcname.endswith
    - <builtin>.getattr
    - pip._vendor.distlib.version.Version.parse
    - outfiles.append
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - path.find
    - json.load
    - <builtin>.type
    - zf.infolist
    - cp.sections
    - email.message_from_file
    - pip._vendor.distlib.util.FileOperator._init_record
    - io.StringIO.seek
    - f.write
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - r.as_stream
    - shutil.copyfileobj
    - entries.items
    - pip._vendor.distlib.util.FileOperator.rollback
    - json.loads
    - cp.items
    - <builtin>.set
    - u_arcname.startswith
    - ENTRY_RE.search
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - pip._vendor.distlib.database.InstalledDistribution.__init__
    - paths.get
    - local.split
    - logger.exception
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.util.read_exports.read_stream
    - pip._vendor.distlib.util.ExportEntry.__init__
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - fp.read
    - pip._vendor.distlib.wheel.Wheel.get_hash
    - email.message_from_file.get_all
    - pip._vendor.distlib.util.FileOperator.<lambda1>
    - s.endswith
    - pip._vendor.distlib.database.InstalledDistribution.write_installed_files
    - pip._vendor.distlib.metadata._best_version
    - kwargs.get
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - logger.info
    - maker.make
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - u_arcname.split
    - other.keys
    - pip._vendor.distlib.database.InstalledDistribution.write_shared_locations
    linkageType: pythonLinkage
    raised:
    - DistlibException
    - ValueError
    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: zf.infolist
    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: arcname.decode
    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: bf.read
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: u_arcname.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: u_arcname.endswith
    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: u_arcname.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: outfiles.append
    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: outfile.endswith
    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: maker.make
    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: outfiles.extend
    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: commands.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: console_scripts.items
    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: gui_scripts.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 745
    functionName: pip._vendor.distlib.wheel.Wheel._get_dylib_cache
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 2
    functionsReached:
    - os.stat
    - tempfile.mkdtemp
    - <builtin>.str
    - os.access
    - os.path.expandvars
    - os.path.expanduser
    - pip._vendor.distlib.util.get_cache_base
    - os.path.normpath
    - os.path.join
    - os.path.isdir
    - os.path.abspath
    - pip._vendor.distlib.util.Cache.__init__
    - logger.warning
    - os.makedirs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 754
    functionName: pip._vendor.distlib.wheel.Wheel._get_extensions
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 1
    functionsReached:
    - json.load
    - posixpath.join
    - codecs.getreader
    - zf.open
    - paths.remove
    - pathname.split
    - pip._vendor.distlib.util.Cache.__init__
    - pip._vendor.distlib.util.path_to_cache_dir
    - <builtin>.str
    - pip._vendor.distlib.wheel.Wheel._get_dylib_cache
    - p.replace
    - os.path.expandvars
    - pip._vendor.distlib.util.get_cache_base
    - os.path.join
    - pip._vendor.distlib.util.convert_path
    - os.path.expanduser
    - datetime.datetime
    - os.makedirs
    - datetime.datetime.fromtimestamp
    - extensions.items
    - tempfile.mkdtemp
    - zipfile.ZipFile
    - zf.extract
    - os.access
    - result.append
    - pip._vendor.distlib.util.Cache.prefix_to_dir
    - os.path.normpath
    - os.path.isdir
    - os.path.abspath
    - zf.getinfo
    - os.stat
    - os.path.exists
    - d.replace
    - os.path.splitdrive
    - logger.warning
    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: extensions.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: zf.getinfo
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: zf.extract
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 789
    functionName: pip._vendor.distlib.wheel.Wheel.is_compatible
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 1
    functionsReached:
    - pip._vendor.distlib.wheel.Wheel.is_compatible
    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: 795
    functionName: pip._vendor.distlib.wheel.Wheel.is_mountable
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f763b130>
    argNames:
    - self
    - append
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 801
    functionName: pip._vendor.distlib.wheel.Wheel.mount
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - json.load
    - posixpath.join
    - codecs.getreader
    - sys.path.insert
    - logger.debug
    - zf.open
    - paths.remove
    - pathname.split
    - pip._vendor.distlib.util.Cache.__init__
    - pip._vendor.distlib.wheel.Mounter.add
    - pip._vendor.distlib.util.path_to_cache_dir
    - pip._vendor.distlib.wheel.Wheel.is_mountable
    - <builtin>.str
    - pip._vendor.distlib.wheel.Wheel._get_dylib_cache
    - p.replace
    - sys.path.append
    - os.path.expandvars
    - pip._vendor.distlib.util.get_cache_base
    - os.path.join
    - pip._vendor.distlib.util.convert_path
    - os.path.expanduser
    - datetime.datetime
    - pip._vendor.distlib.wheel.Wheel._get_extensions
    - os.makedirs
    - extensions.items
    - datetime.datetime.fromtimestamp
    - tempfile.mkdtemp
    - zipfile.ZipFile
    - zf.extract
    - os.access
    - result.append
    - pip._vendor.distlib.wheel.Wheel.is_compatible
    - sys.meta_path.append
    - pip._vendor.distlib.util.Cache.prefix_to_dir
    - os.path.isdir
    - os.path.normpath
    - os.path.abspath
    - zf.getinfo
    - os.stat
    - os.path.exists
    - d.replace
    - os.path.splitdrive
    - logger.warning
    linkageType: pythonLinkage
    raised:
    - DistlibException
    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.path.append
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 822
    functionName: pip._vendor.distlib.wheel.Wheel.unmount
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - logger.debug
    - os.path.join
    - pip._vendor.distlib.wheel.Mounter.remove
    - os.path.abspath
    - sys.meta_path.remove
    - sys.path.remove
    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.path.remove
    functionSourceFile: sys
    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: sys.meta_path.remove
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 834
    functionName: pip._vendor.distlib.wheel.Wheel.verify
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - posixpath.join
    - <builtin>.isinstance
    - pip._vendor.distlib.wheel.Wheel.skip_entry
    - codecs.getreader
    - zf.infolist
    - email.message_from_file
    - zf.open
    - csv.reader
    - pip._vendor.distlib.util.CSVReader.__init__
    - <builtin>.str
    - pip._vendor.distlib.util._csv_open
    - os.path.join
    - base64.urlsafe_b64encode
    - zipfile.ZipFile
    - bf.read
    - pip._vendor.distlib.wheel.Wheel.get_hash
    - <builtin>.open
    - arcname.decode
    - u_arcname.split
    - <builtin>.getattr
    - arcname.endswith
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 7
    IfCount: 8
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30f7660b20>
    argNames:
    - self
    - modifier
    - dest_dir
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 890
    functionName: pip._vendor.distlib.wheel.Wheel.update
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 0
    functionsReached:
    - name.replace
    - posixpath.join
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - shutil.rmtree
    - pip._vendor.distlib.version._legacy_key.get_parts
    - os.path.getsize
    - possible_versions.remove
    - records.append
    - StringIO.StringIO
    - logger.isEnabledFor
    - <builtin>.str
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - values.replace
    - <builtin>.tuple
    - pip._vendor.distlib.wheel.Wheel.build_zip
    - pip._vendor.distlib.wheel.Wheel.write_records
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - io.StringIO.read
    - archive_paths.append
    - zf.extract
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - pip._vendor.distlib.metadata.LegacyMetadata.write_file
    - pip._vendor.distlib.metadata.LegacyMetadata.write
    - p.isdigit
    - pip._vendor.distlib.metadata.Metadata._from_legacy
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - e.get
    - pip._vendor.distlib.metadata.Metadata._to_legacy
    - arcname.decode
    - codecs.open
    - shutil.copyfile
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - pip._vendor.distlib.wheel.<lambda1>
    - _ATTR2FIELD.get
    - lmd.get
    - res.append
    - _SEMVER_RE.match
    - pathname.split
    - fields.items
    - pip._vendor.distlib.wheel.Wheel.update.update_version
    - pip._vendor.distlib.metadata.Metadata.write
    - pip._vendor.distlib.util._csv_open
    - zf.write
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - fileobj.write
    - pip._vendor.distlib.version._legacy_key
    - io.StringIO
    - parts.append
    - os.path.join
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - base64.urlsafe_b64encode
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - zipfile.ZipFile
    - pip._vendor.distlib.util.CSVWriter.__init__
    - os.path.isdir
    - pip._vendor.distlib.version._pep_440_key
    - reqts.add
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - path_map.items
    - pip._vendor.distlib.wheel.Wheel.update.get_version
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pip._vendor.distlib.metadata.LegacyMetadata.todict
    - pattern.match
    - paths.remove
    - _VERSION_REPLACE.get
    - path.endswith
    - writer.writerow
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - csv.writer
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.util.convert_path
    - <builtin>.list
    - pip._vendor.distlib.util.tempdir
    - os.close
    - pip._vendor.distlib.metadata.Metadata.__init__
    - <builtin>.any
    - v.split
    - tempfile.mkdtemp
    - pip._vendor.distlib.metadata.Metadata._to_legacy.process_entries
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - o.replace
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - <builtin>.open
    - <builtin>.getattr
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.metadata.LegacyMetadata._write_field
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - zf.infolist
    - email.message_from_file
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - logger.debug
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.metadata._version2fieldlist
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - pip._vendor.distlib.wheel.Wheel.write_record
    - email.message_from_file.get_all
    - pip._vendor.distlib.wheel.Wheel.get_hash
    - s.endswith
    - tempfile.mkstemp
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.wheel.<lambda2>
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - json.dump
    - other.keys
    - version.find
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - path_map
    - info_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 907
    functionName: pip._vendor.distlib.wheel.Wheel.update.get_version
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 1
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - io.StringIO.read
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - codecs.open
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - fields.items
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.version._pep_440_key
    - warnings.append
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pattern.match
    - _VERSION_REPLACE.get
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - <builtin>.any
    - v.split
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - <builtin>.open
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - email.message_from_file
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - logger.debug
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - json.loads
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - version
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 917
    functionName: pip._vendor.distlib.wheel.Wheel.update.update_version
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 1
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - StringIO.StringIO
    - logger.isEnabledFor
    - <builtin>.str
    - values.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - io.StringIO.read
    - <builtin>.sorted
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - pip._vendor.distlib.metadata.LegacyMetadata.write_file
    - pip._vendor.distlib.metadata.LegacyMetadata.write
    - p.isdigit
    - pip._vendor.distlib.metadata.Metadata._from_legacy
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - e.get
    - pip._vendor.distlib.metadata.Metadata._to_legacy
    - codecs.open
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - lmd.get
    - res.append
    - _SEMVER_RE.match
    - fields.items
    - pip._vendor.distlib.metadata.Metadata.write
    - fileobj.write
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - pip._vendor.distlib.version._legacy_key
    - io.StringIO
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.version._pep_440_key
    - reqts.add
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pip._vendor.distlib.metadata.LegacyMetadata.todict
    - pattern.match
    - _VERSION_REPLACE.get
    - path.endswith
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - <builtin>.any
    - v.split
    - pip._vendor.distlib.metadata.Metadata._to_legacy.process_entries
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - <builtin>.open
    - pip._vendor.distlib.version.Version.parse
    - pip._vendor.distlib.metadata.LegacyMetadata._write_field
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - email.message_from_file
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - pip._vendor.distlib.metadata._version2fieldlist
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    - json.dump
    - version.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: version.find
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path_map.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 993
    functionName: pip._vendor.distlib.wheel._get_glibc_version
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 2
    functionsReached:
    - <builtin>.int
    - s.isdigit
    - platform.libc_ver
    - <builtin>.tuple
    - result.append
    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: platform.libc_ver
    functionSourceFile: platform
    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: s.isdigit
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 25
    ICount: 21
    IfCount: 17
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1004
    functionName: pip._vendor.distlib.wheel.compatible_tags
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 1
    functionsReached:
    - arches.append
    - pip._vendor.distlib.wheel._get_glibc_version
    - platform.libc_ver
    - re.match
    - suffix.split
    - suffix.startswith
    - <builtin>.str
    - arch.replace
    - <builtin>.enumerate
    - <builtin>.set
    - <builtin>.tuple
    - imp.get_suffixes
    - abis.sort
    - versions.append
    - <builtin>.len
    - s.isdigit
    - matches.append
    - abis.insert
    - <builtin>.int
    - m.groups
    - pip._vendor.distlib.wheel._get_suffixes
    - sys.platform.startswith
    - abis.append
    - result.append
    - <builtin>.range
    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: suffix.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: suffix.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abis.sort
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: arch.replace
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30f3e7ba90>
    argNames:
    - wheel
    - tags
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1089
    functionName: pip._vendor.distlib.wheel.is_compatible
    functionSourceFile: pip._vendor.distlib.wheel
    functionUses: 8
    functionsReached:
    - <builtin>.isinstance
    - m.groupdict
    - os.getcwd
    - FILENAME_RE.match
    - os.path.abspath
    - os.path.split
    - NAME_VERSION_RE.match
    - pip._vendor.distlib.wheel.Wheel.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: pip._vendor.distlib.locators
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - queue.Queue
    - dummy_threading.RLock
    - pip._vendor.distlib.util.ensure_slash
    - urlparse.urljoin.endswith
    - threading.RLock
    - <builtin>.set
    - pip._vendor.distlib.locators.AggregatingLocator.__init__
    - logging.getLogger
    - pip._vendor.distlib.locators.SimpleScrapingLocator.__init__
    - re.compile
    - urllib.parse.urljoin.endswith
    - kwargs.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f30df3413d0>
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 42
    functionName: pip._vendor.distlib.locators.get_all_distribution_names
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.util.ServerProxy.__init__
    - xmlrpc.client.ServerProxy.__init__
    - xmlrpclib.Transport.__init__
    - kwargs.get
    - xmlrpc.client.Transport.__init__
    - xmlrpc.client.SafeTransport.__init__
    - urlparse.urlparse
    - xmlrpclib.ServerProxy.list_packages
    - xmlrpclib.SafeTransport.__init__
    - pip._vendor.distlib.util.Transport.__init__
    - pip._vendor.distlib.util.SafeTransport.__init__
    - xmlrpclib.ServerProxy.__init__
    - urllib.parse.urlparse
    - kwargs.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xmlrpclib.ServerProxy.list_packages
    functionSourceFile: xmlrpclib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - req
    - fp
    - code
    - msg
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: pip._vendor.distlib.locators.RedirectHandler.http_error_302
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - headers.replace_header
    - urlparse.urljoin
    - urlparse.urlparse
    - urllib.parse.urljoin
    - urllib2.HTTPRedirectHandler.http_error_302
    - urllib.request.HTTPRedirectHandler.http_error_302
    - urllib.parse.urlparse
    - req.get_full_url
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req.get_full_url
    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: headers.replace_header
    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: urllib2.HTTPRedirectHandler.http_error_302
    functionSourceFile: urllib2
    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: urllib.request.HTTPRedirectHandler.http_error_302
    functionSourceFile: urllib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e2e7d2b0>
    argNames:
    - self
    - scheme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 105
    functionName: pip._vendor.distlib.locators.Locator.__init__
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - queue.Queue
    - urllib2.build_opener
    - urllib.request.HTTPRedirectHandler.__init__
    - urllib.request.build_opener
    - pip._vendor.distlib.compat.HTTPRedirectHandler.__init__
    - urllib2.HTTPRedirectHandler.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.compat.HTTPRedirectHandler.__init__
    functionSourceFile: ''
    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: urllib.request.HTTPRedirectHandler.__init__
    functionSourceFile: ''
    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: urllib2.HTTPRedirectHandler.__init__
    functionSourceFile: ''
    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: queue.Queue
    functionSourceFile: queue
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 124
    functionName: pip._vendor.distlib.locators.Locator.get_errors
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 3
    functionsReached:
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 138
    functionName: pip._vendor.distlib.locators.Locator.clear_errors
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 2
    functionsReached:
    - pip._vendor.distlib.locators.Locator.get_errors
    - result.append
    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: 145
    functionName: pip._vendor.distlib.locators.Locator.clear_cache
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 148
    functionName: pip._vendor.distlib.locators.Locator._get_scheme
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 151
    functionName: pip._vendor.distlib.locators.Locator._set_scheme
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.locators.Locator
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.property
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 156
    functionName: pip._vendor.distlib.locators.Locator._get_project
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 168
    functionName: pip._vendor.distlib.locators.Locator.get_distribution_names
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 174
    functionName: pip._vendor.distlib.locators.Locator.get_project
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 1
    functionsReached:
    - pip._vendor.distlib.locators.AggregatingLocator._get_project
    - <builtin>.isinstance
    - pip._vendor.distlib.version._legacy_key.get_parts
    - t.join
    - logger.debug
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - pip._vendor.distlib.locators.SimpleScrapingLocator._get_project
    - t.start
    - result.pop
    - pip._vendor.distlib.locators.Locator._get_project
    - pip._vendor.distlib.version._legacy_key
    - result.update
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - dd.update
    - pip._vendor.distlib.version.LegacyVersion.parse
    - dummy_threading.Thread
    - _VERSION_PART.split
    - result.get
    - <builtin>.len
    - pip._vendor.distlib.locators.SimpleScrapingLocator._prepare_threads
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - threading.Thread
    - pip._vendor.distlib.locators.SimpleScrapingLocator._wait_threads
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - urlparse.urljoin
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - s.lower
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - urllib.parse.quote
    - pip._vendor.distlib.locators.Locator.get_errors
    - pip._vendor.distlib.locators.Locator.clear_errors
    - pip._vendor.distlib.version.Matcher.match
    - <builtin>.getattr
    - urllib.parse.urljoin
    - pip._vendor.distlib.version.Version.parse
    - files.items
    - result.append
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1001
    functionName: pip._vendor.distlib.locators.AggregatingLocator._get_project
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - result.update
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - dd.update
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - result.get
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Matcher.match
    - <builtin>.getattr
    - pip._vendor.distlib.version.Version.parse
    - files.items
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 7
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 653
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator._get_project
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 2
    functionsReached:
    - t.start
    - urlparse.urljoin
    - t.join
    - pip._vendor.distlib.locators.SimpleScrapingLocator._prepare_threads
    - logger.debug
    - urllib.parse.quote
    - urllib.parse.urljoin
    - threading.Thread
    - pip._vendor.distlib.locators.SimpleScrapingLocator._wait_threads
    - dummy_threading.Thread
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 191
    functionName: pip._vendor.distlib.locators.Locator.score_url
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - posixpath.basename
    - pip._vendor.distlib.wheel.is_compatible
    - m.groupdict
    - os.getcwd
    - urlparse.urlparse
    - FILENAME_RE.match
    - NAME_VERSION_RE.match
    - os.path.abspath
    - os.path.split
    - urllib.parse.urlparse
    - basename.endswith
    - pip._vendor.distlib.wheel.Wheel.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: basename.endswith
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url1
    - url2
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 206
    functionName: pip._vendor.distlib.locators.Locator.prefer_url
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 4
    functionsReached:
    - pip._vendor.distlib.locators.Locator.score_url
    - <builtin>.isinstance
    - pip._vendor.distlib.wheel.is_compatible
    - posixpath.basename
    - m.groupdict
    - os.getcwd
    - logger.debug
    - urlparse.urlparse
    - FILENAME_RE.match
    - NAME_VERSION_RE.match
    - os.path.abspath
    - os.path.split
    - urllib.parse.urlparse
    - basename.endswith
    - pip._vendor.distlib.wheel.Wheel.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - filename
    - project_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 228
    functionName: pip._vendor.distlib.locators.Locator.split_filename
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 5
    functionsReached:
    - pip._vendor.distlib.locators.Locator.split_filename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 6
    IfCount: 13
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - project_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 234
    functionName: pip._vendor.distlib.locators.Locator.convert_url_to_download_info
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.wheel.is_compatible
    - urlparse.urlparse
    - logger.debug
    - pip._vendor.distlib.util.normalize_name
    - pip._vendor.distlib.wheel.Wheel.__init__
    - path.endswith
    - urlparse.urlunparse
    - posixpath.basename
    - pip._vendor.distlib.locators.Locator.split_filename
    - pip._vendor.distlib.locators.Locator.convert_url_to_download_info.same_project
    - <builtin>.list
    - re.sub
    - urllib.parse.urlunparse
    - <builtin>.len
    - os.getcwd
    - frag.lower
    - os.path.abspath
    - HASHER_HASH.match
    - m.groups
    - m.groupdict
    - FILENAME_RE.match
    - os.path.split
    - urllib.parse.urlparse
    - logger.warning
    - NAME_VERSION_RE.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - name1
    - name2
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 242
    functionName: pip._vendor.distlib.locators.Locator.convert_url_to_download_info.same_project
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 5
    functionsReached:
    - pip._vendor.distlib.util.normalize_name
    - re.sub
    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: frag.lower
    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: HASHER_HASH.match
    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: urlparse.urlunparse
    functionSourceFile: urlparse
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 307
    functionName: pip._vendor.distlib.locators.Locator._get_digest
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - result
    - info
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 330
    functionName: pip._vendor.distlib.locators.Locator._update_version_data
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 3
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - pip._vendor.distlib.wheel.is_compatible
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - StringIO.StringIO
    - logger.isEnabledFor
    - posixpath.basename
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.database.Distribution.__init__
    - io.StringIO.read
    - pip._vendor.distlib.locators.Locator.prefer_url
    - os.getcwd
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - codecs.open
    - os.path.split
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - pip._vendor.distlib.locators.Locator._get_digest
    - fields.items
    - pip._vendor.distlib.locators.Locator.score_url
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.database.make_dist
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.version._pep_440_key
    - os.path.abspath
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - m.groupdict
    - _LINE_PREFIX_1_2.sub
    - f.read
    - kwargs.pop
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pattern.match
    - _VERSION_REPLACE.get
    - pip._vendor.distlib.wheel.Wheel.__init__
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - <builtin>.any
    - info.pop
    - v.split
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - <builtin>.open
    - FILENAME_RE.match
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - NAME_VERSION_RE.match
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - email.message_from_file
    - logger.debug
    - urlparse.urlparse
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - basename.endswith
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    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: info.pop
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 5
    IfCount: 10
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30df0a67c0>
    argNames:
    - self
    - requirement
    - prereleases
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 353
    functionName: pip._vendor.distlib.locators.Locator.locate
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.util.parse_marker.marker_var
    - t.start
    - pip._vendor.distlib.locators.Locator._get_project
    - result.update
    - <builtin>.tuple
    - s.strip
    - dd.update
    - clist.append
    - MARKER_OP.match
    - <builtin>.sorted
    - pip._vendor.distlib.locators.SimpleScrapingLocator._prepare_threads
    - p.isdigit
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - versions.get
    - urllib.parse.quote
    - COMPARE_OP.match
    - pip._vendor.distlib.version.Matcher.match
    - NON_SPACE.match
    - urllib.parse.urljoin
    - urllib.parse.urlparse
    - logger.warning
    - pip._vendor.distlib.locators.Locator.get_project
    - _SEMVER_RE.match
    - OR.match
    - types.SimpleNamespace
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - IDENTIFIER.match
    - pip._vendor.distlib.util.parse_requirement.get_versions
    - extras.append
    - result.get
    - pip._vendor.distlib.util.parse_marker
    - STRING_CHUNK.match
    - pip._vendor.distlib.version._pep_440_key
    - slist.append
    - pip._vendor.distlib.version.SemanticVersion.parse
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - pip._vendor.distlib.locators.Locator.get_errors
    - pip._vendor.distlib.locators.Locator.clear_errors
    - VERSION_IDENTIFIER.match
    - pip._vendor.distlib.util.parse_requirement
    - pip._vendor.distlib.util.parse_marker.marker
    - req.strip
    - <builtin>.range
    - pip._vendor.distlib.locators.AggregatingLocator._get_project
    - <builtin>.isinstance
    - remaining.find
    - t.join
    - _VERSION_REPLACE.get
    - pip._vendor.distlib.locators.SimpleScrapingLocator._get_project
    - result.pop
    - m.end
    - dummy_threading.Thread
    - versions.append
    - <builtin>.len
    - PEP440_VERSION_RE.match
    - threading.Thread
    - pip._vendor.distlib.locators.SimpleScrapingLocator._wait_threads
    - urlparse.urljoin
    - <builtin>.int
    - part.isdigit
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - AND.match
    - p.startswith
    - <builtin>.getattr
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - <builtin>.type
    - logger.debug
    - urlparse.urlparse
    - pip._vendor.distlib.util.parse_marker.marker_and
    - pip._vendor.distlib.version.is_semver
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.util.parse_marker.marker_expr
    - s.endswith
    - remaining.startswith
    - pip._vendor.distlib.version.get_scheme
    - files.items
    linkageType: pythonLinkage
    raised:
    - DistlibException
    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: slist.append
    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: versions.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 415
    functionName: pip._vendor.distlib.locators.PyPIRPCLocator.__init__
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - pip._vendor.distlib.util.ServerProxy.__init__
    - xmlrpc.client.ServerProxy.__init__
    - xmlrpclib.Transport.__init__
    - xmlrpc.client.Transport.__init__
    - xmlrpc.client.SafeTransport.__init__
    - kwargs.get
    - urlparse.urlparse
    - xmlrpclib.SafeTransport.__init__
    - pip._vendor.distlib.util.Transport.__init__
    - pip._vendor.distlib.util.SafeTransport.__init__
    - xmlrpclib.ServerProxy.__init__
    - urllib.parse.urlparse
    - kwargs.pop
    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: 426
    functionName: pip._vendor.distlib.locators.PyPIRPCLocator.get_distribution_names
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - xmlrpclib.ServerProxy.list_packages
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 432
    functionName: pip._vendor.distlib.locators.PyPIRPCLocator._get_project
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.database.Distribution.__init__
    - io.StringIO.read
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - codecs.open
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - pip._vendor.distlib.locators.Locator._get_digest
    - fields.items
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pattern.match
    - xmlrpclib.ServerProxy.release_data
    - _VERSION_REPLACE.get
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - <builtin>.any
    - v.split
    - <builtin>.len
    - email.message_from_file.get_payload
    - xmlrpclib.ServerProxy.package_releases
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - <builtin>.open
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - email.message_from_file
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - data.get
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - xmlrpclib.ServerProxy.release_urls
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    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: xmlrpclib.ServerProxy.package_releases
    functionSourceFile: xmlrpclib
    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: xmlrpclib.ServerProxy.release_urls
    functionSourceFile: xmlrpclib
    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: xmlrpclib.ServerProxy.release_data
    functionSourceFile: xmlrpclib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 464
    functionName: pip._vendor.distlib.locators.PyPIJSONLocator.__init__
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - urlparse.urljoin.endswith
    - urllib.parse.urljoin.endswith
    - pip._vendor.distlib.util.ensure_slash
    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: 468
    functionName: pip._vendor.distlib.locators.PyPIJSONLocator.get_distribution_names
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 6
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 474
    functionName: pip._vendor.distlib.locators.PyPIJSONLocator._get_project
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.database.Distribution.__init__
    - io.StringIO.read
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - urllib.parse.quote
    - codecs.open
    - urllib.parse.urljoin
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - pip._vendor.distlib.locators.Locator._get_digest
    - fields.items
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - _LINE_PREFIX_1_2.sub
    - f.read
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - pip._vendor.distlib.locators.PyPIJSONLocator.opener.open
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pattern.match
    - _VERSION_REPLACE.get
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - <builtin>.any
    - v.split
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - urlparse.urljoin
    - <builtin>.int
    - part.isdigit
    - resp.read
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - <builtin>.open
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - email.message_from_file
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - logger.debug
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - json.loads
    - odist.download_urls.add
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - logger.exception
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - data.get
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - dist.download_urls.add
    - other.keys
    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: pip._vendor.distlib.locators.PyPIJSONLocator.opener.open
    functionSourceFile: pip
    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: resp.read
    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: dist.download_urls.add
    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: odist.download_urls.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.locators.Page
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.util.cached_property
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - data
    - url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 544
    functionName: pip._vendor.distlib.locators.Page.__init__
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 3
    functionsReached:
    - m.group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 558
    functionName: pip._vendor.distlib.locators.Page.links
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - urlparse.urljoin
    - match.groupdict
    - <builtin>.sorted
    - HTMLParser.HTMLParser.unescape
    - <builtin>.set
    - result.add
    - urllib.parse.urljoin
    - html.unescape
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 564
    functionName: pip._vendor.distlib.locators.Page.links.clean
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - urlparse.urlunparse
    - urllib.parse.urlunparse
    - urllib.parse.quote
    - urlparse.urlparse
    - urllib.parse.urlparse
    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: html.unescape
    functionSourceFile: html
    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: HTMLParser.HTMLParser.unescape
    functionSourceFile: HTMLParser
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.locators.Page.links.<lambda1>
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - m.group
    - <builtin>.ord
    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: pip._vendor.distlib.locators.Page.links.<lambda2>
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator.<dict1>.<lambda1>
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator.<lambda1>
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - io.BytesIO
    - gzip.GzipFile
    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: gzip.GzipFile
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator.<dict1>.<lambda2>
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f1d1b5e0>
    - <ast.Constant object at 0x7f30f1d1b5b0>
    argNames:
    - self
    - url
    - timeout
    - num_workers
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 600
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator.__init__
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - queue.Queue
    - dummy_threading.RLock
    - pip._vendor.distlib.util.ensure_slash
    - urlparse.urljoin.endswith
    - threading.RLock
    - <builtin>.set
    - urllib.parse.urljoin.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 627
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator._prepare_threads
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 3
    functionsReached:
    - threading.Thread
    - <builtin>.range
    - dummy_threading.Thread
    - t.start
    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: t.start
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 640
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator._wait_threads
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 3
    functionsReached:
    - t.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: t.join
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 674
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator._is_platform_dependent
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 680
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator._process_download
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 1
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - pip._vendor.distlib.wheel.is_compatible
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - StringIO.StringIO
    - logger.isEnabledFor
    - posixpath.basename
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.locators.Locator.convert_url_to_download_info.same_project
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.database.Distribution.__init__
    - re.sub
    - io.StringIO.read
    - pip._vendor.distlib.locators.Locator.prefer_url
    - os.getcwd
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.locators.Locator._update_version_data
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - pip._vendor.distlib.locators.Locator.convert_url_to_download_info
    - codecs.open
    - os.path.split
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - pip._vendor.distlib.locators.Locator._get_digest
    - fields.items
    - pip._vendor.distlib.locators.Locator.score_url
    - urlparse.urlunparse
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - pip._vendor.distlib.version._legacy_key
    - io.StringIO
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.database.make_dist
    - pip._vendor.distlib.locators.SimpleScrapingLocator._is_platform_dependent
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - urllib.parse.urlunparse
    - pip._vendor.distlib.version._pep_440_key
    - os.path.abspath
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - m.groupdict
    - _LINE_PREFIX_1_2.sub
    - f.read
    - kwargs.pop
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pip._vendor.distlib.util.normalize_name
    - pattern.match
    - _VERSION_REPLACE.get
    - pip._vendor.distlib.wheel.Wheel.__init__
    - path.endswith
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - <builtin>.list
    - <builtin>.any
    - pip._vendor.distlib.metadata.Metadata.__init__
    - info.pop
    - v.split
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - frag.lower
    - HASHER_HASH.match
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - <builtin>.open
    - FILENAME_RE.match
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - NAME_VERSION_RE.match
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - email.message_from_file
    - logger.debug
    - urlparse.urlparse
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - basename.endswith
    - json.loads
    - pip._vendor.distlib.locators.Locator.split_filename
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - link
    - referrer
    - rel
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 700
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator._should_queue
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 1
    functionsReached:
    - host.lower
    - urlparse.urlparse
    - netloc.split
    - logger.debug
    - link.startswith
    - urllib.parse.urlparse
    - referrer.startswith
    - pip._vendor.distlib.locators.SimpleScrapingLocator._is_platform_dependent
    - path.endswith
    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: referrer.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 729
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator._fetch
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - pip._vendor.distlib.wheel.is_compatible
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - link.startswith
    - possible_versions.remove
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.util.ensure_slash
    - posixpath.basename
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - netloc.split
    - pip._vendor.distlib.locators.Locator.convert_url_to_download_info.same_project
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - referrer.startswith
    - pip._vendor.distlib.database.Distribution.__init__
    - re.sub
    - CHARSET.search
    - io.StringIO.read
    - urlparse.urljoin.endswith
    - pip._vendor.distlib.locators.Locator.prefer_url
    - os.getcwd
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.locators.Locator._update_version_data
    - host.lower
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - pip._vendor.distlib.locators.Locator.convert_url_to_download_info
    - urllib.parse.urljoin
    - urllib.parse.urljoin.endswith
    - codecs.open
    - os.path.split
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - pip._vendor.distlib.locators.SimpleScrapingLocator.opener.open
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - pip._vendor.distlib.locators.Locator._get_digest
    - fields.items
    - pip._vendor.distlib.locators.Locator.score_url
    - urlparse.urlunparse
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - pip._vendor.distlib.version._legacy_key
    - io.StringIO
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.database.make_dist
    - pip._vendor.distlib.locators.SimpleScrapingLocator._is_platform_dependent
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - urllib.parse.urlunparse
    - HTML_CONTENT_TYPE.match
    - os.path.isdir
    - pip._vendor.distlib.version._pep_440_key
    - os.path.abspath
    - urllib.request.Request
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - resp.geturl
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - m.groupdict
    - _LINE_PREFIX_1_2.sub
    - f.read
    - kwargs.pop
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - pip._vendor.distlib.locators.SimpleScrapingLocator._should_queue
    - missing.append
    - pip._vendor.distlib.util.normalize_name
    - pattern.match
    - _VERSION_REPLACE.get
    - pip._vendor.distlib.wheel.Wheel.__init__
    - path.endswith
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.locators.Page.__init__
    - <builtin>.list
    - pip._vendor.distlib.metadata.Metadata.__init__
    - v.split
    - info.pop
    - <builtin>.any
    - <builtin>.len
    - headers.get
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - frag.lower
    - HASHER_HASH.match
    - fp.close
    - urlparse.urljoin
    - <builtin>.int
    - part.isdigit
    - resp.read
    - m.groups
    - urllib.request.url2pathname
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - <builtin>.open
    - FILENAME_RE.match
    - urllib2.Request
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - NAME_VERSION_RE.match
    - email.message_from_file
    - logger.debug
    - urlparse.urlparse
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - basename.endswith
    - json.loads
    - pip._vendor.distlib.locators.Locator.split_filename
    - m.group
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.locators.SimpleScrapingLocator._process_download
    - logger.exception
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - urllib.url2pathname
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - resp.info
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.locators.SimpleScrapingLocator.get_page
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 9
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 762
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator.get_page
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 2
    functionsReached:
    - pip._vendor.distlib.locators.SimpleScrapingLocator.opener.open
    - urlparse.urlparse
    - logger.debug
    - pip._vendor.distlib.util.ensure_slash
    - data.decode
    - netloc.split
    - m.group
    - pip._vendor.distlib.locators.Page.__init__
    - logger.exception
    - CHARSET.search
    - urllib.url2pathname
    - urlparse.urljoin.endswith
    - resp.info
    - headers.get
    - HTML_CONTENT_TYPE.match
    - os.path.isdir
    - urllib.request.Request
    - resp.geturl
    - urlparse.urljoin
    - resp.read
    - urllib.request.url2pathname
    - urllib2.Request
    - urllib.parse.urljoin
    - urllib.parse.urljoin.endswith
    - urllib.parse.urlparse
    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.url2pathname
    functionSourceFile: urllib
    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: pip._vendor.distlib.locators.SimpleScrapingLocator.opener.open
    functionSourceFile: pip
    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: resp.info
    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: HTML_CONTENT_TYPE.match
    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: resp.geturl
    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: CHARSET.search
    functionSourceFile: <builtin>
    functionUses: 3
    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: 3
    functionLinenumber: 823
    functionName: pip._vendor.distlib.locators.SimpleScrapingLocator.get_distribution_names
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.locators.SimpleScrapingLocator.opener.open
    - urlparse.urlparse
    - logger.debug
    - pip._vendor.distlib.util.ensure_slash
    - data.decode
    - <builtin>.set
    - netloc.split
    - m.group
    - result.add
    - pip._vendor.distlib.locators.Page.__init__
    - logger.exception
    - CHARSET.search
    - urllib.url2pathname
    - urlparse.urljoin.endswith
    - resp.info
    - headers.get
    - HTML_CONTENT_TYPE.match
    - os.path.isdir
    - urllib.request.Request
    - resp.geturl
    - urlparse.urljoin
    - resp.read
    - match.group
    - urllib.request.url2pathname
    - pip._vendor.distlib.locators.SimpleScrapingLocator.get_page
    - urllib2.Request
    - urllib.parse.urljoin
    - urllib.parse.urljoin.endswith
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 841
    functionName: pip._vendor.distlib.locators.DirectoryLocator.__init__
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - kwargs.pop
    - os.path.isdir
    - os.path.abspath
    linkageType: pythonLinkage
    raised:
    - DistlibException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - filename
    - parent
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 858
    functionName: pip._vendor.distlib.locators.DirectoryLocator.should_include
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 2
    functionsReached:
    - filename.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 866
    functionName: pip._vendor.distlib.locators.DirectoryLocator._get_project
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - pip._vendor.distlib.wheel.is_compatible
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - StringIO.StringIO
    - logger.isEnabledFor
    - posixpath.basename
    - pip._vendor.distlib.locators.DirectoryLocator.should_include
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - pip._vendor.distlib.locators.Locator.convert_url_to_download_info.same_project
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - filename.endswith
    - pip._vendor.distlib.database.Distribution.__init__
    - re.sub
    - io.StringIO.read
    - pip._vendor.distlib.locators.Locator.prefer_url
    - os.getcwd
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.locators.Locator._update_version_data
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - pip._vendor.distlib.locators.Locator.convert_url_to_download_info
    - codecs.open
    - os.path.split
    - urllib.parse.urlparse
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - pip._vendor.distlib.locators.Locator._get_digest
    - fields.items
    - pip._vendor.distlib.locators.Locator.score_url
    - urlparse.urlunparse
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - io.StringIO
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - os.path.join
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.database.make_dist
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - urllib.parse.urlunparse
    - pip._vendor.distlib.version._pep_440_key
    - os.path.abspath
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - m.groupdict
    - _LINE_PREFIX_1_2.sub
    - f.read
    - kwargs.pop
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pip._vendor.distlib.util.normalize_name
    - pattern.match
    - _VERSION_REPLACE.get
    - pip._vendor.distlib.wheel.Wheel.__init__
    - path.endswith
    - os.walk
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - urllib.pathname2url
    - <builtin>.list
    - pip._vendor.distlib.metadata.Metadata.__init__
    - <builtin>.any
    - info.pop
    - v.split
    - <builtin>.len
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - frag.lower
    - HASHER_HASH.match
    - urllib.request.pathname2url
    - fp.close
    - <builtin>.int
    - part.isdigit
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - <builtin>.open
    - FILENAME_RE.match
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - NAME_VERSION_RE.match
    - email.message_from_file
    - logger.debug
    - urlparse.urlparse
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - basename.endswith
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.locators.Locator.split_filename
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    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.pathname2url
    functionSourceFile: urllib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 882
    functionName: pip._vendor.distlib.locators.DirectoryLocator.get_distribution_names
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.wheel.is_compatible
    - urlparse.urlparse
    - logger.debug
    - pip._vendor.distlib.util.normalize_name
    - pip._vendor.distlib.wheel.Wheel.__init__
    - path.endswith
    - os.walk
    - urlparse.urlunparse
    - posixpath.basename
    - pip._vendor.distlib.locators.DirectoryLocator.should_include
    - <builtin>.set
    - pip._vendor.distlib.locators.Locator.split_filename
    - pip._vendor.distlib.locators.Locator.convert_url_to_download_info.same_project
    - result.add
    - os.path.join
    - urllib.pathname2url
    - <builtin>.list
    - filename.endswith
    - re.sub
    - urllib.parse.urlunparse
    - <builtin>.len
    - os.getcwd
    - frag.lower
    - os.path.abspath
    - HASHER_HASH.match
    - urllib.request.pathname2url
    - m.groups
    - m.groupdict
    - pip._vendor.distlib.locators.Locator.convert_url_to_download_info
    - FILENAME_RE.match
    - os.path.split
    - urllib.parse.urlparse
    - logger.warning
    - NAME_VERSION_RE.match
    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: 909
    functionName: pip._vendor.distlib.locators.JSONLocator.get_distribution_names
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 915
    functionName: pip._vendor.distlib.locators.JSONLocator._get_project
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - name.replace
    - pip._vendor.distlib.metadata.LegacyMetadata.update
    - value.split
    - pip._vendor.distlib.version._legacy_key.get_parts
    - possible_versions.remove
    - ct.startswith
    - StringIO.StringIO
    - logger.isEnabledFor
    - pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version
    - <builtin>.tuple
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.VersionScheme.is_valid_matcher
    - pip._vendor.distlib.database.Distribution.__init__
    - pip._vendor.distlib.util._get_external_data
    - io.StringIO.read
    - urllib.request.urlopen.info
    - pip._vendor.distlib.metadata.Metadata._validate_mapping
    - p.isdigit
    - urllib2.urlopen
    - pip._vendor.distlib.metadata._best_version._has_marker
    - pip._vendor.distlib.version._semantic_key
    - p.zfill
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - urllib.request.urlopen
    - urllib.parse.urljoin
    - codecs.open
    - logger.warning
    - <builtin>.hasattr
    - v.strip
    - pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list
    - _ATTR2FIELD.get
    - res.append
    - _SEMVER_RE.match
    - fields.items
    - pip._vendor.distlib.metadata.LegacyMetadata.__init__
    - pip._vendor.distlib.version._legacy_key
    - io.StringIO
    - parts.append
    - pip._vendor.distlib.metadata.LegacyMetadata.check
    - pip._vendor.distlib.database.make_dist
    - pip._vendor.distlib.metadata.LegacyMetadata._convert_name
    - info.get
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - warnings.append
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - _LINE_PREFIX_1_2.sub
    - f.read
    - kwargs.pop
    - pip._vendor.distlib.util.get_project_data
    - pip._vendor.distlib.metadata.LegacyMetadata.read
    - <builtin>.isinstance
    - pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix
    - codecs.getreader
    - pip._vendor.distlib.metadata.LegacyMetadata.set
    - mapping.items
    - missing.append
    - pattern.match
    - _VERSION_REPLACE.get
    - result.pop
    - _LINE_PREFIX_PRE_1_2.sub
    - data.decode
    - pip._vendor.distlib.version.VersionScheme.is_valid_version
    - pip._vendor.distlib.metadata.Metadata.__init__
    - v.split
    - <builtin>.any
    - <builtin>.len
    - headers.get
    - email.message_from_file.get_payload
    - mapping.get
    - PEP440_VERSION_RE.match
    - fp.close
    - urlparse.urljoin
    - <builtin>.int
    - part.isdigit
    - m.groups
    - p.startswith
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - <builtin>.open
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - pip._vendor.distlib.metadata.LegacyMetadata.read_file
    - json.load
    - email.message_from_file
    - logger.debug
    - pip._vendor.distlib.metadata.Metadata._validate_value
    - pip._vendor.distlib.version.is_semver
    - pip._vendor.distlib.metadata.Metadata.validate
    - json.loads
    - <builtin>.set
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - logger.exception
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - pip._vendor.distlib.metadata.LegacyMetadata._default_value
    - pip._vendor.distlib.metadata.LegacyMetadata.update._set
    - email.message_from_file.get_all
    - data.get
    - s.endswith
    - pip._vendor.distlib.metadata._best_version
    - kwargs.items
    - pip._vendor.distlib.version.get_scheme
    - pip._vendor.distlib.metadata.LegacyMetadata.get
    - other.keys
    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: info.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - distpath
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 946
    functionName: pip._vendor.distlib.locators.DistPathLocator.__init__
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 956
    functionName: pip._vendor.distlib.locators.DistPathLocator._get_project
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - locators
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 973
    functionName: pip._vendor.distlib.locators.AggregatingLocator.__init__
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - kwargs.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 989
    functionName: pip._vendor.distlib.locators.AggregatingLocator.clear_cache
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 994
    functionName: pip._vendor.distlib.locators.AggregatingLocator._set_scheme
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.distlib.locators.AggregatingLocator
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.property
    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.get
    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: files.items
    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: dd.update
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1045
    functionName: pip._vendor.distlib.locators.AggregatingLocator.get_distribution_names
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e6ef7190>
    argNames:
    - self
    - locator
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1074
    functionName: pip._vendor.distlib.locators.DependencyFinder.__init__
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - pip._vendor.distlib.version.get_scheme
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1082
    functionName: pip._vendor.distlib.locators.DependencyFinder.add_distribution
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 2
    functionsReached:
    - pip._vendor.distlib.util.parse_name_and_version
    - m.groupdict
    - logger.debug
    - <builtin>.set
    - NAME_VERSION_RE.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - dist
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1097
    functionName: pip._vendor.distlib.locators.DependencyFinder.remove_distribution
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 2
    functionsReached:
    - pip._vendor.distlib.util.parse_name_and_version
    - m.groupdict
    - logger.debug
    - s.remove
    - NAME_VERSION_RE.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.remove
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - reqt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1115
    functionName: pip._vendor.distlib.locators.DependencyFinder.get_matcher
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - reqt.split
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - pip._vendor.distlib.version.Version.parse
    - result.append
    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: reqt.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - reqt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1131
    functionName: pip._vendor.distlib.locators.DependencyFinder.find_providers
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.version._legacy_key.get_parts
    - _SEMVER_RE.match
    - reqt.split
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - result.pop
    - <builtin>.set
    - pip._vendor.distlib.version._legacy_key
    - result.add
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.locators.DependencyFinder.get_matcher
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version._semantic_key
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - pip._vendor.distlib.version.Matcher.match
    - <builtin>.getattr
    - pip._vendor.distlib.version.Version.parse
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - provider
    - other
    - problems
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1155
    functionName: pip._vendor.distlib.locators.DependencyFinder.try_to_replace
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.distlib.util.parse_name_and_version
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.locators.DependencyFinder.remove_distribution
    - <builtin>.frozenset
    - logger.debug
    - reqt.split
    - problems.add
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - _VERSION_REPLACE.get
    - pip._vendor.distlib.locators.DependencyFinder.add_distribution
    - result.pop
    - unmatched.add
    - <builtin>.set
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - local.split
    - s.strip
    - clist.append
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - <builtin>.len
    - p.isdigit
    - s.remove
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.locators.DependencyFinder.get_matcher
    - pip._vendor.distlib.version.Version.__init__
    - s.lower
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - pip._vendor.distlib.version._semantic_key
    - m.groupdict
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - pip._vendor.distlib.version.Matcher.match
    - <builtin>.getattr
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - NAME_VERSION_RE.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unmatched.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: problems.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 17
    IfCount: 15
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f30eb2406d0>
    - <ast.Constant object at 0x7f30eb240700>
    argNames:
    - self
    - requirement
    - meta_extras
    - prereleases
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1195
    functionName: pip._vendor.distlib.locators.DependencyFinder.find
    functionSourceFile: pip._vendor.distlib.locators
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - providers.add
    - pip._vendor.distlib.locators.DependencyFinder.try_to_replace
    - pip._vendor.distlib.util.parse_name_and_version
    - pip._vendor.distlib.version._legacy_key.get_parts
    - pip._vendor.distlib.locators.DependencyFinder.remove_distribution
    - logger.debug
    - <builtin>.frozenset
    - reqt.split
    - problems.add
    - _SEMVER_RE.match
    - pip._vendor.distlib.version.is_semver
    - todo.add
    - _VERSION_REPLACE.get
    - pip._vendor.distlib.locators.DependencyFinder.find_providers
    - pip._vendor.distlib.locators.DependencyFinder.add_distribution
    - result.pop
    - unmatched.add
    - <builtin>.set
    - pip._vendor.distlib.version._legacy_key
    - parts.append
    - result.add
    - <builtin>.tuple
    - pip._vendor.distlib.version._semantic_key.make_tuple
    - s.strip
    - local.split
    - clist.append
    - pip._vendor.distlib.version.LegacyVersion.parse
    - _VERSION_PART.split
    - meta_extras.remove
    - <builtin>.len
    - install_dists.add
    - p.isdigit
    - s.remove
    - PEP440_VERSION_RE.match
    - pip._vendor.distlib.version._pep_440_key
    - pip._vendor.distlib.version.SemanticVersion.parse
    - s.endswith
    - pip._vendor.distlib.locators.DependencyFinder.get_matcher
    - pip._vendor.distlib.version.Version.__init__
    - pip._vendor.distlib.version._semantic_key
    - <builtin>.int
    - p.zfill
    - part.isdigit
    - s.lower
    - m.groupdict
    - pip._vendor.distlib.version.NormalizedVersion.parse
    - m.groups
    - pip._vendor.distlib.version.Matcher.__init__
    - pip._vendor.distlib.version.Matcher.parse_requirement
    - p.startswith
    - todo.pop
    - pip._vendor.distlib.version.Matcher.match
    - <builtin>.getattr
    - pip._vendor.distlib.version.Version.parse
    - result.append
    - NAME_VERSION_RE.match
    linkageType: pythonLinkage
    raised:
    - DistlibException
    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: meta_extras.remove
    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: todo.add
    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: providers.add
    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: install_dists.add
    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: pip._vendor.pyproject_hooks._compat
    functionSourceFile: pip._vendor.pyproject_hooks._compat
    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: 3
    functionLinenumber: -1
    functionName: pip._vendor.pyproject_hooks._in_process._in_process
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached:
    - json.load
    - pip._vendor.pyproject_hooks._in_process._in_process.main
    - pip._vendor.pyproject_hooks._in_process._in_process.read_json
    - sys.exit
    - <builtin>.len
    - <builtin>.open
    - pip._vendor.pyproject_hooks._in_process._in_process.write_json
    - os.path.join
    - json.dump
    - <builtin>.globals
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - obj
    - path
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 30
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.write_json
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 2
    functionsReached:
    - <builtin>.open
    - json.dump
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.read_json
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 2
    functionsReached:
    - json.load
    - <builtin>.open
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - traceback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.BackendUnavailable.__init__
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 48
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.BackendInvalid.__init__
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30eea1aa30>
    argNames:
    - self
    - hook_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.HookMissing.__init__
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - filename
    - directory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.contained_in
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 10
    functionsReached:
    - os.path.abspath
    - os.path.normcase
    - os.path.commonprefix
    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: 2
    functionLinenumber: 66
    functionName: pip._vendor.pyproject_hooks._in_process._in_process._build_backend
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 9
    functionsReached:
    - <builtin>.any
    - importlib.import_module
    - backend_path.split
    - obj_path.split
    - ep.partition
    - os.path.normcase
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._in_process._in_process.contained_in
    - os.path.abspath
    - os.environ.get
    - os.path.commonprefix
    linkageType: pythonLinkage
    raised:
    - BackendUnavailable
    - BackendInvalid
    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: backend_path.split
    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: ep.partition
    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: obj_path.split
    functionSourceFile: <builtin>
    functionUses: 10
    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: 3
    functionLinenumber: 94
    functionName: pip._vendor.pyproject_hooks._in_process._in_process._supported_features
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached:
    - <builtin>.any
    - importlib.import_module
    - backend_path.split
    - obj_path.split
    - pip._vendor.pyproject_hooks._in_process._in_process._build_backend
    - ep.partition
    - features.append
    - os.path.normcase
    - <builtin>.getattr
    - os.path.commonprefix
    - pip._vendor.pyproject_hooks._in_process._in_process.contained_in
    - os.path.abspath
    - os.environ.get
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: features.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - config_settings
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 107
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.get_requires_for_build_wheel
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached:
    - <builtin>.any
    - importlib.import_module
    - backend_path.split
    - obj_path.split
    - pip._vendor.pyproject_hooks._in_process._in_process._build_backend
    - ep.partition
    - os.path.normcase
    - <builtin>.getattr
    - importlib.import_module.get_requires_for_build_wheel
    - pip._vendor.pyproject_hooks._in_process._in_process.contained_in
    - os.path.abspath
    - os.environ.get
    - os.path.commonprefix
    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: importlib.import_module.get_requires_for_build_wheel
    functionSourceFile: importlib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - config_settings
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 121
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.get_requires_for_build_editable
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached:
    - <builtin>.any
    - importlib.import_module
    - importlib.import_module.get_requires_for_build_editable
    - backend_path.split
    - obj_path.split
    - pip._vendor.pyproject_hooks._in_process._in_process._build_backend
    - ep.partition
    - os.path.normcase
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._in_process._in_process.contained_in
    - os.path.abspath
    - os.environ.get
    - os.path.commonprefix
    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: importlib.import_module.get_requires_for_build_editable
    functionSourceFile: importlib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - metadata_directory
    - config_settings
    - _allow_fallback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 135
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.prepare_metadata_for_build_wheel
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached:
    - backend_path.split
    - res.append
    - re.match
    - os.environ.get
    - obj_path.split
    - os.path.join
    - pip._vendor.pyproject_hooks._in_process._in_process.contained_in
    - zipf.extractall
    - pip._vendor.pyproject_hooks._in_process._in_process._dist_info_files
    - <builtin>.any
    - pip._vendor.pyproject_hooks._in_process._in_process._get_wheel_metadata_from_wheel
    - zipfile.ZipFile
    - ep.partition
    - os.path.abspath
    - whl_zip.namelist
    - os.path.commonprefix
    - importlib.import_module.prepare_metadata_for_build_wheel
    - importlib.import_module
    - os.path.normcase
    - pip._vendor.pyproject_hooks._in_process._in_process._build_backend
    - importlib.import_module.build_wheel
    - <builtin>.open
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - HookMissing
    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: importlib.import_module.prepare_metadata_for_build_wheel
    functionSourceFile: importlib
    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: importlib.import_module.build_wheel
    functionSourceFile: importlib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - whl_basename
    - metadata_directory
    - config_settings
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 199
    functionName: pip._vendor.pyproject_hooks._in_process._in_process._get_wheel_metadata_from_wheel
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 2
    functionsReached:
    - pip._vendor.pyproject_hooks._in_process._in_process._dist_info_files
    - zipfile.ZipFile
    - res.append
    - <builtin>.open
    - os.path.join
    - zipf.extractall
    - re.match
    - whl_zip.namelist
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - metadata_directory
    - config_settings
    - _allow_fallback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 157
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.prepare_metadata_for_build_editable
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached:
    - backend_path.split
    - res.append
    - re.match
    - importlib.import_module.prepare_metadata_for_build_editable
    - os.environ.get
    - obj_path.split
    - os.path.join
    - pip._vendor.pyproject_hooks._in_process._in_process.contained_in
    - zipf.extractall
    - pip._vendor.pyproject_hooks._in_process._in_process._dist_info_files
    - <builtin>.any
    - importlib.import_module.build_editable
    - pip._vendor.pyproject_hooks._in_process._in_process._get_wheel_metadata_from_wheel
    - zipfile.ZipFile
    - ep.partition
    - os.path.abspath
    - whl_zip.namelist
    - os.path.commonprefix
    - importlib.import_module
    - os.path.normcase
    - pip._vendor.pyproject_hooks._in_process._in_process._build_backend
    - <builtin>.open
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - HookMissing
    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: importlib.import_module.build_editable
    functionSourceFile: importlib
    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: importlib.import_module.prepare_metadata_for_build_editable
    functionSourceFile: importlib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - whl_zip
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 187
    functionName: pip._vendor.pyproject_hooks._in_process._in_process._dist_info_files
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 3
    functionsReached:
    - re.match
    - whl_zip.namelist
    - res.append
    linkageType: pythonLinkage
    raised:
    - Exception
    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: whl_zip.namelist
    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: zipf.extractall
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - metadata_directory
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 217
    functionName: pip._vendor.pyproject_hooks._in_process._in_process._find_already_built_wheel
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 2
    functionsReached:
    - glob.glob
    - os.path.isfile
    - <builtin>.len
    - os.path.dirname
    - <builtin>.print
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30fa5b5c10>
    argNames:
    - wheel_directory
    - config_settings
    - metadata_directory
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 239
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.build_wheel
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached:
    - backend_path.split
    - shutil.copy2
    - pip._vendor.pyproject_hooks._in_process._in_process._find_already_built_wheel
    - os.environ.get
    - obj_path.split
    - os.path.join
    - pip._vendor.pyproject_hooks._in_process._in_process.contained_in
    - <builtin>.any
    - glob.glob
    - ep.partition
    - os.path.isfile
    - <builtin>.len
    - os.path.abspath
    - os.path.commonprefix
    - importlib.import_module
    - os.path.basename
    - os.path.normcase
    - importlib.import_module.build_wheel
    - pip._vendor.pyproject_hooks._in_process._in_process._build_backend
    - os.path.dirname
    - <builtin>.print
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shutil.copy2
    functionSourceFile: shutil
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f86ca0a0>
    argNames:
    - wheel_directory
    - config_settings
    - metadata_directory
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 255
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.build_editable
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached:
    - backend_path.split
    - shutil.copy2
    - pip._vendor.pyproject_hooks._in_process._in_process._find_already_built_wheel
    - os.environ.get
    - obj_path.split
    - os.path.join
    - pip._vendor.pyproject_hooks._in_process._in_process.contained_in
    - <builtin>.any
    - glob.glob
    - importlib.import_module.build_editable
    - ep.partition
    - os.path.isfile
    - <builtin>.len
    - os.path.abspath
    - os.path.commonprefix
    - importlib.import_module
    - os.path.basename
    - os.path.normcase
    - pip._vendor.pyproject_hooks._in_process._in_process._build_backend
    - os.path.dirname
    - <builtin>.print
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - HookMissing
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - config_settings
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 276
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.get_requires_for_build_sdist
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached:
    - <builtin>.any
    - importlib.import_module
    - backend_path.split
    - obj_path.split
    - pip._vendor.pyproject_hooks._in_process._in_process._build_backend
    - ep.partition
    - os.path.normcase
    - importlib.import_module.get_requires_for_build_sdist
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._in_process._in_process.contained_in
    - os.path.abspath
    - os.environ.get
    - os.path.commonprefix
    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: importlib.import_module.get_requires_for_build_sdist
    functionSourceFile: importlib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - traceback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 296
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.GotUnsupportedOperation.__init__
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    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:
    - sdist_directory
    - config_settings
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 300
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.build_sdist
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 0
    functionsReached:
    - <builtin>.any
    - importlib.import_module
    - importlib.import_module.build_sdist
    - backend_path.split
    - obj_path.split
    - pip._vendor.pyproject_hooks._in_process._in_process._build_backend
    - os.path.normcase
    - ep.partition
    - <builtin>.getattr
    - pip._vendor.pyproject_hooks._in_process._in_process.contained_in
    - os.path.abspath
    - os.environ.get
    - os.path.commonprefix
    linkageType: pythonLinkage
    raised:
    - GotUnsupportedOperation
    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: importlib.import_module.build_sdist
    functionSourceFile: importlib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 322
    functionName: pip._vendor.pyproject_hooks._in_process._in_process.main
    functionSourceFile: pip._vendor.pyproject_hooks._in_process._in_process
    functionUses: 1
    functionsReached:
    - json.load
    - pip._vendor.pyproject_hooks._in_process._in_process.read_json
    - sys.exit
    - <builtin>.len
    - <builtin>.open
    - pip._vendor.pyproject_hooks._in_process._in_process.write_json
    - os.path.join
    - json.dump
    - <builtin>.globals
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: -1
    functionName: pip._vendor.pygments.__main__
    functionSourceFile: pip._vendor.pygments.__main__
    functionUses: 0
    functionsReached:
    - attrs.append
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - <builtin>.dict
    - traceback.format_exception
    - parser.parse_args
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.pygments.lexers.find_lexer_class_for_filename
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - io.TextIOWrapper.fileno
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - sys.stdin.buffer.read
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.reset_string
    - sys.stdout.buffer.flush
    - sys.stdout.buffer.isatty
    - _alias.lower
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - enc.get
    - sys.stderr.isatty
    - pip._vendor.pygments.util.get_choice_opt
    - o_key.strip
    - <builtin>.exec
    - sys.stderr.close
    - pip._vendor.pygments.util.docstring_headline
    - operation.add_mutually_exclusive_group
    - coding_sm.get_coding_state_machine
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.pygments.modeline.get_filetype_from_line
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - io.StringIO
    - pip._vendor.pygments.formatters._fn_matches
    - prober.get_confidence
    - pip._vendor.pygments.cmdline._print_list_as_json
    - f_str.split
    - o_str.strip
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - f.read
    - <builtin>.max
    - sys.exc_info
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.__init__
    - <builtin>.isinstance
    - <builtin>.__import__
    - pip._vendor.pygments.format
    - pip._vendor.pygments.plugin.find_plugin_formatters
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._color_tuple
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - sys.stdin.buffer.readline
    - io.TextIOWrapper.__init__
    - max_prober.get_confidence
    - pip._vendor.pygments.formatters.load_formatter_from_file
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.true_color_string
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - sys.stdout.flush
    - importlib.metadata.entry_points.get
    - <builtin>.open
    - obj.__doc__.strip
    - sys.stdout.buffer.close
    - LEXERS.values
    - pip._vendor.colorama.win32.<lambda2>
    - matches.sort
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.escape
    - pip._vendor.pygments.lexer.Lexer.get_tokens_unprocessed
    - pip._vendor.pygments.formatters.find_formatter_class
    - pip._vendor.pygments.styles.get_style_by_name
    - m.group
    - <builtin>.vars
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._build_color_table
    - pip._vendor.pygments.lexers.get_all_lexers
    - charset_name.lower
    - pip._vendor.pygments.styles.get_all_styles
    - prober.feed
    - pip._vendor.pygments.lexer.do_insertions
    - pip._vendor.pygments.formatters.get_formatter_for_filename
    - infp.read
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._write_lineno
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format
    - abc.ABC.title
    - <builtin>.str
    - pip._vendor.pygments.formatters.get_formatter_by_name
    - special_modes_group.add_argument
    - locale.getpreferredencoding
    - pip._vendor.pygments.plugin.find_plugin_styles
    - lexername.rsplit
    - pip._vendor.pygments.lexers.special.TextLexer.add_filter
    - pip._vendor.pygments.lexer.Lexer.add_filter
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - <builtin>.sorted
    - pip._vendor.pygments.cmdline._parse_filters
    - sys.stderr.flush
    - pip._vendor.chardet.detect
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    - coding_sm.reset
    - pip._vendor.pygments.console.ansiformat
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - textwrap.dedent
    - special_modes.add_argument
    - pip._vendor.pygments.filter.apply_filters._apply
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed
    - text.partition
    - pip._vendor.chardet.universaldetector.UniversalDetector.close
    - text.endswith
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._setup_styles
    - <builtin>.iter
    - pip._vendor.pygments.filters.get_filter_by_name
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._write_lineno
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format
    - FORMATTERS.values
    - <builtin>.issubclass
    - <builtin>.bool
    - o_arg.strip
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - value.splitlines
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - line.rstrip
    - options.get
    - buf.splitlines
    - arg.rstrip
    - p_opt.split
    - text.strip
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._build_color_table
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._closest_color
    - <builtin>.any
    - sys.stdout.isatty
    - pip._vendor.colorama.win32.SetConsoleMode
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.pygments.highlight
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - pip._vendor.pygments.cmdline.main_inner
    - <builtin>.int
    - pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._filter_to
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._color_index
    - result.append
    - sys.stdout.buffer.fileno
    - ctypes.byref
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.get_win32_calls
    - re.compile
    - lexersel.add_argument
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - <builtin>.set
    - pip._vendor.pygments.lexer.Lexer.__init__
    - filters.append
    - val.split
    - pip._vendor.pygments.util.UnclosingTextIOWrapper.close
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.pygments.lex
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - parser.print_help
    - pip._vendor.pygments.modeline.get_filetype_from_buffer
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format_unencoded
    - <builtin>.next
    - pip._vendor.pygments.util.get_list_opt
    - fnmatch.translate
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - ctypes.LibraryLoader.kernel32.GetConsoleMode
    - pip._vendor.pygments.util.terminal_encoding
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format_unencoded
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._setup_styles
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.color_string
    - sys.exit
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - os.path.basename
    - pip._vendor.pygments.lexers.load_lexer_from_file
    - pip._vendor.colorama.win32._winapi_test
    - pip._vendor.pygments.formatter.Formatter.__init__
    - modeline_re.search
    - msvcrt.get_osfhandle
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens_unprocessed
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.__init__
    - pip._vendor.pygments.lexers.special.TextLexer
    - text.startswith
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - argparse.ArgumentParser
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - arg_set.discard
    - outfile.write
    - logging.getLogger
    - sys.stderr.fileno
    - attrs.extend
    - pip._vendor.pygments.formatter.Formatter.get_style_defs
    - realoutfile.getvalue
    - importlib.metadata.entry_points
    - lexer.analyse_text
    - importlib_metadata.entry_points
    - pip._vendor.pygments.lexers._iter_lexerclasses
    - <builtin>.range
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - pip._vendor.pygments.util.get_bool_opt
    - pip._vendor.pygments.cmdline._print_list
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - os.environ.get
    - parsed_opts.get
    - pip._vendor.pygments.lexers._load_lexers
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_escape_tokens
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - pip._vendor.pygments.cmdline._parse_options
    - pip._vendor.colorama.ansitowin32.StreamWrapper.isatty
    - <builtin>.list
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens
    - pip._vendor.pygments.formatters._load_formatters
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - <builtin>.getattr
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._get_color
    - sys.stdout.fileno
    - group_prober.get_confidence
    - fmter.rsplit
    - ctypes.Structure.__init__
    - io.TextIOWrapper.isatty
    - coding_sm.next_state
    - line.endswith
    - pip._vendor.pygments.filters.find_filter_class
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.pygments.util.guess_decode_from_terminal
    - sys.stdout.close
    - _text.decode
    - special_modes_group.add_mutually_exclusive_group
    - pip._vendor.pygments.lexers._fn_matches
    - pip._vendor.pygments.filter.apply_filters
    - insertion_buf.append
    - o_val.strip
    - text.replace
    - pip._vendor.pygments.plugin.iter_entry_points
    - flags.add_argument
    - entrypoint.load
    - pip._vendor.colorama.initialise.wrap_stream
    - text.expandtabs
    - value.split
    - pip._vendor.pygments.util.guess_decode
    - info.append
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.pygments.cmdline._print_help
    - pip._vendor.colorama.win32.winapi_test
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - ctypes.LibraryLoader.kernel32.SetConsoleMode
    - o_arg.split
    - pip._vendor.pygments.cmdline.main
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.pygments.plugin.find_plugin_filters
    - info.sort
    - parser.add_argument_group
    - <builtin>.hasattr
    - pip._vendor.pygments.cmdline.main_inner.is_only_option
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens
    - res.append
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.__init__
    - pip._vendor.colorama.winterm.enable_vt_processing
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.__init__
    - pip._vendor.pygments.lexers.get_lexer_for_filename
    - pip._vendor.pygments.lexers.get_lexer_by_name
    - pip._vendor.pygments.filters.get_all_filters
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - line.strip
    - pip._vendor.colorama.win32.GetConsoleMode
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - arg_set.add
    - pip._vendor.chardet.universaldetector.UniversalDetector.feed
    - <builtin>.super
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.pygments.formatters.get_all_formatters
    - matches.append
    - codecs.lookup
    - pip._vendor.pygments.lexers.guess_lexer
    - <builtin>.bytearray
    - pip._vendor.pygments.formatter.Formatter.format
    - lower_charset_name.startswith
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.pygments.lexer.Lexer.get_tokens.streamer
    - pattern.match
    - operation.add_argument
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - ctypes.wintypes.DWORD
    - filter_.filter
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - <builtin>.len
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - importlib.metadata.entry_points.select
    - o_str.split
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.should_wrap
    - pip._vendor.colorama.ansitowin32.StreamWrapper.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.pygments.lexer.Lexer.get_tokens
    - insertions.append
    - io.TextIOWrapper.flush
    - <builtin>.print
    - json.dump
    - text.decode
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    IfCount: 2
    argCount: 1
    argDefaultValues:
    - <ast.Attribute object at 0x7f30ead04130>
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 528
    functionName: pip._vendor.pygments.cmdline.main
    functionSourceFile: pip._vendor.pygments.cmdline
    functionUses: 2
    functionsReached:
    - attrs.append
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - <builtin>.dict
    - traceback.format_exception
    - parser.parse_args
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.pygments.lexers.find_lexer_class_for_filename
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - io.TextIOWrapper.fileno
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - sys.stdin.buffer.read
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.reset_string
    - sys.stdout.buffer.flush
    - sys.stdout.buffer.isatty
    - _alias.lower
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - enc.get
    - sys.stderr.isatty
    - pip._vendor.pygments.util.get_choice_opt
    - o_key.strip
    - <builtin>.exec
    - sys.stderr.close
    - pip._vendor.pygments.util.docstring_headline
    - operation.add_mutually_exclusive_group
    - coding_sm.get_coding_state_machine
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.pygments.modeline.get_filetype_from_line
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - io.StringIO
    - pip._vendor.pygments.formatters._fn_matches
    - prober.get_confidence
    - pip._vendor.pygments.cmdline._print_list_as_json
    - f_str.split
    - o_str.strip
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - f.read
    - <builtin>.max
    - sys.exc_info
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.__init__
    - <builtin>.isinstance
    - <builtin>.__import__
    - pip._vendor.pygments.format
    - pip._vendor.pygments.plugin.find_plugin_formatters
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._color_tuple
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - sys.stdin.buffer.readline
    - io.TextIOWrapper.__init__
    - max_prober.get_confidence
    - pip._vendor.pygments.formatters.load_formatter_from_file
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.true_color_string
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - sys.stdout.flush
    - importlib.metadata.entry_points.get
    - <builtin>.open
    - obj.__doc__.strip
    - sys.stdout.buffer.close
    - LEXERS.values
    - pip._vendor.colorama.win32.<lambda2>
    - matches.sort
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.escape
    - pip._vendor.pygments.lexer.Lexer.get_tokens_unprocessed
    - pip._vendor.pygments.formatters.find_formatter_class
    - pip._vendor.pygments.styles.get_style_by_name
    - m.group
    - <builtin>.vars
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._build_color_table
    - pip._vendor.pygments.lexers.get_all_lexers
    - charset_name.lower
    - pip._vendor.pygments.styles.get_all_styles
    - prober.feed
    - pip._vendor.pygments.lexer.do_insertions
    - pip._vendor.pygments.formatters.get_formatter_for_filename
    - infp.read
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._write_lineno
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format
    - abc.ABC.title
    - <builtin>.str
    - pip._vendor.pygments.formatters.get_formatter_by_name
    - special_modes_group.add_argument
    - locale.getpreferredencoding
    - pip._vendor.pygments.plugin.find_plugin_styles
    - lexername.rsplit
    - pip._vendor.pygments.lexers.special.TextLexer.add_filter
    - pip._vendor.pygments.lexer.Lexer.add_filter
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - <builtin>.sorted
    - pip._vendor.pygments.cmdline._parse_filters
    - sys.stderr.flush
    - pip._vendor.chardet.detect
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    - coding_sm.reset
    - pip._vendor.pygments.console.ansiformat
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - textwrap.dedent
    - special_modes.add_argument
    - pip._vendor.pygments.filter.apply_filters._apply
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed
    - text.partition
    - pip._vendor.chardet.universaldetector.UniversalDetector.close
    - text.endswith
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._setup_styles
    - <builtin>.iter
    - pip._vendor.pygments.filters.get_filter_by_name
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._write_lineno
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format
    - FORMATTERS.values
    - <builtin>.issubclass
    - <builtin>.bool
    - o_arg.strip
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - value.splitlines
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - line.rstrip
    - options.get
    - buf.splitlines
    - arg.rstrip
    - p_opt.split
    - text.strip
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._build_color_table
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._closest_color
    - <builtin>.any
    - sys.stdout.isatty
    - pip._vendor.colorama.win32.SetConsoleMode
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.pygments.highlight
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - pip._vendor.pygments.cmdline.main_inner
    - <builtin>.int
    - pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._filter_to
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._color_index
    - result.append
    - sys.stdout.buffer.fileno
    - ctypes.byref
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.get_win32_calls
    - re.compile
    - lexersel.add_argument
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - <builtin>.set
    - pip._vendor.pygments.lexer.Lexer.__init__
    - filters.append
    - val.split
    - pip._vendor.pygments.util.UnclosingTextIOWrapper.close
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.pygments.lex
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - parser.print_help
    - pip._vendor.pygments.modeline.get_filetype_from_buffer
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format_unencoded
    - <builtin>.next
    - pip._vendor.pygments.util.get_list_opt
    - fnmatch.translate
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - ctypes.LibraryLoader.kernel32.GetConsoleMode
    - pip._vendor.pygments.util.terminal_encoding
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format_unencoded
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._setup_styles
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.color_string
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - os.path.basename
    - pip._vendor.pygments.lexers.load_lexer_from_file
    - pip._vendor.colorama.win32._winapi_test
    - pip._vendor.pygments.formatter.Formatter.__init__
    - modeline_re.search
    - msvcrt.get_osfhandle
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens_unprocessed
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.__init__
    - pip._vendor.pygments.lexers.special.TextLexer
    - text.startswith
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - argparse.ArgumentParser
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - arg_set.discard
    - outfile.write
    - logging.getLogger
    - sys.stderr.fileno
    - attrs.extend
    - pip._vendor.pygments.formatter.Formatter.get_style_defs
    - realoutfile.getvalue
    - importlib.metadata.entry_points
    - lexer.analyse_text
    - importlib_metadata.entry_points
    - pip._vendor.pygments.lexers._iter_lexerclasses
    - <builtin>.range
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - pip._vendor.pygments.util.get_bool_opt
    - pip._vendor.pygments.cmdline._print_list
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - os.environ.get
    - pip._vendor.pygments.lexers._load_lexers
    - parsed_opts.get
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_escape_tokens
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - pip._vendor.pygments.cmdline._parse_options
    - pip._vendor.colorama.ansitowin32.StreamWrapper.isatty
    - <builtin>.list
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens
    - pip._vendor.pygments.formatters._load_formatters
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - <builtin>.getattr
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._get_color
    - sys.stdout.fileno
    - group_prober.get_confidence
    - fmter.rsplit
    - ctypes.Structure.__init__
    - io.TextIOWrapper.isatty
    - coding_sm.next_state
    - line.endswith
    - pip._vendor.pygments.filters.find_filter_class
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.pygments.util.guess_decode_from_terminal
    - sys.stdout.close
    - _text.decode
    - special_modes_group.add_mutually_exclusive_group
    - pip._vendor.pygments.lexers._fn_matches
    - pip._vendor.pygments.filter.apply_filters
    - insertion_buf.append
    - o_val.strip
    - text.replace
    - pip._vendor.pygments.plugin.iter_entry_points
    - flags.add_argument
    - entrypoint.load
    - pip._vendor.colorama.initialise.wrap_stream
    - text.expandtabs
    - value.split
    - pip._vendor.pygments.util.guess_decode
    - info.append
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.pygments.cmdline._print_help
    - pip._vendor.colorama.win32.winapi_test
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - ctypes.LibraryLoader.kernel32.SetConsoleMode
    - o_arg.split
    - pip._vendor.pygments.cmdline.main
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.pygments.plugin.find_plugin_filters
    - info.sort
    - parser.add_argument_group
    - <builtin>.hasattr
    - pip._vendor.pygments.cmdline.main_inner.is_only_option
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens
    - res.append
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.__init__
    - pip._vendor.colorama.winterm.enable_vt_processing
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.__init__
    - pip._vendor.pygments.lexers.get_lexer_for_filename
    - pip._vendor.pygments.lexers.get_lexer_by_name
    - pip._vendor.pygments.filters.get_all_filters
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - line.strip
    - pip._vendor.colorama.win32.GetConsoleMode
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - arg_set.add
    - pip._vendor.chardet.universaldetector.UniversalDetector.feed
    - <builtin>.super
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.pygments.formatters.get_all_formatters
    - matches.append
    - codecs.lookup
    - pip._vendor.pygments.lexers.guess_lexer
    - <builtin>.bytearray
    - pip._vendor.pygments.formatter.Formatter.format
    - lower_charset_name.startswith
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.pygments.lexer.Lexer.get_tokens.streamer
    - pattern.match
    - operation.add_argument
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - ctypes.wintypes.DWORD
    - filter_.filter
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - <builtin>.len
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - importlib.metadata.entry_points.select
    - o_str.split
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.should_wrap
    - pip._vendor.colorama.ansitowin32.StreamWrapper.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.pygments.lexer.Lexer.get_tokens
    - insertions.append
    - io.TextIOWrapper.flush
    - <builtin>.print
    - json.dump
    - text.decode
    - io.BytesIO
    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: pip._vendor.pygments.cmdline
    functionSourceFile: pip._vendor.pygments.cmdline
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - o_strs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 33
    functionName: pip._vendor.pygments.cmdline._parse_options
    functionSourceFile: pip._vendor.pygments.cmdline
    functionUses: 4
    functionsReached:
    - o_str.strip
    - o_str.split
    - o_arg.strip
    - o_val.strip
    - o_key.strip
    - o_arg.split
    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: o_str.strip
    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: o_str.split
    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: o_arg.strip
    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: o_arg.split
    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: o_key.strip
    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: o_val.strip
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - f_strs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 54
    functionName: pip._vendor.pygments.cmdline._parse_filters
    functionSourceFile: pip._vendor.pygments.cmdline
    functionUses: 3
    functionsReached:
    - o_str.strip
    - o_val.strip
    - o_str.split
    - o_arg.strip
    - f_str.split
    - filters.append
    - pip._vendor.pygments.cmdline._parse_options
    - o_key.strip
    - o_arg.split
    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_str.split
    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: filters.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - what
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 67
    functionName: pip._vendor.pygments.cmdline._print_help
    functionSourceFile: pip._vendor.pygments.cmdline
    functionUses: 3
    functionsReached:
    - <builtin>.__import__
    - textwrap.dedent
    - LEXERS.values
    - pip._vendor.pygments.lexers.get_lexer_by_name
    - pip._vendor.pygments.lexers._load_lexers
    - pip._vendor.pygments.formatters.find_formatter_class
    - pip._vendor.pygments.plugin.find_plugin_formatters
    - pip._vendor.pygments.filters.find_filter_class
    - pip._vendor.pygments.formatters._load_formatters
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - _alias.lower
    - importlib.metadata.entry_points.get
    - FORMATTERS.values
    - <builtin>.print
    - pip._vendor.pygments.plugin.find_plugin_filters
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - alias
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 55
    functionName: pip._vendor.pygments.formatters.find_formatter_class
    functionSourceFile: pip._vendor.pygments.formatters
    functionUses: 5
    functionsReached:
    - importlib.metadata.entry_points.select
    - <builtin>.__import__
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.find_plugin_formatters
    - FORMATTERS.values
    - pip._vendor.pygments.formatters._load_formatters
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 22
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - what
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 87
    functionName: pip._vendor.pygments.cmdline._print_list
    functionSourceFile: pip._vendor.pygments.cmdline
    functionUses: 3
    functionsReached:
    - <builtin>.__import__
    - pip._vendor.pygments.util.docstring_headline
    - res.append
    - LEXERS.values
    - pip._vendor.pygments.filters.get_all_filters
    - abc.ABC.title
    - line.strip
    - info.append
    - pip._vendor.pygments.plugin.find_plugin_formatters
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.filters.find_filter_class
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.lexers.get_all_lexers
    - pip._vendor.pygments.formatters._load_formatters
    - pip._vendor.pygments.formatters.get_all_formatters
    - pip._vendor.pygments.styles.get_all_styles
    - importlib.metadata.entry_points
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - importlib.metadata.entry_points.select
    - <builtin>.hasattr
    - importlib.metadata.entry_points.get
    - FORMATTERS.values
    - <builtin>.print
    - pip._vendor.pygments.plugin.find_plugin_filters
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - info.sort
    - entrypoint.load
    - obj.__doc__.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: info.append
    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: info.sort
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 44
    functionName: pip._vendor.pygments.formatters.get_all_formatters
    functionSourceFile: pip._vendor.pygments.formatters
    functionUses: 5
    functionsReached:
    - importlib.metadata.entry_points.select
    - <builtin>.__import__
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.find_plugin_formatters
    - FORMATTERS.values
    - pip._vendor.pygments.formatters._load_formatters
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - requested_items
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 138
    functionName: pip._vendor.pygments.cmdline._print_list_as_json
    functionSourceFile: pip._vendor.pygments.cmdline
    functionUses: 3
    functionsReached:
    - <builtin>.__import__
    - pip._vendor.pygments.util.docstring_headline
    - res.append
    - LEXERS.values
    - pip._vendor.pygments.filters.get_all_filters
    - abc.ABC.title
    - line.strip
    - pip._vendor.pygments.plugin.find_plugin_formatters
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.filters.find_filter_class
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.lexers.get_all_lexers
    - pip._vendor.pygments.formatters._load_formatters
    - pip._vendor.pygments.formatters.get_all_formatters
    - pip._vendor.pygments.styles.get_all_styles
    - importlib.metadata.entry_points
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - importlib.metadata.entry_points.select
    - <builtin>.hasattr
    - importlib.metadata.entry_points.get
    - FORMATTERS.values
    - pip._vendor.pygments.plugin.find_plugin_filters
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - json.dump
    - importlib_metadata.entry_points
    - entrypoint.load
    - obj.__doc__.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 53
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 24
    EdgeCount: 75
    ICount: 37
    IfCount: 53
    argCount: 2
    argDefaultValues: []
    argNames:
    - parser
    - argns
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 182
    functionName: pip._vendor.pygments.cmdline.main_inner
    functionSourceFile: pip._vendor.pygments.cmdline
    functionUses: 2
    functionsReached:
    - attrs.append
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le
    - <builtin>.dict
    - traceback.format_exception
    - parser.parse_args
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.reset
    - pip._vendor.pygments.lexers.find_lexer_class_for_filename
    - pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__
    - io.TextIOWrapper.fileno
    - pip._vendor.chardet.latin1prober.Latin1Prober.reset
    - sys.stdin.buffer.read
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.reset_string
    - sys.stdout.buffer.flush
    - sys.stdout.buffer.isatty
    - _alias.lower
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters
    - enc.get
    - sys.stderr.isatty
    - pip._vendor.pygments.util.get_choice_opt
    - o_key.strip
    - <builtin>.exec
    - sys.stderr.close
    - pip._vendor.pygments.util.docstring_headline
    - operation.add_mutually_exclusive_group
    - coding_sm.get_coding_state_machine
    - ctypes.LibraryLoader.kernel32.GetStdHandle
    - pip._vendor.pygments.modeline.get_filetype_from_line
    - pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__
    - io.StringIO
    - pip._vendor.pygments.formatters._fn_matches
    - prober.get_confidence
    - pip._vendor.pygments.cmdline._print_list_as_json
    - f_str.split
    - o_str.strip
    - pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__
    - pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__
    - f.read
    - <builtin>.max
    - sys.exc_info
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.__init__
    - <builtin>.isinstance
    - <builtin>.__import__
    - pip._vendor.pygments.format
    - pip._vendor.pygments.plugin.find_plugin_formatters
    - ctypes.LibraryLoader.kernel32.GetConsoleScreenBufferInfo
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._color_tuple
    - pip._vendor.chardet.big5prober.Big5Prober.__init__
    - sys.stdin.buffer.readline
    - io.TextIOWrapper.__init__
    - max_prober.get_confidence
    - pip._vendor.pygments.formatters.load_formatter_from_file
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.true_color_string
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars
    - sys.stdout.flush
    - importlib.metadata.entry_points.get
    - <builtin>.open
    - obj.__doc__.strip
    - sys.stdout.buffer.close
    - LEXERS.values
    - pip._vendor.colorama.win32.<lambda2>
    - matches.sort
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.escape
    - pip._vendor.pygments.lexer.Lexer.get_tokens_unprocessed
    - pip._vendor.pygments.formatters.find_formatter_class
    - pip._vendor.pygments.styles.get_style_by_name
    - m.group
    - <builtin>.vars
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._build_color_table
    - pip._vendor.pygments.lexers.get_all_lexers
    - charset_name.lower
    - pip._vendor.pygments.styles.get_all_styles
    - prober.feed
    - pip._vendor.pygments.lexer.do_insertions
    - pip._vendor.pygments.formatters.get_formatter_for_filename
    - infp.read
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._write_lineno
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format
    - abc.ABC.title
    - <builtin>.str
    - pip._vendor.pygments.formatters.get_formatter_by_name
    - special_modes_group.add_argument
    - locale.getpreferredencoding
    - pip._vendor.pygments.plugin.find_plugin_styles
    - lexername.rsplit
    - pip._vendor.pygments.lexers.special.TextLexer.add_filter
    - pip._vendor.pygments.lexer.Lexer.add_filter
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - <builtin>.sorted
    - pip._vendor.pygments.cmdline._parse_filters
    - sys.stderr.flush
    - pip._vendor.chardet.detect
    - pip._vendor.chardet.utf8prober.UTF8Prober.reset
    - pip._vendor.chardet.gb2312prober.GB2312Prober.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.feed
    - coding_sm.reset
    - pip._vendor.pygments.console.ansiformat
    - pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__
    - textwrap.dedent
    - special_modes.add_argument
    - pip._vendor.pygments.filter.apply_filters._apply
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed
    - text.partition
    - pip._vendor.chardet.universaldetector.UniversalDetector.close
    - text.endswith
    - pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._setup_styles
    - <builtin>.iter
    - pip._vendor.pygments.filters.get_filter_by_name
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._write_lineno
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format
    - FORMATTERS.values
    - <builtin>.issubclass
    - <builtin>.bool
    - o_arg.strip
    - pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset
    - value.splitlines
    - pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__
    - line.rstrip
    - options.get
    - buf.splitlines
    - arg.rstrip
    - p_opt.split
    - text.strip
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._build_color_table
    - pip._vendor.chardet.hebrewprober.HebrewProber.set_model_probers
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._closest_color
    - <builtin>.any
    - sys.stdout.isatty
    - pip._vendor.colorama.win32.SetConsoleMode
    - pip._vendor.chardet.latin1prober.Latin1Prober.__init__
    - pip._vendor.pygments.highlight
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.__init__
    - pip._vendor.pygments.cmdline.main_inner
    - <builtin>.int
    - pip._vendor.chardet.universaldetector.UniversalDetector.__init__
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._filter_to
    - pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._color_index
    - result.append
    - sys.stdout.buffer.fileno
    - ctypes.byref
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.get_win32_calls
    - re.compile
    - lexersel.add_argument
    - pip._vendor.chardet.cp949prober.CP949Prober.__init__
    - <builtin>.set
    - pip._vendor.pygments.lexer.Lexer.__init__
    - filters.append
    - val.split
    - pip._vendor.pygments.util.UnclosingTextIOWrapper.close
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be
    - pip._vendor.pygments.lex
    - pip._vendor.chardet.eucjpprober.EUCJPProber.reset
    - parser.print_help
    - pip._vendor.pygments.modeline.get_filetype_from_buffer
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.format_unencoded
    - <builtin>.next
    - pip._vendor.pygments.util.get_list_opt
    - fnmatch.translate
    - pip._vendor.chardet.escprober.EscCharSetProber.reset
    - ctypes.LibraryLoader.kernel32.GetConsoleMode
    - pip._vendor.pygments.util.terminal_encoding
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format_unencoded
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._setup_styles
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.color_string
    - pip._vendor.chardet.macromanprober.MacRomanProber.reset
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__
    - os.path.basename
    - pip._vendor.pygments.lexers.load_lexer_from_file
    - pip._vendor.colorama.win32._winapi_test
    - pip._vendor.pygments.formatter.Formatter.__init__
    - modeline_re.search
    - msvcrt.get_osfhandle
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens_unprocessed
    - pip._vendor.chardet.euckrprober.EUCKRProber.__init__
    - pip._vendor.chardet.sjisprober.SJISProber.__init__
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.__init__
    - pip._vendor.pygments.lexers.special.TextLexer
    - text.startswith
    - pip._vendor.chardet.utf8prober.UTF8Prober.__init__
    - argparse.ArgumentParser
    - pip._vendor.chardet.macromanprober.MacRomanProber.__init__
    - arg_set.discard
    - outfile.write
    - logging.getLogger
    - sys.stderr.fileno
    - attrs.extend
    - pip._vendor.pygments.formatter.Formatter.get_style_defs
    - realoutfile.getvalue
    - importlib.metadata.entry_points
    - lexer.analyse_text
    - importlib_metadata.entry_points
    - pip._vendor.pygments.lexers._iter_lexerclasses
    - <builtin>.range
    - pip._vendor.chardet.escprober.EscCharSetProber.feed
    - pip._vendor.pygments.util.get_bool_opt
    - pip._vendor.pygments.cmdline._print_list
    - prober.reset
    - pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__
    - os.environ.get
    - parsed_opts.get
    - pip._vendor.pygments.lexers._load_lexers
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_escape_tokens
    - pip._vendor.chardet.escprober.EscCharSetProber.get_confidence
    - pip._vendor.pygments.cmdline._parse_options
    - pip._vendor.colorama.ansitowin32.StreamWrapper.isatty
    - <builtin>.list
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens
    - pip._vendor.pygments.formatters._load_formatters
    - pip._vendor.chardet.eucjpprober.EUCJPProber.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__
    - pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__
    - <builtin>.getattr
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter._get_color
    - sys.stdout.fileno
    - group_prober.get_confidence
    - fmter.rsplit
    - ctypes.Structure.__init__
    - io.TextIOWrapper.isatty
    - coding_sm.next_state
    - line.endswith
    - pip._vendor.pygments.filters.find_filter_class
    - pip._vendor.chardet.sjisprober.SJISProber.reset
    - pip._vendor.pygments.util.guess_decode_from_terminal
    - sys.stdout.close
    - _text.decode
    - special_modes_group.add_mutually_exclusive_group
    - pip._vendor.pygments.lexers._fn_matches
    - pip._vendor.pygments.filter.apply_filters
    - insertion_buf.append
    - o_val.strip
    - text.replace
    - pip._vendor.pygments.plugin.iter_entry_points
    - flags.add_argument
    - entrypoint.load
    - pip._vendor.colorama.initialise.wrap_stream
    - text.expandtabs
    - value.split
    - pip._vendor.pygments.util.guess_decode
    - info.append
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__
    - pip._vendor.pygments.cmdline._print_help
    - pip._vendor.colorama.win32.winapi_test
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.reset
    - ctypes.LibraryLoader.kernel32.SetConsoleMode
    - o_arg.split
    - pip._vendor.pygments.cmdline.main
    - pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset
    - pip._vendor.pygments.plugin.find_plugin_filters
    - info.sort
    - parser.add_argument_group
    - <builtin>.hasattr
    - pip._vendor.pygments.cmdline.main_inner.is_only_option
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens
    - res.append
    - pip._vendor.pygments.formatters.terminal.TerminalFormatter.__init__
    - pip._vendor.colorama.winterm.enable_vt_processing
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.__init__
    - pip._vendor.pygments.lexers.get_lexer_for_filename
    - pip._vendor.pygments.lexers.get_lexer_by_name
    - pip._vendor.pygments.filters.get_all_filters
    - pip._vendor.chardet.euctwprober.EUCTWProber.__init__
    - line.strip
    - pip._vendor.colorama.win32.GetConsoleMode
    - pip._vendor.chardet.escprober.EscCharSetProber.__init__
    - arg_set.add
    - pip._vendor.chardet.universaldetector.UniversalDetector.feed
    - <builtin>.super
    - pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories
    - pip._vendor.pygments.formatters.get_all_formatters
    - matches.append
    - codecs.lookup
    - pip._vendor.pygments.lexers.guess_lexer
    - <builtin>.bytearray
    - pip._vendor.pygments.formatter.Formatter.format
    - lower_charset_name.startswith
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters
    - pip._vendor.pygments.lexer.Lexer.get_tokens.streamer
    - pattern.match
    - operation.add_argument
    - pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__
    - ctypes.wintypes.DWORD
    - filter_.filter
    - pip._vendor.chardet.johabprober.JOHABProber.__init__
    - pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence
    - <builtin>.len
    - pip._vendor.chardet.universaldetector.UniversalDetector.reset
    - importlib.metadata.entry_points.select
    - o_str.split
    - pip._vendor.colorama.ansitowin32.AnsiToWin32.should_wrap
    - pip._vendor.colorama.ansitowin32.StreamWrapper.__init__
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le
    - pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset
    - pip._vendor.chardet.hebrewprober.HebrewProber.reset
    - pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars
    - pip._vendor.pygments.lexer.Lexer.get_tokens
    - insertions.append
    - io.TextIOWrapper.flush
    - <builtin>.print
    - json.dump
    - text.decode
    - io.BytesIO
    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.print_help
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - opt
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 192
    functionName: pip._vendor.pygments.cmdline.main_inner.is_only_option
    functionSourceFile: pip._vendor.pygments.cmdline
    functionUses: 3
    functionsReached:
    - <builtin>.any
    - <builtin>.vars
    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: arg_set.add
    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: arg_set.discard
    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: arg.rstrip
    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: p_opt.split
    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: parsed_opts.get
    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.stdin.buffer.read
    functionSourceFile: sys
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - _alias
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 70
    functionName: pip._vendor.pygments.formatters.get_formatter_by_name
    functionSourceFile: pip._vendor.pygments.formatters
    functionUses: 3
    functionsReached:
    - importlib.metadata.entry_points.select
    - <builtin>.__import__
    - pip._vendor.pygments.formatters.find_formatter_class
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.find_plugin_formatters
    - FORMATTERS.values
    - pip._vendor.pygments.formatters._load_formatters
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ClassNotFound
    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: lexername.rsplit
    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: infp.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: pip._vendor.pygments.lexers.special.TextLexer
    functionSourceFile: pip
    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: pip._vendor.pygments.lexers.special.TextLexer.add_filter
    functionSourceFile: pip
    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: fmter.rsplit
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30f86cad00>
    argNames:
    - filename
    - formattername
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: pip._vendor.pygments.formatters.load_formatter_from_file
    functionSourceFile: pip._vendor.pygments.formatters
    functionUses: 3
    functionsReached:
    - <builtin>.exec
    - <builtin>.open
    - f.read
    linkageType: pythonLinkage
    raised:
    - ClassNotFound
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - fn
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 119
    functionName: pip._vendor.pygments.formatters.get_formatter_for_filename
    functionSourceFile: pip._vendor.pygments.formatters
    functionUses: 3
    functionsReached:
    - importlib.metadata.entry_points.select
    - os.path.basename
    - <builtin>.__import__
    - importlib.metadata.entry_points.get
    - FORMATTERS.values
    - pip._vendor.pygments.plugin.find_plugin_formatters
    - pip._vendor.pygments.formatters._load_formatters
    - fnmatch.translate
    - pip._vendor.pygments.formatters._fn_matches
    - pattern.match
    - re.compile
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - entrypoint.load
    - importlib.metadata.entry_points
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ClassNotFound
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 135
    functionName: pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - <builtin>.__import__
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._setup_styles
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.__init__
    - attrs.append
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.color_string
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.escape
    - abc.ABC.title
    - options.get
    - <builtin>.str
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._build_color_table
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._color_tuple
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._closest_color
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._build_color_table
    - pip._vendor.pygments.formatter._lookup_style
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._setup_styles
    - string.lower
    - <builtin>.len
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.reset_string
    - attrs.extend
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.true_color_string
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._color_index
    - <builtin>.hasattr
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 83
    functionName: pip._vendor.pygments.formatters.terminal.TerminalFormatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.terminal
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - <builtin>.__import__
    - abc.ABC.title
    - options.get
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - pip._vendor.pygments.util.get_choice_opt
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.TextIOWrapper.__init__
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - left
    - right
    - lang
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 451
    functionName: pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.__init__
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - options.get
    - pip._vendor.pygments.lexer.Lexer.__init__
    - pip._vendor.pygments.filters.find_filter_class
    - val.split
    - <builtin>.list
    - pip._vendor.pygments.lexer.Lexer.add_filter
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - pip._vendor.pygments.filters.get_filter_by_name
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - pip._vendor.pygments.util.get_list_opt
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.find_plugin_filters
    - pip._vendor.pygments.plugin.iter_entry_points
    - importlib_metadata.entry_points
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.buffer.close
    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: sys.stderr.close
    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: sys.stdout.close
    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: sys.stdin.buffer.readline
    functionSourceFile: sys
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30ead047c0>
    - <ast.Constant object at 0x7f30ead04790>
    - <ast.Constant object at 0x7f30ead04760>
    argNames:
    - self
    - prog
    - indent_increment
    - max_help_position
    - width
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 518
    functionName: pip._vendor.pygments.cmdline.HelpFormatter.__init__
    functionSourceFile: pip._vendor.pygments.cmdline
    functionUses: 0
    functionsReached:
    - shutil.get_terminal_size
    - argparse.HelpFormatter.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: argparse.HelpFormatter.__init__
    functionSourceFile: argparse
    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: parser.add_argument_group
    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: operation.add_mutually_exclusive_group
    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: lexersel.add_argument
    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: operation.add_argument
    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: flags.add_argument
    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: special_modes_group.add_mutually_exclusive_group
    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: special_modes.add_argument
    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: special_modes_group.add_argument
    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: traceback.format_exception
    functionSourceFile: traceback
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pygments.formatters.terminal256
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f30f3ceea30>
    - <ast.Constant object at 0x7f30f3ceea00>
    - <ast.Constant object at 0x7f30f3cee9d0>
    - <ast.Constant object at 0x7f30f3cee9a0>
    - <ast.Constant object at 0x7f30f3cee970>
    argNames:
    - self
    - fg
    - bg
    - bold
    - underline
    - italic
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 35
    functionName: pip._vendor.pygments.formatters.terminal256.EscapeSequence.__init__
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - attrs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: pip._vendor.pygments.formatters.terminal256.EscapeSequence.escape
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 9
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 7
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 47
    functionName: pip._vendor.pygments.formatters.terminal256.EscapeSequence.color_string
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 5
    functionsReached:
    - <builtin>.str
    - <builtin>.int
    - <builtin>.len
    - attrs.append
    - attrs.extend
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.escape
    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: attrs.append
    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: attrs.extend
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 73
    functionName: pip._vendor.pygments.formatters.terminal256.EscapeSequence.true_color_string
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 5
    functionsReached:
    - <builtin>.str
    - <builtin>.len
    - attrs.append
    - attrs.extend
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.escape
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 87
    functionName: pip._vendor.pygments.formatters.terminal256.EscapeSequence.reset_string
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 6
    functionsReached:
    - attrs.append
    - <builtin>.len
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.escape
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 18
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 152
    functionName: pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._build_color_table
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 4
    functionsReached:
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 311
    functionName: pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._build_color_table
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 324
    functionName: pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._setup_styles
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 4
    functionsReached:
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.true_color_string
    - <builtin>.str
    - <builtin>.int
    - <builtin>.len
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.__init__
    - attrs.append
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.reset_string
    - attrs.extend
    - pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._color_tuple
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.escape
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 224
    functionName: pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._setup_styles
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 4
    functionsReached:
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._closest_color
    - <builtin>.int
    - <builtin>.str
    - <builtin>.len
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.__init__
    - attrs.append
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.reset_string
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.color_string
    - attrs.extend
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._color_index
    - pip._vendor.pygments.formatters.terminal256.EscapeSequence.escape
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - r
    - g
    - b
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 188
    functionName: pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._closest_color
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 6
    functionsReached:
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - color
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 205
    functionName: pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._color_index
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 5
    functionsReached:
    - pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._closest_color
    - <builtin>.int
    - <builtin>.str
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - outfile
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 245
    functionName: pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._write_lineno
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 9
    functionsReached:
    - outfile.write
    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: outfile.write
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - color
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 314
    functionName: pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._color_tuple
    functionSourceFile: pip._vendor.pygments.formatters.terminal256
    functionUses: 5
    functionsReached:
    - <builtin>.str
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.console
    functionSourceFile: pip._vendor.pygments.console
    functionUses: 0
    functionsReached:
    - <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: 40
    functionName: pip._vendor.pygments.console.reset_color
    functionSourceFile: pip._vendor.pygments.console
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - color_key
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 44
    functionName: pip._vendor.pygments.console.colorize
    functionSourceFile: pip._vendor.pygments.console
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - attr
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: pip._vendor.pygments.console.ansiformat
    functionSourceFile: pip._vendor.pygments.console
    functionUses: 9
    functionsReached:
    - result.append
    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: pip._vendor.pygments.formatters.terminal
    functionSourceFile: pip._vendor.pygments.formatters.terminal
    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
    - outfile
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 94
    functionName: pip._vendor.pygments.formatters.terminal.TerminalFormatter._write_lineno
    functionSourceFile: pip._vendor.pygments.formatters.terminal
    functionUses: 9
    functionsReached:
    - outfile.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ttype
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 98
    functionName: pip._vendor.pygments.formatters.terminal.TerminalFormatter._get_color
    functionSourceFile: pip._vendor.pygments.formatters.terminal
    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: value.splitlines
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.formatters
    functionSourceFile: pip._vendor.pygments.formatters
    functionUses: 0
    functionsReached:
    - types.ModuleType.__dict__.update
    - types.ModuleType.__init__
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - fn
    - glob
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: pip._vendor.pygments.formatters._fn_matches
    functionSourceFile: pip._vendor.pygments.formatters
    functionUses: 4
    functionsReached:
    - fnmatch.translate
    - pattern.match
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - module_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: pip._vendor.pygments.formatters._load_formatters
    functionSourceFile: pip._vendor.pygments.formatters
    functionUses: 11
    functionsReached:
    - <builtin>.__import__
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: FORMATTERS.values
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 144
    functionName: pip._vendor.pygments.formatters._automodule.__getattr__
    functionSourceFile: pip._vendor.pygments.formatters
    functionUses: 0
    functionsReached:
    - FORMATTERS.get
    - <builtin>.__import__
    - pip._vendor.pygments.formatters._load_formatters
    - <builtin>.setattr
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - AttributeError
    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: FORMATTERS.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pygments.formatters._mapping
    functionSourceFile: pip._vendor.pygments.formatters._mapping
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pygments.formatters.latex
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - text
    - commandprefix
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 22
    functionName: pip._vendor.pygments.formatters.latex.escape_tex
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 1
    functionsReached:
    - text.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - ttype
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 135
    functionName: pip._vendor.pygments.formatters.latex._get_ttype_name
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 3
    functionsReached:
    - STANDARD_TYPES.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: STANDARD_TYPES.get
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 256
    functionName: pip._vendor.pygments.formatters.latex.LatexFormatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.formatters.latex._get_ttype_name
    - cmndef.replace
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - <builtin>.__import__
    - pip._vendor.pygments.formatters.latex.LatexFormatter._create_stylesheet.rgbcolor
    - abc.ABC.title
    - options.get
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - <builtin>.len
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - STANDARD_TYPES.get
    - <builtin>.hasattr
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - <builtin>.abs
    - importlib_metadata.entry_points
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - pip._vendor.pygments.formatters.latex.LatexFormatter._create_stylesheet
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 0
    IfCount: 10
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 279
    functionName: pip._vendor.pygments.formatters.latex.LatexFormatter._create_stylesheet
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 1
    functionsReached:
    - pip._vendor.pygments.formatters.latex._get_ttype_name
    - cmndef.replace
    - <builtin>.int
    - STANDARD_TYPES.get
    - pip._vendor.pygments.formatters.latex.LatexFormatter._create_stylesheet.rgbcolor
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - col
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 284
    functionName: pip._vendor.pygments.formatters.latex.LatexFormatter._create_stylesheet.rgbcolor
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 2
    functionsReached:
    - <builtin>.int
    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: cmndef.replace
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b89d30>
    argNames:
    - self
    - arg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 324
    functionName: pip._vendor.pygments.formatters.latex.LatexFormatter.get_style_defs
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 1
    functionsReached:
    - styles.append
    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: styles.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 28
    ICount: 13
    IfCount: 19
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 336
    functionName: pip._vendor.pygments.formatters.latex.LatexFormatter.format_unencoded
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.formatters.latex._get_ttype_name
    - <builtin>.reversed
    - pip._vendor.pygments.formatters.latex.LatexFormatter.get_style_defs
    - STANDARD_TYPES.get
    - styles.append
    - <builtin>.len
    - value.split
    - <builtin>.enumerate
    - text.replace
    - text.partition
    - io.StringIO.write
    - io.StringIO
    - encoding.replace
    - pip._vendor.pygments.formatters.latex.escape_tex
    - <builtin>.dict
    - io.StringIO.getvalue
    - <builtin>.range
    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: io.StringIO.write
    functionSourceFile: io
    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: encoding.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.StringIO.getvalue
    functionSourceFile: io
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 476
    functionName: pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 8
    functionsReached:
    - pip._vendor.pygments.lexer.do_insertions
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens
    - <builtin>.len
    - insertions.append
    - pip._vendor.pygments.lexers.special.TextLexer.get_tokens_unprocessed
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed
    - text.partition
    - <builtin>.iter
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._filter_to
    - <builtin>.next
    - insertion_buf.append
    - pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_escape_tokens
    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: insertion_buf.append
    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: pip._vendor.pygments.lexers.special.TextLexer.get_tokens_unprocessed
    functionSourceFile: pip
    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: pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens.<lambda1>
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - it
    - pred
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 488
    functionName: pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._filter_to
    functionSourceFile: ''
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 505
    functionName: pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_escape_tokens
    functionSourceFile: pip._vendor.pygments.formatters.latex
    functionUses: 9
    functionsReached:
    - <builtin>.len
    - text.partition
    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: pip._vendor.pygments.sphinxext
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 0
    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: 5
    functionLinenumber: 69
    functionName: pip._vendor.pygments.sphinxext.PygmentsDoc.run
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 0
    functionsReached:
    - c.ljust
    - pip._vendor.pygments.lexers.find_lexer_class
    - <builtin>.isinstance
    - out.append
    - <builtin>.__import__
    - sphinx.util.nodes.nested_parse_with_titles
    - pip._vendor.pygments.sphinxext.PygmentsDoc.document_formatters
    - LEXERS.values
    - pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.write_row
    - moddoc.decode
    - pip._vendor.pygments.lexers._load_lexers
    - modules.setdefault
    - <builtin>.set
    - out.split
    - docutils.parsers.rst.Directive.state.document.settings.record_dependencies.add
    - docstring.decode
    - pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview
    - docutils.nodes.compound
    - <builtin>.len
    - <builtin>.sorted
    - pip._vendor.pygments.sphinxext.PygmentsDoc.document_filters
    - <builtin>.zip
    - pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - importlib.metadata.entry_points
    - docutils.statemachine.ViewList
    - importlib.metadata.entry_points.select
    - modules.items
    - importlib.metadata.entry_points.get
    - <builtin>.print
    - LEXERS.items
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - table.append
    - pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.write_seperator
    - importlib_metadata.entry_points
    - <builtin>.max
    - FORMATTERS.items
    - entrypoint.load
    - FILTERS.items
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - Exception
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 148
    functionName: pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 1
    functionsReached:
    - docstring.decode
    - <builtin>.isinstance
    - out.append
    - <builtin>.__import__
    - modules.items
    - <builtin>.len
    - <builtin>.sorted
    - <builtin>.print
    - modules.setdefault
    - LEXERS.items
    - <builtin>.getattr
    - moddoc.decode
    linkageType: pythonLinkage
    raised:
    - Exception
    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: 1
    functionLinenumber: 185
    functionName: pip._vendor.pygments.sphinxext.PygmentsDoc.document_formatters
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 1
    functionsReached:
    - docstring.decode
    - <builtin>.isinstance
    - out.append
    - <builtin>.__import__
    - <builtin>.sorted
    - <builtin>.getattr
    - FORMATTERS.items
    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: 1
    functionLinenumber: 203
    functionName: pip._vendor.pygments.sphinxext.PygmentsDoc.document_filters
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 1
    functionsReached:
    - out.append
    - docstring.decode
    - <builtin>.isinstance
    - FILTERS.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 7
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 88
    functionName: pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 1
    functionsReached:
    - c.ljust
    - pip._vendor.pygments.lexers.find_lexer_class
    - out.append
    - <builtin>.__import__
    - LEXERS.values
    - pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.write_row
    - pip._vendor.pygments.lexers._load_lexers
    - <builtin>.len
    - <builtin>.sorted
    - <builtin>.zip
    - pip._vendor.pygments.plugin.find_plugin_lexers
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - LEXERS.items
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - table.append
    - pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.write_seperator
    - importlib_metadata.entry_points
    - <builtin>.max
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: docutils.nodes.compound
    functionSourceFile: docutils
    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: out.split
    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: docutils.statemachine.ViewList
    functionSourceFile: docutils
    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: sphinx.util.nodes.nested_parse_with_titles
    functionSourceFile: sphinx
    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: docutils.parsers.rst.Directive.state.document.settings.record_dependencies.add
    functionSourceFile: docutils
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - name
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 99
    functionName: pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.format_link
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: LEXERS.items
    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: pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.<lambda1>
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: table.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - columns
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 119
    functionName: pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.write_row
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 3
    functionsReached:
    - c.ljust
    - <builtin>.zip
    - out.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: c.ljust
    functionSourceFile: <builtin>
    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: 2
    functionLinenumber: 130
    functionName: pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.write_seperator
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 2
    functionsReached:
    - c.ljust
    - pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.write_row
    - <builtin>.zip
    - out.append
    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: pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers.<lambda1>
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: docstring.decode
    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: modules.setdefault
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: moddoc.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: modules.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers.<lambda2>
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: FORMATTERS.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pygments.sphinxext.PygmentsDoc.document_formatters.<lambda1>
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: FILTERS.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - app
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 216
    functionName: pip._vendor.pygments.sphinxext.setup
    functionSourceFile: pip._vendor.pygments.sphinxext
    functionUses: 0
    functionsReached:
    - app.add_directive
    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: app.add_directive
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 11
    IfCount: 5
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.pygments.unistring
    functionSourceFile: pip._vendor.pygments.unistring
    functionUses: 0
    functionsReached:
    - categories.setdefault
    - c.isidentifier
    - pip._vendor.pygments.unistring._handle_runs
    - <builtin>.chr
    - cats.remove
    - <builtin>.len
    - <builtin>.sorted
    - buf.append
    - <builtin>.open
    - fp.write
    - unicodedata.category
    - content.find
    - fp.read
    - <builtin>.ord
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 82
    functionName: pip._vendor.pygments.unistring.combine
    functionSourceFile: pip._vendor.pygments.unistring
    functionUses: 0
    functionsReached:
    - <builtin>.globals
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: pip._vendor.pygments.unistring.allexcept
    functionSourceFile: pip._vendor.pygments.unistring
    functionUses: 0
    functionsReached:
    - newcats.remove
    - <builtin>.globals
    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: newcats.remove
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - char_list
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 93
    functionName: pip._vendor.pygments.unistring._handle_runs
    functionSourceFile: pip._vendor.pygments.unistring
    functionUses: 1
    functionsReached:
    - <builtin>.chr
    - <builtin>.len
    - <builtin>.ord
    - buf.append
    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: content.find
    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: categories.setdefault
    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: c.isidentifier
    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: cats.remove
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pygments.scanner
    functionSourceFile: pip._vendor.pygments.scanner
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30eea09160>
    argNames:
    - self
    - text
    - flags
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: pip._vendor.pygments.scanner.Scanner.__init__
    functionSourceFile: pip._vendor.pygments.scanner
    functionUses: 0
    functionsReached:
    - <builtin>.len
    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: 49
    functionName: pip._vendor.pygments.scanner.Scanner.eos
    functionSourceFile: pip._vendor.pygments.scanner
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.scanner.Scanner
    functionSourceFile: pip._vendor.pygments.scanner
    functionUses: 0
    functionsReached:
    - <builtin>.property
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: pip._vendor.pygments.scanner.Scanner.check
    functionSourceFile: pip._vendor.pygments.scanner
    functionUses: 1
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised:
    - EndOfText
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 66
    functionName: pip._vendor.pygments.scanner.Scanner.test
    functionSourceFile: pip._vendor.pygments.scanner
    functionUses: 0
    functionsReached:
    - re.compile
    - pip._vendor.pygments.scanner.Scanner.check
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 72
    functionName: pip._vendor.pygments.scanner.Scanner.scan
    functionSourceFile: pip._vendor.pygments.scanner
    functionUses: 1
    functionsReached:
    - m.group
    - re.compile
    - m.start
    - m.end
    linkageType: pythonLinkage
    raised:
    - EndOfText
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 95
    functionName: pip._vendor.pygments.scanner.Scanner.get_char
    functionSourceFile: pip._vendor.pygments.scanner
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.scanner.Scanner.scan
    - m.end
    - m.start
    - m.group
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 99
    functionName: pip._vendor.pygments.scanner.Scanner.__repr__
    functionSourceFile: pip._vendor.pygments.scanner
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pygments.lexers.python
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - ttype
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 67
    functionName: pip._vendor.pygments.lexers.python.PythonLexer.innerstring_rules
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - ttype
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: pip._vendor.pygments.lexers.python.PythonLexer.fstring_rules
    functionSourceFile: pip._vendor.pygments.lexers.python
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.pygments.lexers.python.PythonLexer
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.lexers.python.PythonLexer.innerstring_rules
    - <builtin>.isinstance
    - pip._vendor.pygments.lexer.using
    - pip._vendor.pygments.lexer.words.__init__
    - pip._vendor.pygments.lexer.default.__init__
    - pip._vendor.pygments.lexers.python.PythonLexer.fstring_rules
    - pip._vendor.pygments.lexer.combined.__init__
    - pip._vendor.pygments.lexer.bygroups
    - kwargs.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 409
    functionName: pip._vendor.pygments.lexers.python.PythonLexer.analyse_text
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - text.find
    - pip._vendor.pygments.util.shebang_matches
    - x.startswith
    - text.lower
    - first_line.startswith
    - re.compile
    - regex.search
    - split_path_re.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - ttype
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 433
    functionName: pip._vendor.pygments.lexers.python.Python2Lexer.innerstring_rules
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.lexers.python.Python2Lexer
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.lexer.words.__init__
    - pip._vendor.pygments.lexer.default.__init__
    - pip._vendor.pygments.lexer.combined.__init__
    - pip._vendor.pygments.lexer.bygroups
    - pip._vendor.pygments.lexers.python.Python2Lexer.innerstring_rules
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 635
    functionName: pip._vendor.pygments.lexers.python.Python2Lexer.analyse_text
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - text.find
    - pip._vendor.pygments.util.shebang_matches
    - x.startswith
    - text.lower
    - first_line.startswith
    - re.compile
    - regex.search
    - split_path_re.split
    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: pip._vendor.pygments.lexers.python._PythonConsoleLexerBase
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.lexer.bygroups
    - pip._vendor.pygments.lexer.default.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 702
    functionName: pip._vendor.pygments.lexers.python.PythonConsoleLexer.__init__
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - options.get
    - string.lower
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 716
    functionName: pip._vendor.pygments.lexers.python.PythonConsoleLexer.__init__._ReplaceInnerCode.__init__
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.pygments.lexers.python.PythonTracebackLexer
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.lexer.using
    - pip._vendor.pygments.lexer.default.__init__
    - pip._vendor.pygments.lexer.bygroups
    - kwargs.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: pip._vendor.pygments.lexers.python.Python2TracebackLexer
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.lexer.using
    - pip._vendor.pygments.lexer.default.__init__
    - pip._vendor.pygments.lexer.bygroups
    - kwargs.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.lexers.python.CythonLexer
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.lexer.bygroups
    - pip._vendor.pygments.lexer.combined.__init__
    - pip._vendor.pygments.lexer.words.__init__
    - pip._vendor.pygments.lexer.default.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.lexers.python.DgLexer
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.lexer.combined.__init__
    - pip._vendor.pygments.lexer.words.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1186
    functionName: pip._vendor.pygments.lexers.python.NumPyLexer.get_tokens_unprocessed
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - statestack.append
    - <builtin>.isinstance
    - statestack.pop
    - m.end
    - <builtin>.len
    - pip._vendor.pygments.lexer.RegexLexer.get_tokens_unprocessed
    - m.group
    - <builtin>.abs
    - <builtin>.list
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1194
    functionName: pip._vendor.pygments.lexers.python.NumPyLexer.analyse_text
    functionSourceFile: pip._vendor.pygments.lexers.python
    functionUses: 0
    functionsReached:
    - text.find
    - pip._vendor.pygments.util.shebang_matches
    - x.startswith
    - text.lower
    - first_line.startswith
    - re.compile
    - regex.search
    - split_path_re.split
    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: pip._vendor.pygments.formatters.other
    functionSourceFile: pip._vendor.pygments.formatters.other
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 27
    functionName: pip._vendor.pygments.formatters.other.NullFormatter.format
    functionSourceFile: pip._vendor.pygments.formatters.other
    functionUses: 0
    functionsReached:
    - value.encode
    - outfile.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 62
    functionName: pip._vendor.pygments.formatters.other.RawTokenFormatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.other
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - <builtin>.__import__
    - abc.ABC.title
    - options.get
    - pip._vendor.pygments.console.colorize
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - pip._vendor.pygments.util.get_choice_opt
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 80
    functionName: pip._vendor.pygments.formatters.other.RawTokenFormatter.format
    functionSourceFile: pip._vendor.pygments.formatters.other
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.formatters.other.RawTokenFormatter.format.write
    - gzip.GzipFile
    - pip._vendor.pygments.console.colorize
    - compressor.flush
    - pip._vendor.pygments.formatters.other.RawTokenFormatter.format.flush
    - compressor.compress
    - outfile.write
    - outfile.flush
    - bz2.BZ2Compressor
    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: bz2.BZ2Compressor
    functionSourceFile: bz2
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 96
    functionName: pip._vendor.pygments.formatters.other.RawTokenFormatter.format.write
    functionSourceFile: pip._vendor.pygments.formatters.other
    functionUses: 1
    functionsReached:
    - outfile.write
    - compressor.compress
    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: compressor.compress
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 99
    functionName: pip._vendor.pygments.formatters.other.RawTokenFormatter.format.flush
    functionSourceFile: pip._vendor.pygments.formatters.other
    functionUses: 1
    functionsReached:
    - outfile.write
    - outfile.flush
    - compressor.flush
    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: compressor.flush
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: outfile.flush
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 139
    functionName: pip._vendor.pygments.formatters.other.TestcaseFormatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.other
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.__import__
    - abc.ABC.title
    - options.get
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 7
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 144
    functionName: pip._vendor.pygments.formatters.other.TestcaseFormatter.format
    functionSourceFile: pip._vendor.pygments.formatters.other
    functionUses: 0
    functionsReached:
    - after.encode
    - outbuf.append
    - rawbuf.append
    - outfile.write
    - outfile.flush
    - before.encode
    - during.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rawbuf.append
    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: before.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: during.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: after.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pygments.formatters.rtf
    functionSourceFile: pip._vendor.pygments.formatters.rtf
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 50
    functionName: pip._vendor.pygments.formatters.rtf.RtfFormatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.rtf
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - <builtin>.__import__
    - abc.ABC.title
    - options.get
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: pip._vendor.pygments.formatters.rtf.RtfFormatter._escape
    functionSourceFile: pip._vendor.pygments.formatters.rtf
    functionUses: 2
    functionsReached:
    - text.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 71
    functionName: pip._vendor.pygments.formatters.rtf.RtfFormatter._escape_text
    functionSourceFile: pip._vendor.pygments.formatters.rtf
    functionUses: 1
    functionsReached:
    - <builtin>.str
    - text.replace
    - buf.append
    - pip._vendor.pygments.util.surrogatepair
    - pip._vendor.pygments.formatters.rtf.RtfFormatter._escape
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 14
    IfCount: 10
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 95
    functionName: pip._vendor.pygments.formatters.rtf.RtfFormatter.format_unencoded
    functionSourceFile: pip._vendor.pygments.formatters.rtf
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - <builtin>.str
    - text.replace
    - buf.append
    - outfile.write
    - pip._vendor.pygments.util.surrogatepair
    - pip._vendor.pygments.formatters.rtf.RtfFormatter._escape
    - pip._vendor.pygments.formatters.rtf.RtfFormatter._escape_text
    - <builtin>.ord
    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: pip._vendor.pygments.formatters.bbcode
    functionSourceFile: pip._vendor.pygments.formatters.bbcode
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 51
    functionName: pip._vendor.pygments.formatters.bbcode.BBCodeFormatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.bbcode
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - <builtin>.__import__
    - abc.ABC.title
    - options.get
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.formatters.bbcode.BBCodeFormatter._make_styles
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 59
    functionName: pip._vendor.pygments.formatters.bbcode.BBCodeFormatter._make_styles
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 7
    IfCount: 8
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 78
    functionName: pip._vendor.pygments.formatters.bbcode.BBCodeFormatter.format_unencoded
    functionSourceFile: pip._vendor.pygments.formatters.bbcode
    functionUses: 0
    functionsReached:
    - outfile.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.formatters.pangomarkup
    functionSourceFile: pip._vendor.pygments.formatters.pangomarkup
    functionUses: 0
    functionsReached:
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30e9557040>
    argNames:
    - text
    - table
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: pip._vendor.pygments.formatters.pangomarkup.escape_special_chars
    functionSourceFile: pip._vendor.pygments.formatters.pangomarkup
    functionUses: 1
    functionsReached:
    - text.translate
    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.translate
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 39
    functionName: pip._vendor.pygments.formatters.pangomarkup.PangoMarkupFormatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.pangomarkup
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bool
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.__import__
    - abc.ABC.title
    - options.get
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 61
    functionName: pip._vendor.pygments.formatters.pangomarkup.PangoMarkupFormatter.format_unencoded
    functionSourceFile: pip._vendor.pygments.formatters.pangomarkup
    functionUses: 0
    functionsReached:
    - outfile.write
    - text.translate
    - pip._vendor.pygments.formatters.pangomarkup.escape_special_chars
    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: pip._vendor.pygments.formatters.img
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f30d8758df0>
    argNames:
    - self
    - font_name
    - font_size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 66
    functionName: pip._vendor.pygments.formatters.img.FontManager.__init__
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 1
    functionsReached:
    - line.startswith
    - stdout.splitlines
    - proc.communicate
    - winreg.OpenKey
    - line.decode
    - pip._vendor.pygments.formatters.img.FontManager._create_mac
    - PIL.ImageFont.truetype
    - f.lower
    - _winreg.OpenKey
    - _winreg.CloseKey
    - pip._vendor.pygments.formatters.img.FontManager._create_nix
    - os.path.join
    - os.path.splitext
    - subprocess.Popen
    - os.getenv
    - font_map.update
    - font_map.get
    - _winreg.QueryValueEx
    - winreg.CloseKey
    - pip._vendor.pygments.formatters.img.FontManager._create_win
    - os.listdir
    - pip._vendor.pygments.formatters.img.FontManager._lookup_win
    - pip._vendor.pygments.formatters.img.FontManager._get_nix_font_path
    - winreg.QueryValueEx
    - sys.platform.startswith
    - pip._vendor.pygments.formatters.img.FontManager._get_mac_font_path
    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: 2
    functionLinenumber: 166
    functionName: pip._vendor.pygments.formatters.img.FontManager._create_win
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 2
    functionsReached:
    - _winreg.OpenKey
    - pip._vendor.pygments.formatters.img.FontManager._lookup_win
    - winreg.OpenKey
    - _winreg.CloseKey
    - _winreg.QueryValueEx
    - winreg.QueryValueEx
    - winreg.CloseKey
    - PIL.ImageFont.truetype
    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: 2
    functionLinenumber: 122
    functionName: pip._vendor.pygments.formatters.img.FontManager._create_mac
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 2
    functionsReached:
    - font_map.update
    - os.listdir
    - font_map.get
    - os.path.join
    - os.path.splitext
    - pip._vendor.pygments.formatters.img.FontManager._get_mac_font_path
    - PIL.ImageFont.truetype
    - f.lower
    - os.getenv
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 98
    functionName: pip._vendor.pygments.formatters.img.FontManager._create_nix
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 2
    functionsReached:
    - line.startswith
    - stdout.splitlines
    - proc.communicate
    - pip._vendor.pygments.formatters.img.FontManager._get_nix_font_path
    - line.decode
    - PIL.ImageFont.truetype
    - subprocess.Popen
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: pip._vendor.pygments.formatters.img.FontManager._get_nix_font_path
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 3
    functionsReached:
    - line.startswith
    - stdout.splitlines
    - proc.communicate
    - line.decode
    - subprocess.Popen
    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: PIL.ImageFont.truetype
    functionSourceFile: PIL
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - font_map
    - name
    - style
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 119
    functionName: pip._vendor.pygments.formatters.img.FontManager._get_mac_font_path
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 3
    functionsReached:
    - font_map.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: font_map.get
    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: f.lower
    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: font_map.update
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f30f3e9ef10>
    argNames:
    - self
    - key
    - basename
    - styles
    - fail
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 151
    functionName: pip._vendor.pygments.formatters.img.FontManager._lookup_win
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 3
    functionsReached:
    - _winreg.QueryValueEx
    - winreg.QueryValueEx
    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: _winreg.QueryValueEx
    functionSourceFile: _winreg
    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: _winreg.OpenKey
    functionSourceFile: _winreg
    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: _winreg.CloseKey
    functionSourceFile: _winreg
    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: winreg.CloseKey
    functionSourceFile: winreg
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 205
    functionName: pip._vendor.pygments.formatters.img.FontManager.get_char_size
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 1
    functionsReached:
    - font.getbbox
    - font.getsize
    - pip._vendor.pygments.formatters.img.FontManager.get_text_size
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 211
    functionName: pip._vendor.pygments.formatters.img.FontManager.get_text_size
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 4
    functionsReached:
    - font.getbbox
    - font.getsize
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: font.getbbox
    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: font.getsize
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - bold
    - oblique
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 221
    functionName: pip._vendor.pygments.formatters.img.FontManager.get_font
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 353
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 0
    functionsReached:
    - line.startswith
    - <builtin>.isinstance
    - stdout.splitlines
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - <builtin>.__import__
    - proc.communicate
    - winreg.OpenKey
    - line.decode
    - pip._vendor.pygments.formatters.img.FontManager._create_mac
    - <builtin>.dict
    - PIL.ImageFont.truetype
    - f.lower
    - abc.ABC.title
    - options.get
    - pip._vendor.pygments.formatters.img.FontManager.__init__
    - _winreg.OpenKey
    - pip._vendor.pygments.formatters.img.FontManager._get_mac_font_path
    - pip._vendor.pygments.styles.get_style_by_name
    - _winreg.CloseKey
    - pip._vendor.pygments.plugin.find_plugin_styles
    - os.path.splitext
    - pip._vendor.pygments.formatters.img.FontManager._create_nix
    - os.path.join
    - val.split
    - <builtin>.list
    - subprocess.Popen
    - os.getenv
    - font_map.update
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - font_map.get
    - _winreg.QueryValueEx
    - winreg.CloseKey
    - font.getbbox
    - font.getsize
    - importlib.metadata.entry_points
    - pip._vendor.pygments.formatters.img.FontManager.get_text_size
    - importlib.metadata.entry_points.select
    - pip._vendor.pygments.formatters.img.FontManager.get_char_size
    - <builtin>.int
    - pip._vendor.pygments.util.get_list_opt
    - pip._vendor.pygments.formatters.img.FontManager._create_win
    - importlib.metadata.entry_points.get
    - os.listdir
    - pip._vendor.pygments.formatters.img.FontManager._lookup_win
    - pip._vendor.pygments.formatters.img.FontManager._get_nix_font_path
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - winreg.QueryValueEx
    - importlib_metadata.entry_points
    - pip._vendor.pygments.util.get_choice_opt
    - sys.platform.startswith
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - PilNotAvailable
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e2e7dfd0>
    argNames:
    - self
    - arg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 409
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter.get_style_defs
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 413
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._get_line_height
    functionSourceFile: pip._vendor.pygments.formatters.img
    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
    - lineno
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 419
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._get_line_y
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 7
    functionsReached:
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_height
    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: 425
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._get_char_width
    functionSourceFile: pip._vendor.pygments.formatters.img
    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
    - linelength
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 431
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._get_char_x
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - linelength
    - lineno
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 437
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._get_text_pos
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 2
    functionsReached:
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_y
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_char_x
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_height
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - lineno
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 443
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._get_linenumber_pos
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 3
    functionsReached:
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_y
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_height
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - style
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 449
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._get_text_color
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - style
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 459
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._get_text_bg_color
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - style
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 469
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._get_style_font
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 2
    functionsReached:
    - pip._vendor.pygments.formatters.img.FontManager.get_font
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - maxlinelength
    - maxlineno
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 475
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._get_image_size
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 1
    functionsReached:
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_y
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_char_x
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_height
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - posno
    - lineno
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 482
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._draw_linenumber
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 2
    functionsReached:
    - pip._vendor.pygments.formatters.img.FontManager.get_font
    - <builtin>.str
    - pip._vendor.pygments.formatters.img.ImageFormatter._draw_text
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_y
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_linenumber_pos
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_height
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - pos
    - text
    - font
    - text_fg
    - text_bg
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 495
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._draw_text
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 501
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._create_drawables
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 1
    functionsReached:
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_style_font
    - value.expandtabs
    - value.splitlines
    - pip._vendor.pygments.formatters.img.ImageFormatter._draw_text
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_text_bg_color
    - line.rstrip
    - <builtin>.enumerate
    - line.endswith
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_y
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_text_color
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_height
    - pip._vendor.pygments.formatters.img.FontManager.get_font
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_char_x
    - <builtin>.len
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_text_pos
    - font.getbbox
    - font.getsize
    - pip._vendor.pygments.formatters.img.FontManager.get_text_size
    - <builtin>.max
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.expandtabs
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 541
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._draw_line_numbers
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 1
    functionsReached:
    - pip._vendor.pygments.formatters.img.ImageFormatter._draw_linenumber
    - pip._vendor.pygments.formatters.img.FontManager.get_font
    - <builtin>.str
    - pip._vendor.pygments.formatters.img.ImageFormatter._draw_text
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_y
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_linenumber_pos
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_height
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - im
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 552
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter._paint_line_number_bg
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 1
    functionsReached:
    - PIL.ImageDraw.Draw
    - draw.line
    - draw.rectangle
    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: PIL.ImageDraw.Draw
    functionSourceFile: PIL
    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: draw.rectangle
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: draw.line
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 569
    functionName: pip._vendor.pygments.formatters.img.ImageFormatter.format
    functionSourceFile: pip._vendor.pygments.formatters.img
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.formatters.img.ImageFormatter._draw_linenumber
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_style_font
    - value.expandtabs
    - pip._vendor.pygments.formatters.img.ImageFormatter._draw_line_numbers
    - value.splitlines
    - pip._vendor.pygments.formatters.img.ImageFormatter._draw_text
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_text_bg_color
    - draw.textsize
    - line.rstrip
    - <builtin>.str
    - <builtin>.enumerate
    - pip._vendor.pygments.formatters.img.ImageFormatter._create_drawables
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_image_size
    - line.endswith
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_y
    - pip._vendor.pygments.formatters.img.ImageFormatter._paint_line_number_bg
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_line_height
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_text_color
    - draw.text
    - pip._vendor.pygments.formatters.img.FontManager.get_font
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_char_x
    - <builtin>.len
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_text_pos
    - PIL.Image.new
    - font.getbbox
    - font.getsize
    - pip._vendor.pygments.formatters.img.FontManager.get_text_size
    - draw.rectangle
    - im.save
    - pip._vendor.pygments.formatters.img.ImageFormatter._get_linenumber_pos
    - <builtin>.max
    - PIL.ImageDraw.Draw
    - draw.line
    - <builtin>.hasattr
    - <builtin>.range
    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: PIL.Image.new
    functionSourceFile: PIL
    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: draw.textsize
    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: draw.text
    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: im.save
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pip._vendor.pygments.formatters.svg
    functionSourceFile: pip._vendor.pygments.formatters.svg
    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:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 18
    functionName: pip._vendor.pygments.formatters.svg.escape_html
    functionSourceFile: pip._vendor.pygments.formatters.svg
    functionUses: 1
    functionsReached:
    - text.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 93
    functionName: pip._vendor.pygments.formatters.svg.SvgFormatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.svg
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - <builtin>.__import__
    - abc.ABC.title
    - options.get
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - fs.endswith
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fs.endswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 15
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 114
    functionName: pip._vendor.pygments.formatters.svg.SvgFormatter.format_unencoded
    functionSourceFile: pip._vendor.pygments.formatters.svg
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.formatters.svg.escape_html
    - value.split
    - pip._vendor.pygments.formatters.svg.SvgFormatter._get_style
    - text.replace
    - outfile.write
    - value.expandtabs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tokentype
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 173
    functionName: pip._vendor.pygments.formatters.svg.SvgFormatter._get_style
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.formatters.html
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 0
    functionsReached:
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f30f3328700>
    argNames:
    - text
    - table
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 38
    functionName: pip._vendor.pygments.formatters.html.escape_html
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 0
    functionsReached:
    - text.translate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - color
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: pip._vendor.pygments.formatters.html.webify
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 2
    functionsReached:
    - color.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: color.startswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - ttype
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: pip._vendor.pygments.formatters.html._get_ttype_class
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 6
    functionsReached:
    - STANDARD_TYPES.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 410
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 0
    functionsReached:
    - value.decode
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - <builtin>.__import__
    - color.startswith
    - pip._vendor.pygments.formatters.html.HtmlFormatter._create_stylesheet
    - pip._vendor.pygments.formatters.html.webify
    - abc.ABC.title
    - options.get
    - pip._vendor.pygments.styles.get_style_by_name
    - <builtin>.set
    - ctags.CTags
    - pip._vendor.pygments.plugin.find_plugin_styles
    - val.split
    - <builtin>.list
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - <builtin>.len
    - pip._vendor.pygments.formatters.html.HtmlFormatter._decodeifneeded
    - pip._vendor.pygments.formatters.html._get_ttype_class
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - pip._vendor.pygments.util.get_list_opt
    - STANDARD_TYPES.get
    - pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_class
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - <builtin>.abs
    - importlib_metadata.entry_points
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 608
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._decodeifneeded
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 1
    functionsReached:
    - value.decode
    - <builtin>.isinstance
    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: ctags.CTags
    functionSourceFile: ctags
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 483
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._create_stylesheet
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 1
    functionsReached:
    - pip._vendor.pygments.formatters.html.webify
    - STANDARD_TYPES.get
    - <builtin>.len
    - pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_class
    - color.startswith
    - pip._vendor.pygments.formatters.html._get_ttype_class
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ttype
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 459
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_class
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 5
    functionsReached:
    - STANDARD_TYPES.get
    - pip._vendor.pygments.formatters.html._get_ttype_class
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ttype
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 467
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_classes
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 2
    functionsReached:
    - STANDARD_TYPES.get
    - pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_class
    - pip._vendor.pygments.formatters.html._get_ttype_class
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ttype
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 475
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_inline_styles
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e9557700>
    argNames:
    - self
    - arg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 507
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter.get_style_defs
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 2
    functionsReached:
    - style_lines.extend
    - <builtin>.repr
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_linenos_style_defs
    - <builtin>.isinstance
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix.prefix
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_background_style_defs
    - tmp.append
    - lines.insert
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_token_style_defs
    - <builtin>.list
    - styles.sort
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 561
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter.get_linenos_style_defs
    functionSourceFile: ''
    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: style_lines.extend
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30d6b87940>
    argNames:
    - self
    - arg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 538
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter.get_background_style_defs
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix.prefix
    - tmp.append
    - lines.insert
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f30e2e7d1f0>
    argNames:
    - self
    - arg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 521
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter.get_token_style_defs
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix.prefix
    - tmp.append
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix
    - <builtin>.list
    - <builtin>.repr
    - styles.sort
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - arg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 572
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 5
    functionsReached:
    - <builtin>.list
    - <builtin>.isinstance
    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: styles.sort
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 580
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix.prefix
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 5
    functionsReached:
    - tmp.append
    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: lines.insert
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 591
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._pre_style
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 595
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._linenos_style
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 602
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._linenos_special_style
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - inner
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 615
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_full
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 1
    functionsReached:
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_linenos_style_defs
    - <builtin>.isinstance
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix.prefix
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_background_style_defs
    - cf.write
    - lines.insert
    - <builtin>.dict
    - style_lines.extend
    - tmp.append
    - os.path.isabs
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix
    - os.path.join
    - <builtin>.list
    - styles.sort
    - os.path.exists
    - os.path.dirname
    - <builtin>.print
    - <builtin>.open
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_style_defs
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_token_style_defs
    - <builtin>.repr
    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: cf.write
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 7
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - inner
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 656
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_tablelinenos
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 1
    functionsReached:
    - <builtin>.str
    - <builtin>.len
    - lines.append
    - io.StringIO.write
    - io.StringIO
    - io.StringIO.getvalue
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - inner
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 724
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_inlinelinenos
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - <builtin>.list
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - inner
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 767
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_lineanchors
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - inner
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 779
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_linespans
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - inner
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 789
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_div
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 1
    functionsReached:
    - style.append
    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: style.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - inner
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 803
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_pre
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 2
    functionsReached:
    - style.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - inner
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 820
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_code
    functionSourceFile: pip._vendor.pygments.formatters.html
    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: 1
    functionLinenumber: -1
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 0
    functionsReached:
    - functools.lru_cache
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 826
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._translate_parts
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 2
    functionsReached:
    - value.translate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.translate
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 10
    IfCount: 13
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 830
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._format_lines
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 1
    functionsReached:
    - token.encode
    - pip._vendor.pygments.formatters.html._get_ttype_class
    - STANDARD_TYPES.get
    - pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_class
    - pip._vendor.pygments.formatters.html.HtmlFormatter._translate_parts
    - line.extend
    - pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_classes
    - os.path.splitext
    - pip._vendor.pygments.formatters.html.HtmlFormatter._lookup_ctag
    - value.translate
    - pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_inline_styles
    - os.path.split
    - line.append
    - ctags.TagEntry
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - token
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 908
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._lookup_ctag
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 2
    functionsReached:
    - ctags.TagEntry
    - token.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctags.TagEntry
    functionSourceFile: ctags
    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: token.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 915
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter._highlight_lines
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 1
    functionsReached:
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - source
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 937
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter.wrap
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 1
    functionsReached:
    - pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_code
    - pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_pre
    - style.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 952
    functionName: pip._vendor.pygments.formatters.html.HtmlFormatter.format_unencoded
    functionSourceFile: pip._vendor.pygments.formatters.html
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_linenos_style_defs
    - <builtin>.isinstance
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix.prefix
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_background_style_defs
    - cf.write
    - pip._vendor.pygments.formatters.html.HtmlFormatter._translate_parts
    - lines.insert
    - pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_code
    - <builtin>.dict
    - pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_full
    - style_lines.extend
    - pip._vendor.pygments.formatters.html.HtmlFormatter.wrap
    - <builtin>.str
    - tmp.append
    - <builtin>.enumerate
    - os.path.isabs
    - io.StringIO.write
    - io.StringIO
    - pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_tablelinenos
    - pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_inlinelinenos
    - pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_classes
    - os.path.splitext
    - os.path.join
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix
    - pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_div
    - <builtin>.list
    - styles.sort
    - pip._vendor.pygments.formatters.html.HtmlFormatter._lookup_ctag
    - <builtin>.len
    - lines.append
    - outfile.write
    - pip._vendor.pygments.formatters.html._get_ttype_class
    - value.translate
    - style.append
    - pip._vendor.pygments.formatters.html.HtmlFormatter._format_lines
    - line.append
    - pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_inline_styles
    - ctags.TagEntry
    - token.encode
    - STANDARD_TYPES.get
    - os.path.exists
    - pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_lineanchors
    - pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_class
    - pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_linespans
    - os.path.dirname
    - <builtin>.print
    - <builtin>.open
    - line.extend
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_style_defs
    - pip._vendor.pygments.formatters.html.HtmlFormatter.get_token_style_defs
    - <builtin>.repr
    - pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_pre
    - pip._vendor.pygments.formatters.html.HtmlFormatter._highlight_lines
    - os.path.split
    - io.StringIO.getvalue
    - <builtin>.range
    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: pip._vendor.pygments.formatters.irc
    functionSourceFile: pip._vendor.pygments.formatters.irc
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - color
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: pip._vendor.pygments.formatters.irc.ircformat
    functionSourceFile: pip._vendor.pygments.formatters.irc
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - <builtin>.str
    - color.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: color.strip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 122
    functionName: pip._vendor.pygments.formatters.irc.IRCFormatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.irc
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - <builtin>.__import__
    - abc.ABC.title
    - options.get
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - pip._vendor.pygments.util.get_choice_opt
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - outfile
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 130
    functionName: pip._vendor.pygments.formatters.irc.IRCFormatter._write_lineno
    functionSourceFile: pip._vendor.pygments.formatters.irc
    functionUses: 1
    functionsReached:
    - outfile.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 135
    functionName: pip._vendor.pygments.formatters.irc.IRCFormatter.format_unencoded
    functionSourceFile: pip._vendor.pygments.formatters.irc
    functionUses: 0
    functionsReached:
    - pip._vendor.pygments.formatters.irc.ircformat
    - <builtin>.str
    - color.strip
    - <builtin>.len
    - value.split
    - outfile.write
    - pip._vendor.pygments.formatters.irc.IRCFormatter._write_lineno
    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: pip._vendor.pygments.formatters.groff
    functionSourceFile: pip._vendor.pygments.formatters.groff
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 45
    functionName: pip._vendor.pygments.formatters.groff.GroffFormatter.__init__
    functionSourceFile: pip._vendor.pygments.formatters.groff
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - pip._vendor.pygments.util.get_bool_opt
    - <builtin>.bool
    - <builtin>.__import__
    - abc.ABC.title
    - options.get
    - pip._vendor.pygments.styles.get_style_by_name
    - pip._vendor.pygments.plugin.find_plugin_styles
    - pip._vendor.pygments.formatters.groff.GroffFormatter._make_styles
    - pip._vendor.pygments.formatter._lookup_style
    - string.lower
    - pip._vendor.pygments.util.get_int_opt
    - importlib.metadata.entry_points
    - importlib.metadata.entry_points.select
    - <builtin>.int
    - importlib.metadata.entry_points.get
    - pip._vendor.pygments.plugin.iter_entry_points
    - <builtin>.getattr
    - importlib_metadata.entry_points
    - pip._vendor.pygments.formatter.Formatter.__init__
    - entrypoint.load
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 58
    functionName: pip._vendor.pygments.formatters.groff.GroffFormatter._make_styles
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - outfile
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 81
    functionName: pip._vendor.pygments.formatters.groff.GroffFormatter._define_colors
    functionSourceFile: pip._vendor.pygments.formatters.groff
    functionUses: 1
    functionsReached:
    - <builtin>.set
    - colors.add
    - <builtin>.sorted
    - outfile.write
    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: colors.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - outfile
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 91
    functionName: pip._vendor.pygments.formatters.groff.GroffFormatter._write_lineno
    functionSourceFile: pip._vendor.pygments.formatters.groff
    functionUses: 1
    functionsReached:
    - outfile.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - line
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 96
    functionName: pip._vendor.pygments.formatters.groff.GroffFormatter._wrap_line
    functionSourceFile: pip._vendor.pygments.formatters.groff
    functionUses: 1
    functionsReached:
    - math.floor
    - <builtin>.len
    - line.rstrip
    - <builtin>.range
    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: math.floor
    functionSourceFile: math
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 119
    functionName: pip._vendor.pygments.formatters.groff.GroffFormatter._escape_chars
    functionSourceFile: pip._vendor.pygments.formatters.groff
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - text.replace
    - char.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tokensource
    - outfile
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 138
    functionName: pip._vendor.pygments.formatters.groff.GroffFormatter.format_unencoded
    functionSourceFile: pip._vendor.pygments.formatters.groff
    functionUses: 0
    functionsReached:
    - line.rstrip
    - char.encode
    - math.floor
    - <builtin>.len
    - <builtin>.sorted
    - pip._vendor.pygments.formatters.groff.GroffFormatter._wrap_line
    - text.replace
    - outfile.write
    - <builtin>.set
    - line.endswith
    - pip._vendor.pygments.formatters.groff.GroffFormatter._define_colors
    - value.splitlines
    - pip._vendor.pygments.formatters.groff.GroffFormatter._escape_chars
    - colors.add
    - pip._vendor.pygments.formatters.groff.GroffFormatter._write_lineno
    - <builtin>.range
    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: 4
    functionLinenumber: -1
    functionName: pip._vendor.requests.help
    functionSourceFile: pip._vendor.requests.help
    functionUses: 0
    functionsReached:
    - platform.python_implementation
    - pip._vendor.requests.help.info
    - <builtin>.print
    - pip._vendor.requests.help.main
    - platform.release
    - <builtin>.getattr
    - pip._vendor.requests.help._implementation
    - json.dumps
    - platform.system
    - platform.python_version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: pip._vendor.requests.help._implementation
    functionSourceFile: pip._vendor.requests.help
    functionUses: 3
    functionsReached:
    - platform.python_version
    - platform.python_implementation
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 66
    functionName: pip._vendor.requests.help.info
    functionSourceFile: pip._vendor.requests.help
    functionUses: 2
    functionsReached:
    - platform.python_implementation
    - platform.release
    - <builtin>.getattr
    - pip._vendor.requests.help._implementation
    - platform.system
    - platform.python_version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 125
    functionName: pip._vendor.requests.help.main
    functionSourceFile: pip._vendor.requests.help
    functionUses: 1
    functionsReached:
    - platform.python_implementation
    - pip._vendor.requests.help.info
    - <builtin>.print
    - platform.release
    - <builtin>.getattr
    - pip._vendor.requests.help._implementation
    - json.dumps
    - platform.system
    - platform.python_version
    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: 2
    functionLinenumber: -1
    functionName: pip._vendor.platformdirs.__main__
    functionSourceFile: pip._vendor.platformdirs.__main__
    functionUses: 0
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - <builtin>.getattr
    - pip._vendor.platformdirs.__main__.main
    - <builtin>.print
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 10
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: pip._vendor.platformdirs.__main__.main
    functionSourceFile: pip._vendor.platformdirs.__main__
    functionUses: 1
    functionsReached:
    - pip._vendor.platformdirs.api.PlatformDirsABC.__init__
    - <builtin>.getattr
    - <builtin>.print
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_requirements':
  - 50
  - 51
  '...fuzz_requirements.TestOneInput':
  - 38
  - 41
  - 26
  - 27
  - 29
  - 31
  '...fuzz_requirements.main':
  - 45
  - 46
  - 47
  pip.__main__:
  - 8
  - 9
  - 13
  - 18
  - 19
  - 21
  - 24
  pip.__pip-runner__:
  - 1
  - 33
  - 47
  - 50
  - 19
  pip.__pip-runner__.PipImportRedirectingFinder.find_spec:
  - 42
  - 39
  pip.__pip-runner__.version_str:
  - 16
  pip._internal:
  - 7
  pip._internal.build_env:
  - 1
  - 28
  - 25
  pip._internal.build_env.BuildEnvironment:
  - 81
  pip._internal.build_env.BuildEnvironment.__enter__:
  - 139
  - 145
  - 146
  - 150
  - 152
  - 154
  pip._internal.build_env.BuildEnvironment.__exit__:
  - 164
  - 165
  - 166
  pip._internal.build_env.BuildEnvironment.__init__:
  - 100
  - 102
  - 103
  - 104
  - 105
  - 106
  - 108
  - 109
  - 84
  - 86
  - 87
  - 93
  - 94
  - 95
  pip._internal.build_env.BuildEnvironment._install_requirements:
  - 256
  - 257
  - 258
  - 259
  - 261
  - 262
  - 263
  - 265
  - 266
  - 267
  - 268
  - 269
  - 270
  - 271
  - 272
  - 273
  - 274
  - 275
  - 244
  - 245
  - 246
  - 247
  - 248
  - 250
  - 251
  pip._internal.build_env.BuildEnvironment.check_requirements:
  - 192
  - 193
  - 195
  - 199
  - 200
  - 173
  - 177
  - 178
  - 179
  - 181
  - 182
  - 183
  - 185
  - 186
  - 189
  - 191
  pip._internal.build_env.BuildEnvironment.install_requirements:
  - 217
  - 218
  - 215
  pip._internal.build_env.NoOpBuildEnvironment:
  - 284
  pip._internal.build_env._Prefix.__init__:
  - 41
  - 39
  pip._internal.build_env._get_system_sitepackages:
  - 69
  - 70
  - 76
  - 77
  - 61
  pip._internal.build_env.get_runnable_pip:
  - 45
  - 50
  - 52
  - 55
  - 57
  pip._internal.cache:
  - 1
  - 21
  pip._internal.cache.Cache:
  - 33
  pip._internal.cache.Cache.__init__:
  - 40
  - 39
  pip._internal.cache.Cache._get_cache_path_parts:
  - 67
  - 44
  - 50
  - 52
  - 60
  - 61
  pip._internal.cache.Cache._get_candidates:
  - 81
  - 82
  - 83
  - 78
  pip._internal.cache.Cache.get:
  - 96
  pip._internal.cache.Cache.get_path_for_link:
  - 87
  pip._internal.cache.CacheEntry.__init__:
  - 193
  - 194
  - 196
  - 197
  - 200
  pip._internal.cache.EphemWheelCache:
  - 173
  pip._internal.cache.EphemWheelCache.__init__:
  - 176
  - 181
  pip._internal.cache.SimpleWheelCache:
  - 103
  pip._internal.cache.SimpleWheelCache.__init__:
  - 106
  pip._internal.cache.SimpleWheelCache.get:
  - 165
  - 136
  - 168
  - 169
  - 139
  - 140
  - 142
  - 145
  - 146
  - 154
  - 157
  - 159
  pip._internal.cache.SimpleWheelCache.get_path_for_link:
  - 123
  - 109
  - 126
  pip._internal.cache.WheelCache:
  - 209
  pip._internal.cache.WheelCache.__init__:
  - 216
  - 217
  - 218
  pip._internal.cache.WheelCache.get:
  - 232
  - 233
  pip._internal.cache.WheelCache.get_cache_entry:
  - 260
  - 261
  - 243
  - 247
  - 252
  - 253
  - 255
  pip._internal.cache.WheelCache.get_ephem_path_for_link:
  - 224
  pip._internal.cache.WheelCache.get_path_for_link:
  - 221
  pip._internal.cache.WheelCache.record_download_origin:
  - 290
  - 267
  - 268
  - 270
  - 272
  - 281
  - 282
  pip._internal.cache._hash_dict:
  - 27
  - 28
  - 29
  pip._internal.cli:
  - 1
  pip._internal.cli.autocompletion:
  - 1
  pip._internal.cli.autocompletion.auto_complete_paths:
  - 161
  - 163
  - 164
  - 165
  - 169
  - 170
  - 171
  - 172
  - 145
  - 153
  - 154
  - 156
  - 158
  pip._internal.cli.autocompletion.autocomplete:
  - 16
  - 18
  - 20
  - 21
  - 27
  - 28
  - 33
  - 34
  - 38
  - 40
  - 41
  - 43
  - 47
  - 48
  - 49
  - 52
  - 53
  - 57
  - 58
  - 59
  - 60
  - 63
  - 65
  - 66
  - 67
  - 68
  - 70
  - 72
  - 73
  - 79
  - 82
  - 84
  - 91
  - 92
  - 94
  - 97
  - 99
  - 104
  - 105
  - 106
  - 107
  - 108
  - 112
  - 113
  - 114
  - 116
  - 117
  pip._internal.cli.autocompletion.get_path_completion_type:
  - 130
  - 132
  - 133
  - 135
  - 136
  - 137
  - 138
  - 123
  pip._internal.cli.base_command:
  - 1
  - 42
  pip._internal.cli.base_command.Command.__init__:
  - 67
  - 68
  - 71
  - 75
  - 77
  - 50
  - 54
  - 56
  - 57
  pip._internal.cli.base_command.Command._main:
  - 128
  - 129
  - 131
  - 139
  - 140
  - 143
  - 149
  - 152
  - 153
  - 155
  - 157
  - 158
  - 159
  - 161
  - 162
  - 163
  - 164
  - 229
  - 230
  - 233
  - 234
  - 236
  - 109
  - 112
  - 114
  - 119
  - 125
  pip._internal.cli.base_command.Command._main.intercepts_unhandled_exc:
  - 177
  pip._internal.cli.base_command.Command._main.intercepts_unhandled_exc.exc_logging_wrapper:
  - 217
  - 199
  - 200
  - 204
  - 205
  - 222
  - 211
  - 180
  - 181
  - 212
  - 213
  - 184
  - 185
  - 218
  - 189
  - 190
  pip._internal.cli.base_command.Command.handle_pip_version_check:
  - 89
  - 83
  pip._internal.cli.base_command.Command.main:
  - 100
  - 101
  - 103
  pip._internal.cli.base_command.Command.parse_args:
  - 96
  pip._internal.cli.cmdoptions:
  - 1
  - 130
  - 900
  - 268
  - 142
  - 532
  - 277
  - 154
  - 287
  - 800
  - 33
  - 677
  - 934
  - 167
  - 810
  - 175
  - 948
  - 182
  - 314
  - 192
  - 960
  - 451
  - 328
  - 201
  - 840
  - 460
  - 717
  - 591
  - 976
  - 210
  - 339
  - 726
  - 854
  - 600
  - 987
  - 863
  - 224
  - 736
  - 612
  - 744
  - 873
  - 234
  - 1002
  - 367
  - 881
  - 755
  - 628
  - 245
  - 121
  - 890
  - 1017
  - 255
  pip._internal.cli.cmdoptions.PipOption:
  - 112
  pip._internal.cli.cmdoptions._convert_python_version:
  - 549
  - 555
  - 559
  - 560
  - 563
  - 566
  - 570
  pip._internal.cli.cmdoptions._get_format_control:
  - 470
  - 471
  pip._internal.cli.cmdoptions._handle_config_settings:
  - 832
  - 833
  - 824
  - 825
  - 826
  - 827
  - 828
  - 830
  - 831
  pip._internal.cli.cmdoptions._handle_merge_hash:
  - 928
  - 931
  - 913
  - 915
  - 918
  - 920
  - 925
  - 926
  - 927
  pip._internal.cli.cmdoptions._handle_no_binary:
  - 477
  - 478
  pip._internal.cli.cmdoptions._handle_no_cache_dir:
  - 705
  - 691
  - 700
  - 703
  pip._internal.cli.cmdoptions._handle_no_use_pep517:
  - 768
  - 777
  - 784
  - 789
  - 792
  - 794
  pip._internal.cli.cmdoptions._handle_only_binary:
  - 488
  - 489
  pip._internal.cli.cmdoptions._handle_python_version:
  - 584
  - 586
  - 580
  - 583
  pip._internal.cli.cmdoptions._handle_src:
  - 448
  - 447
  pip._internal.cli.cmdoptions._package_name_option_check:
  - 107
  pip._internal.cli.cmdoptions._path_option_check:
  - 103
  pip._internal.cli.cmdoptions.add_target_python_options:
  - 648
  - 649
  - 650
  - 647
  pip._internal.cli.cmdoptions.check_dist_restriction:
  - 68
  - 77
  - 85
  - 95
  - 94
  - 63
  pip._internal.cli.cmdoptions.check_list_path_option:
  - 972
  pip._internal.cli.cmdoptions.constraints:
  - 406
  pip._internal.cli.cmdoptions.editable:
  - 432
  pip._internal.cli.cmdoptions.exists_action:
  - 300
  pip._internal.cli.cmdoptions.extra_index_url:
  - 355
  pip._internal.cli.cmdoptions.find_links:
  - 378
  pip._internal.cli.cmdoptions.make_option_group:
  - 56
  - 57
  - 58
  - 51
  pip._internal.cli.cmdoptions.make_target_python:
  - 654
  pip._internal.cli.cmdoptions.no_binary:
  - 497
  - 498
  pip._internal.cli.cmdoptions.only_binary:
  - 515
  - 516
  pip._internal.cli.cmdoptions.prefer_binary:
  - 665
  pip._internal.cli.cmdoptions.raise_option_error:
  - 37
  - 46
  - 47
  pip._internal.cli.cmdoptions.requirements:
  - 419
  pip._internal.cli.cmdoptions.trusted_host:
  - 394
  pip._internal.cli.command_context:
  - 4
  pip._internal.cli.command_context.CommandContextMixIn.__init__:
  - 9
  - 11
  pip._internal.cli.command_context.CommandContextMixIn.enter_context:
  - 27
  pip._internal.cli.command_context.CommandContextMixIn.main_context:
  - 20
  pip._internal.cli.main:
  - 16
  - 1
  pip._internal.cli.main.main:
  - 64
  - 66
  - 67
  - 68
  - 73
  - 76
  - 77
  - 47
  - 79
  - 54
  - 59
  - 61
  pip._internal.cli.main_parser:
  - 1
  pip._internal.cli.main_parser.create_main_parser:
  - 34
  - 35
  - 43
  - 45
  - 20
  - 22
  - 25
  - 27
  - 29
  - 31
  pip._internal.cli.main_parser.identify_python_interpreter:
  - 54
  - 55
  - 58
  - 59
  - 60
  pip._internal.cli.main_parser.parse_command:
  - 132
  - 70
  - 79
  - 82
  - 84
  - 85
  - 92
  - 94
  - 101
  - 105
  - 108
  - 109
  - 110
  - 111
  - 114
  - 115
  - 116
  - 121
  - 122
  - 125
  - 126
  pip._internal.cli.parser:
  - 1
  - 15
  pip._internal.cli.parser.ConfigOptionParser:
  - 155
  pip._internal.cli.parser.ConfigOptionParser.__init__:
  - 169
  - 166
  pip._internal.cli.parser.ConfigOptionParser._get_ordered_configuration_items:
  - 197
  - 198
  - 199
  - 202
  - 203
  - 204
  - 188
  - 190
  - 191
  pip._internal.cli.parser.ConfigOptionParser._update_defaults:
  - 259
  - 261
  - 265
  - 266
  - 207
  - 212
  - 213
  - 215
  - 217
  - 222
  - 227
  - 229
  - 231
  - 236
  - 237
  - 238
  - 239
  - 240
  - 241
  - 242
  - 248
  - 249
  - 250
  - 251
  - 253
  - 254
  - 255
  pip._internal.cli.parser.ConfigOptionParser.check_default:
  - 176
  - 173
  - 175
  pip._internal.cli.parser.ConfigOptionParser.error:
  - 293
  - 294
  pip._internal.cli.parser.ConfigOptionParser.get_default_values:
  - 288
  - 289
  - 290
  - 271
  - 273
  - 275
  - 279
  - 281
  - 283
  - 284
  - 286
  - 287
  pip._internal.cli.parser.CustomOptionParser.insert_option_group:
  - 136
  - 137
  - 139
  - 140
  pip._internal.cli.parser.CustomOptionParser.option_list_all:
  - 146
  - 148
  - 149
  pip._internal.cli.parser.PrettyHelpFormatter:
  - 19
  pip._internal.cli.parser.PrettyHelpFormatter.__init__:
  - 25
  - 26
  pip._internal.cli.parser.PrettyHelpFormatter._format_option_strings:
  - 34
  - 43
  - 44
  - 45
  - 46
  - 47
  - 48
  - 50
  - 52
  - 53
  - 55
  pip._internal.cli.parser.PrettyHelpFormatter.format_description:
  - 72
  - 73
  - 78
  - 80
  - 82
  pip._internal.cli.parser.PrettyHelpFormatter.format_epilog:
  - 90
  pip._internal.cli.parser.PrettyHelpFormatter.format_heading:
  - 58
  pip._internal.cli.parser.PrettyHelpFormatter.format_option_strings:
  - 29
  pip._internal.cli.parser.PrettyHelpFormatter.format_usage:
  - 67
  - 63
  pip._internal.cli.parser.PrettyHelpFormatter.indent_lines:
  - 96
  - 97
  pip._internal.cli.parser.UpdatingDefaultsHelpFormatter:
  - 101
  pip._internal.cli.parser.UpdatingDefaultsHelpFormatter.expand_default:
  - 111
  - 112
  - 113
  - 115
  - 116
  - 118
  - 119
  - 123
  - 126
  - 127
  pip._internal.cli.progress_bars._rich_progress_bar:
  - 33
  - 34
  - 35
  - 36
  - 37
  - 42
  - 43
  - 44
  - 45
  - 46
  - 47
  - 50
  - 51
  - 53
  - 54
  - 55
  - 30
  - 31
  pip._internal.cli.progress_bars.get_download_progress_renderer:
  - 65
  - 66
  - 61
  pip._internal.cli.req_command:
  - 1
  - 44
  - 47
  pip._internal.cli.req_command.IndexGroupCommand:
  - 158
  pip._internal.cli.req_command.IndexGroupCommand.handle_pip_version_check:
  - 165
  - 171
  - 173
  - 177
  - 180
  - 188
  pip._internal.cli.req_command.RequirementCommand.__init__:
  - 258
  - 260
  pip._internal.cli.req_command.RequirementCommand._build_package_finder:
  - 501
  - 492
  - 493
  - 486
  pip._internal.cli.req_command.RequirementCommand.determine_resolver_variant:
  - 264
  - 265
  pip._internal.cli.req_command.RequirementCommand.get_requirements:
  - 391
  - 395
  - 396
  - 403
  - 408
  - 410
  - 411
  - 417
  - 419
  - 421
  - 422
  - 427
  - 429
  - 432
  - 433
  - 436
  - 441
  - 445
  - 448
  - 451
  - 453
  pip._internal.cli.req_command.RequirementCommand.make_requirement_preparer:
  - 289
  - 290
  - 292
  - 293
  - 303
  - 304
  - 308
  - 282
  pip._internal.cli.req_command.RequirementCommand.make_resolver:
  - 352
  - 355
  - 370
  - 340
  - 343
  - 348
  pip._internal.cli.req_command.RequirementCommand.trace_basic_info:
  - 475
  - 476
  - 477
  - 470
  pip._internal.cli.req_command.SessionCommandMixin:
  - 70
  pip._internal.cli.req_command.SessionCommandMixin.__init__:
  - 75
  pip._internal.cli.req_command.SessionCommandMixin._build_session:
  - 131
  - 135
  - 139
  - 110
  - 143
  - 112
  - 114
  - 116
  - 122
  - 123
  - 126
  pip._internal.cli.req_command.SessionCommandMixin._get_index_urls:
  - 80
  - 82
  - 83
  - 84
  - 85
  - 86
  - 87
  - 88
  pip._internal.cli.req_command.SessionCommandMixin.get_default_session:
  - 93
  - 94
  - 95
  pip._internal.cli.req_command._create_truststore_ssl_context:
  - 65
  - 57
  - 51
  pip._internal.cli.req_command.warn_if_run_as_root:
  - 199
  - 205
  - 207
  - 214
  - 217
  - 220
  pip._internal.cli.req_command.with_cleanup:
  - 229
  pip._internal.cli.req_command.with_cleanup.configure_tempdir_registry:
  - 234
  - 235
  pip._internal.cli.req_command.with_cleanup.wrapper:
  - 241
  - 242
  - 250
  - 245
  pip._internal.cli.spinners:
  - 11
  pip._internal.cli.spinners.InteractiveSpinner.__init__:
  - 32
  - 40
  - 35
  - 38
  pip._internal.cli.spinners.InteractiveSpinner._write:
  - 48
  - 50
  - 51
  - 52
  - 53
  pip._internal.cli.spinners.InteractiveSpinner.finish:
  - 65
  - 66
  - 67
  - 63
  pip._internal.cli.spinners.InteractiveSpinner.spin:
  - 56
  - 58
  - 60
  pip._internal.cli.spinners.NonInteractiveSpinner.__init__:
  - 80
  - 79
  pip._internal.cli.spinners.NonInteractiveSpinner._update:
  - 84
  - 85
  pip._internal.cli.spinners.NonInteractiveSpinner.finish:
  - 97
  - 95
  pip._internal.cli.spinners.NonInteractiveSpinner.spin:
  - 88
  - 90
  - 92
  pip._internal.cli.spinners.RateLimiter.ready:
  - 107
  pip._internal.cli.spinners.RateLimiter.reset:
  - 112
  pip._internal.cli.spinners.hidden_cursor:
  - 147
  - 148
  - 152
  - 153
  - 155
  - 157
  - 159
  pip._internal.cli.spinners.open_spinner:
  - 128
  - 130
  - 133
  - 136
  - 122
  - 123
  - 125
  - 127
  pip._internal.commands:
  - 1
  - 11
  - 21
  - 26
  - 31
  - 36
  - 41
  - 46
  - 51
  - 56
  - 61
  - 66
  - 71
  - 76
  - 81
  - 86
  - 91
  - 96
  - 101
  pip._internal.commands.cache:
  - 12
  pip._internal.commands.cache.CacheCommand:
  - 16
  pip._internal.commands.cache.CacheCommand._cache_dir:
  - 195
  pip._internal.commands.cache.CacheCommand._find_http_files:
  - 200
  - 198
  - 199
  pip._internal.commands.cache.CacheCommand._find_wheels:
  - 225
  - 205
  pip._internal.commands.cache.CacheCommand.add_options:
  - 40
  - 49
  pip._internal.commands.cache.CacheCommand.format_for_abspath:
  - 160
  - 161
  pip._internal.commands.cache.CacheCommand.format_for_human:
  - 147
  - 148
  - 152
  - 153
  - 154
  - 155
  - 156
  - 157
  pip._internal.commands.cache.CacheCommand.get_cache_dir:
  - 84
  - 87
  pip._internal.commands.cache.CacheCommand.get_cache_info:
  - 96
  - 97
  - 98
  - 99
  - 100
  - 101
  - 129
  - 103
  - 106
  - 90
  - 93
  - 94
  pip._internal.commands.cache.CacheCommand.list_cache_items:
  - 132
  - 135
  - 140
  - 141
  - 142
  - 144
  pip._internal.commands.cache.CacheCommand.purge_cache:
  - 192
  - 189
  pip._internal.commands.cache.CacheCommand.remove_cache_items:
  - 164
  - 167
  - 170
  - 173
  - 175
  - 180
  - 181
  - 183
  - 184
  - 185
  - 186
  pip._internal.commands.cache.CacheCommand.run:
  - 65
  - 66
  - 68
  - 76
  - 78
  - 60
  - 61
  pip._internal.commands.check:
  - 14
  pip._internal.commands.check.CheckCommand:
  - 18
  pip._internal.commands.check.CheckCommand.run:
  - 38
  - 40
  - 41
  - 50
  - 53
  - 24
  - 25
  - 26
  - 28
  - 30
  - 31
  pip._internal.commands.completion.CompletionCommand:
  - 76
  pip._internal.commands.completion.CompletionCommand.add_options:
  - 97
  - 105
  - 81
  - 114
  - 89
  pip._internal.commands.completion.CompletionCommand.run:
  - 128
  - 117
  - 118
  - 119
  - 120
  - 121
  - 122
  - 124
  - 127
  pip._internal.commands.configuration:
  - 19
  pip._internal.commands.configuration.ConfigurationCommand:
  - 23
  pip._internal.commands.configuration.ConfigurationCommand._determine_editor:
  - 273
  - 275
  - 277
  pip._internal.commands.configuration.ConfigurationCommand._determine_file:
  - 163
  - 152
  - 153
  - 156
  - 157
  - 158
  pip._internal.commands.configuration.ConfigurationCommand._get_n_args:
  - 248
  - 249
  - 252
  - 256
  pip._internal.commands.configuration.ConfigurationCommand._save_configuration:
  - 265
  - 267
  pip._internal.commands.configuration.ConfigurationCommand.add_options:
  - 70
  - 78
  - 86
  - 59
  - 94
  pip._internal.commands.configuration.ConfigurationCommand.get_name:
  - 178
  - 179
  - 181
  pip._internal.commands.configuration.ConfigurationCommand.list_config_values:
  - 196
  - 197
  - 199
  - 202
  - 203
  - 204
  - 205
  - 206
  - 207
  - 208
  - 209
  pip._internal.commands.configuration.ConfigurationCommand.list_values:
  - 172
  - 174
  - 175
  pip._internal.commands.configuration.ConfigurationCommand.open_in_editor:
  - 226
  - 228
  - 229
  - 231
  - 239
  - 241
  pip._internal.commands.configuration.ConfigurationCommand.print_config_file_values:
  - 212
  - 213
  - 214
  - 215
  pip._internal.commands.configuration.ConfigurationCommand.print_env_var_values:
  - 218
  - 219
  - 220
  - 221
  - 222
  - 223
  pip._internal.commands.configuration.ConfigurationCommand.run:
  - 130
  - 134
  - 136
  - 107
  - 108
  - 110
  - 119
  - 123
  - 127
  pip._internal.commands.configuration.ConfigurationCommand.set_name_value:
  - 184
  - 185
  - 187
  pip._internal.commands.configuration.ConfigurationCommand.unset_name:
  - 193
  - 190
  - 191
  pip._internal.commands.create_command:
  - 114
  - 115
  - 116
  - 110
  pip._internal.commands.debug:
  - 23
  pip._internal.commands.debug.DebugCommand:
  - 159
  pip._internal.commands.debug.DebugCommand.add_options:
  - 168
  - 169
  - 170
  pip._internal.commands.debug.DebugCommand.run:
  - 192
  - 193
  - 194
  - 195
  - 197
  - 199
  - 173
  - 179
  - 180
  - 181
  - 182
  - 183
  - 184
  - 186
  - 188
  - 189
  - 191
  pip._internal.commands.debug.ca_bundle_info:
  - 142
  - 143
  - 150
  - 153
  - 154
  - 155
  pip._internal.commands.debug.create_vendor_txt_map:
  - 46
  - 42
  - 38
  pip._internal.commands.debug.get_module_from_module_name:
  - 51
  - 53
  - 57
  - 58
  - 62
  pip._internal.commands.debug.get_vendor_version_from_module:
  - 68
  - 69
  - 71
  - 74
  - 75
  - 76
  - 77
  pip._internal.commands.debug.show_actual_vendor_versions:
  - 100
  - 83
  - 86
  - 88
  - 89
  - 95
  pip._internal.commands.debug.show_sys_implementation:
  - 33
  - 34
  - 31
  pip._internal.commands.debug.show_tags:
  - 132
  - 133
  - 134
  - 136
  - 138
  - 114
  - 115
  - 118
  - 120
  - 123
  - 124
  - 126
  pip._internal.commands.debug.show_value:
  - 27
  pip._internal.commands.debug.show_vendor_versions:
  - 104
  - 106
  - 107
  - 108
  pip._internal.commands.download:
  - 15
  pip._internal.commands.download.DownloadCommand:
  - 19
  pip._internal.commands.download.DownloadCommand.add_options:
  - 39
  - 40
  - 41
  - 42
  - 43
  - 44
  - 45
  - 46
  - 47
  - 48
  - 49
  - 50
  - 51
  - 52
  - 53
  - 54
  - 56
  - 67
  - 69
  - 74
  - 75
  pip._internal.commands.download.DownloadCommand.run:
  - 130
  - 132
  - 135
  - 136
  - 138
  - 139
  - 141
  - 142
  - 144
  - 145
  - 84
  - 86
  - 87
  - 89
  - 91
  - 92
  - 99
  - 101
  - 107
  - 108
  - 110
  - 121
  pip._internal.commands.freeze.FreezeCommand:
  - 26
  pip._internal.commands.freeze.FreezeCommand.add_options:
  - 68
  - 69
  - 37
  - 74
  - 75
  - 78
  - 50
  - 84
  - 86
  - 61
  pip._internal.commands.freeze.FreezeCommand.run:
  - 96
  - 98
  - 107
  - 89
  - 90
  - 91
  - 93
  - 94
  pip._internal.commands.freeze._dev_pkgs:
  - 19
  pip._internal.commands.get_similar_commands:
  - 129
  - 122
  - 125
  - 127
  pip._internal.commands.hash:
  - 12
  pip._internal.commands.hash.HashCommand:
  - 16
  pip._internal.commands.hash.HashCommand.add_options:
  - 35
  - 34
  - 27
  - 38
  pip._internal.commands.hash.HashCommand.run:
  - 41
  - 42
  - 46
  - 47
  - 48
  pip._internal.commands.hash._hash_of_file:
  - 54
  - 55
  - 56
  - 57
  - 58
  - 59
  pip._internal.commands.help.HelpCommand:
  - 10
  pip._internal.commands.help.HelpCommand.run:
  - 33
  - 34
  - 38
  - 39
  - 29
  - 30
  pip._internal.commands.index:
  - 19
  pip._internal.commands.index.IndexCommand:
  - 23
  pip._internal.commands.index.IndexCommand._build_package_finder:
  - 88
  - 97
  - 91
  - 85
  pip._internal.commands.index.IndexCommand.add_options:
  - 33
  - 35
  - 36
  - 37
  - 38
  - 40
  - 45
  - 46
  pip._internal.commands.index.IndexCommand.get_available_package_versions:
  - 129
  - 134
  - 104
  - 137
  - 138
  - 107
  - 139
  - 110
  - 111
  - 119
  - 122
  - 127
  pip._internal.commands.index.IndexCommand.run:
  - 71
  - 73
  - 53
  - 60
  - 61
  - 63
  pip._internal.commands.inspect:
  - 16
  pip._internal.commands.inspect.InspectCommand:
  - 20
  pip._internal.commands.inspect.InspectCommand._dist_to_dict:
  - 73
  - 74
  - 78
  - 80
  - 87
  - 90
  pip._internal.commands.inspect.InspectCommand.add_options:
  - 46
  - 45
  - 29
  - 38
  pip._internal.commands.inspect.InspectCommand.run:
  - 49
  - 50
  - 53
  - 58
  - 59
  - 62
  pip._internal.commands.install:
  - 49
  pip._internal.commands.install.InstallCommand:
  - 53
  pip._internal.commands.install.InstallCommand._determine_conflicts:
  - 577
  - 575
  pip._internal.commands.install.InstallCommand._handle_target_dir:
  - 520
  - 528
  - 533
  - 534
  - 535
  - 536
  - 537
  - 538
  - 540
  - 541
  - 542
  - 543
  - 544
  - 546
  - 547
  - 548
  - 549
  - 555
  - 556
  - 564
  - 565
  - 567
  - 569
  pip._internal.commands.install.InstallCommand._warn_about_conflicts:
  - 608
  - 613
  - 615
  - 631
  - 617
  - 618
  - 587
  - 591
  - 592
  - 629
  - 599
  - 606
  pip._internal.commands.install.InstallCommand.add_options:
  - 129
  - 145
  - 147
  - 159
  - 175
  - 182
  - 195
  - 196
  - 197
  - 198
  - 199
  - 200
  - 73
  - 74
  - 75
  - 76
  - 202
  - 78
  - 79
  - 203
  - 205
  - 213
  - 90
  - 220
  - 227
  - 103
  - 105
  - 234
  - 235
  - 236
  - 237
  - 238
  - 239
  - 241
  - 116
  - 246
  - 247
  - 249
  - 122
  pip._internal.commands.install.InstallCommand.run:
  - 384
  - 513
  - 386
  - 387
  - 514
  - 389
  - 510
  - 392
  - 393
  - 267
  - 397
  - 398
  - 400
  - 405
  - 281
  - 412
  - 285
  - 288
  - 416
  - 417
  - 291
  - 420
  - 293
  - 294
  - 428
  - 304
  - 306
  - 307
  - 436
  - 309
  - 310
  - 443
  - 444
  - 318
  - 320
  - 449
  - 324
  - 452
  - 326
  - 327
  - 333
  - 335
  - 463
  - 342
  - 343
  - 470
  - 345
  - 472
  - 474
  - 477
  - 350
  - 478
  - 353
  - 482
  - 484
  - 485
  - 487
  - 362
  - 490
  - 491
  - 492
  - 499
  - 375
  - 504
  - 377
  - 508
  - 381
  - 382
  - 383
  pip._internal.commands.install.create_os_error_message:
  - 764
  - 742
  - 774
  - 746
  - 747
  - 723
  - 755
  - 756
  - 760
  - 730
  - 731
  - 732
  - 733
  - 766
  - 735
  pip._internal.commands.install.decide_user_install:
  - 704
  - 676
  - 677
  - 709
  - 710
  - 680
  - 681
  - 713
  - 686
  - 691
  - 698
  - 666
  - 699
  - 703
  pip._internal.commands.install.get_lib_location_guesses:
  - 641
  pip._internal.commands.install.site_packages_writable:
  - 653
  - 654
  - 655
  pip._internal.commands.list:
  - 20
  - 36
  pip._internal.commands.list.ListCommand:
  - 40
  pip._internal.commands.list.ListCommand._build_package_finder:
  - 144
  - 152
  - 147
  - 141
  pip._internal.commands.list.ListCommand.add_options:
  - 65
  - 100
  - 90
  - 132
  - 133
  - 72
  - 135
  - 136
  - 112
  - 82
  - 51
  - 119
  - 89
  - 58
  - 125
  pip._internal.commands.list.ListCommand.get_not_required:
  - 220
  - 228
  - 222
  pip._internal.commands.list.ListCommand.get_outdated:
  - 203
  pip._internal.commands.list.ListCommand.get_uptodate:
  - 212
  pip._internal.commands.list.ListCommand.iter_packages_latest_infos:
  - 264
  - 233
  - 234
  - 266
  - 265
  pip._internal.commands.list.ListCommand.iter_packages_latest_infos.latest_info:
  - 256
  - 239
  - 240
  - 248
  - 251
  - 252
  pip._internal.commands.list.ListCommand.output_package_listing:
  - 271
  - 273
  - 275
  - 276
  - 277
  - 278
  - 279
  - 280
  - 281
  - 285
  - 286
  - 287
  pip._internal.commands.list.ListCommand.output_package_listing_columns:
  - 293
  - 294
  - 296
  - 299
  - 300
  - 302
  - 303
  pip._internal.commands.list.ListCommand.run:
  - 192
  - 161
  - 193
  - 195
  - 166
  - 168
  - 169
  - 170
  - 173
  - 174
  - 190
  - 187
  - 188
  - 158
  - 191
  pip._internal.commands.list._DistWithLatestInfo:
  - 24
  pip._internal.commands.list.format_for_columns:
  - 309
  - 316
  - 317
  - 319
  - 320
  - 321
  - 323
  - 324
  - 325
  - 326
  - 329
  - 334
  - 335
  - 336
  - 338
  - 339
  - 341
  - 342
  - 343
  - 344
  - 346
  pip._internal.commands.list.format_for_json:
  - 353
  - 356
  - 358
  - 361
  - 362
  - 365
  - 367
  - 368
  pip._internal.commands.search:
  - 22
  - 30
  pip._internal.commands.search.SearchCommand:
  - 34
  pip._internal.commands.search.SearchCommand.add_options:
  - 41
  - 50
  pip._internal.commands.search.SearchCommand.run:
  - 64
  - 53
  - 56
  - 57
  - 60
  - 61
  - 63
  pip._internal.commands.search.SearchCommand.search:
  - 71
  - 73
  - 74
  - 76
  - 78
  - 83
  pip._internal.commands.search.highest_version:
  - 173
  pip._internal.commands.search.print_dist_installation_info:
  - 131
  - 116
  - 117
  - 118
  - 119
  - 120
  - 121
  - 123
  - 124
  - 125
  pip._internal.commands.search.print_results:
  - 160
  - 161
  - 166
  - 167
  - 139
  - 141
  - 143
  - 145
  - 152
  - 155
  - 156
  - 158
  pip._internal.commands.search.transform_hits:
  - 99
  - 106
  - 109
  - 112
  - 88
  - 93
  - 94
  pip._internal.commands.show:
  - 12
  pip._internal.commands.show.ShowCommand:
  - 16
  pip._internal.commands.show.ShowCommand.add_options:
  - 27
  - 36
  pip._internal.commands.show.ShowCommand.run:
  - 40
  - 44
  - 45
  - 39
  pip._internal.commands.show.print_results:
  - 150
  - 154
  - 156
  - 157
  - 159
  - 160
  - 161
  - 162
  - 163
  - 164
  - 165
  - 166
  - 167
  - 168
  - 171
  - 172
  - 174
  - 175
  - 176
  - 177
  - 178
  - 179
  - 180
  - 181
  - 182
  - 183
  - 184
  - 185
  - 186
  - 187
  - 188
  - 189
  - 191
  - 192
  pip._internal.commands.show.search_packages_info:
  - 133
  - 134
  - 135
  - 136
  - 137
  - 138
  - 139
  - 73
  - 79
  - 81
  - 82
  - 83
  - 84
  - 86
  - 87
  - 97
  - 103
  - 105
  - 108
  - 111
  - 112
  - 116
  - 117
  - 120
  - 124
  - 126
  pip._internal.commands.show.search_packages_info._get_requiring_packages:
  - 92
  - 94
  pip._internal.commands.uninstall:
  - 22
  pip._internal.commands.uninstall.UninstallCommand:
  - 26
  pip._internal.commands.uninstall.UninstallCommand.add_options:
  - 41
  - 53
  - 60
  - 61
  - 62
  pip._internal.commands.uninstall.UninstallCommand.run:
  - 65
  - 68
  - 69
  - 73
  - 74
  - 76
  - 82
  - 83
  - 86
  - 89
  - 90
  - 91
  - 97
  - 98
  - 100
  - 104
  - 105
  - 109
  - 110
  - 111
  - 112
  pip._internal.commands.wheel:
  - 21
  pip._internal.commands.wheel.WheelCommand:
  - 25
  pip._internal.commands.wheel.WheelCommand.add_options:
  - 45
  - 56
  - 57
  - 58
  - 59
  - 60
  - 61
  - 62
  - 63
  - 64
  - 65
  - 66
  - 67
  - 68
  - 69
  - 71
  - 79
  - 80
  - 81
  - 83
  - 93
  - 95
  - 100
  - 101
  pip._internal.commands.wheel.WheelCommand.run:
  - 136
  - 145
  - 147
  - 150
  - 151
  - 152
  - 153
  - 154
  - 156
  - 157
  - 160
  - 167
  - 172
  - 174
  - 179
  - 180
  - 105
  - 107
  - 109
  - 110
  - 112
  - 114
  - 120
  - 121
  - 123
  - 125
  pip._internal.configuration:
  - 46
  - 1
  - 36
  - 30
  pip._internal.configuration.Configuration:
  - 88
  pip._internal.configuration.Configuration.__init__:
  - 104
  - 102
  pip._internal.configuration.Configuration._construct_parser:
  - 283
  - 284
  - 278
  - 286
  pip._internal.configuration.Configuration._dictionary:
  - 240
  - 234
  - 239
  pip._internal.configuration.Configuration._ensure_have_load_only:
  - 228
  - 230
  pip._internal.configuration.Configuration._get_parser_to_modify:
  - 367
  pip._internal.configuration.Configuration._load_config_files:
  - 258
  - 259
  - 262
  - 265
  - 245
  - 246
  - 247
  - 248
  - 254
  - 255
  pip._internal.configuration.Configuration._load_environment_vars:
  - 299
  - 300
  - 301
  pip._internal.configuration.Configuration._load_file:
  - 268
  - 269
  - 271
  - 272
  - 273
  pip._internal.configuration.Configuration._mark_as_modified:
  - 379
  - 380
  pip._internal.configuration.Configuration._normalized_keys:
  - 313
  - 314
  - 307
  pip._internal.configuration.Configuration.get_environ_vars:
  - 320
  - 321
  - 322
  - 323
  - 324
  - 319
  pip._internal.configuration.Configuration.get_file_to_edit:
  - 129
  - 133
  pip._internal.configuration.Configuration.get_value:
  - 144
  - 146
  - 152
  pip._internal.configuration.Configuration.get_values_in_config:
  - 360
  pip._internal.configuration.Configuration.items:
  - 138
  - 141
  pip._internal.configuration.Configuration.iter_config_files:
  - 352
  - 354
  - 355
  - 357
  - 328
  - 338
  - 339
  - 341
  - 345
  - 347
  - 349
  pip._internal.configuration.Configuration.load:
  - 123
  - 124
  - 125
  - 126
  pip._internal.configuration.Configuration.save:
  - 204
  - 205
  - 207
  - 208
  - 211
  - 215
  - 216
  pip._internal.configuration.Configuration.set_value:
  - 161
  - 163
  - 164
  - 167
  - 168
  - 169
  - 172
  - 156
  - 157
  - 158
  pip._internal.configuration.Configuration.unset_value:
  - 197
  - 198
  - 199
  - 175
  - 177
  - 178
  - 181
  - 184
  - 186
  - 187
  - 188
  - 189
  pip._internal.configuration._disassemble_key:
  - 65
  - 59
  pip._internal.configuration._normalize_name:
  - 51
  - 52
  - 53
  pip._internal.configuration.get_configuration_files:
  - 70
  - 73
  - 74
  - 75
  - 79
  pip._internal.distributions.base.AbstractDistribution:
  - 10
  pip._internal.distributions.base.AbstractDistribution.__init__:
  - 29
  pip._internal.distributions.base.AbstractDistribution.build_tracker_id:
  - 34
  pip._internal.distributions.installed.InstalledDistribution:
  - 9
  pip._internal.distributions.make_distribution_for_install_requirement:
  - 10
  - 13
  - 14
  - 17
  - 18
  - 21
  pip._internal.distributions.sdist:
  - 11
  pip._internal.distributions.sdist.SourceDistribution:
  - 15
  pip._internal.distributions.sdist.SourceDistribution._get_build_requires_editable:
  - 105
  - 110
  - 111
  pip._internal.distributions.sdist.SourceDistribution._get_build_requires_wheel:
  - 97
  - 100
  - 101
  pip._internal.distributions.sdist.SourceDistribution._install_build_reqs:
  - 128
  - 117
  - 122
  - 124
  - 125
  - 126
  - 127
  pip._internal.distributions.sdist.SourceDistribution._prepare_build_backend:
  - 75
  - 76
  - 79
  - 82
  - 83
  - 84
  - 85
  - 89
  - 92
  pip._internal.distributions.sdist.SourceDistribution._raise_conflicts:
  - 144
  - 139
  - 142
  pip._internal.distributions.sdist.SourceDistribution._raise_missing_reqs:
  - 153
  - 154
  pip._internal.distributions.sdist.SourceDistribution.build_tracker_id:
  - 23
  pip._internal.distributions.sdist.SourceDistribution.get_metadata_distribution:
  - 28
  pip._internal.distributions.sdist.SourceDistribution.prepare_distribution_metadata:
  - 64
  - 65
  - 66
  - 67
  - 37
  - 41
  - 44
  - 52
  - 54
  - 57
  - 60
  - 63
  pip._internal.distributions.wheel.WheelDistribution:
  - 15
  pip._internal.distributions.wheel.WheelDistribution.get_metadata_distribution:
  - 32
  - 25
  - 31
  pip._internal.exceptions:
  - 1
  - 29
  - 23
  pip._internal.exceptions.BadCommand:
  - 279
  pip._internal.exceptions.BestVersionAlreadyInstalled:
  - 274
  pip._internal.exceptions.CommandError:
  - 283
  pip._internal.exceptions.ConfigurationError:
  - 179
  pip._internal.exceptions.ConfigurationFileCouldNotBeLoaded:
  - 628
  pip._internal.exceptions.ConfigurationFileCouldNotBeLoaded.__init__:
  - 636
  pip._internal.exceptions.ConfigurationFileCouldNotBeLoaded.__str__:
  - 642
  pip._internal.exceptions.DiagnosticPipError:
  - 61
  pip._internal.exceptions.DiagnosticPipError.__init__:
  - 88
  - 101
  - 85
  - 86
  pip._internal.exceptions.DiagnosticPipError.__rich_console__:
  - 133
  - 140
  - 147
  - 148
  - 149
  - 150
  - 152
  - 153
  - 155
  - 156
  - 162
  - 163
  - 170
  - 171
  - 172
  - 121
  - 122
  - 124
  - 126
  - 127
  pip._internal.exceptions.DirectoryUrlHashUnsupported:
  - 501
  pip._internal.exceptions.DistributionNotFound:
  - 266
  pip._internal.exceptions.ExternallyManagedEnvironment:
  - 658
  pip._internal.exceptions.ExternallyManagedEnvironment.__init__:
  - 673
  - 674
  - 683
  - 670
  - 671
  pip._internal.exceptions.ExternallyManagedEnvironment._iter_externally_managed_error_keys:
  - 705
  - 706
  - 698
  - 699
  - 700
  - 701
  - 702
  - 703
  pip._internal.exceptions.ExternallyManagedEnvironment.from_config:
  - 713
  - 715
  - 717
  - 718
  - 719
  - 725
  - 726
  - 727
  pip._internal.exceptions.HashError:
  - 444
  pip._internal.exceptions.HashError.__str__:
  - 477
  pip._internal.exceptions.HashError._requirement_name:
  - 480
  - 486
  pip._internal.exceptions.HashError.body:
  - 465
  - 474
  pip._internal.exceptions.HashErrors:
  - 421
  pip._internal.exceptions.HashErrors.__bool__:
  - 440
  pip._internal.exceptions.HashErrors.__str__:
  - 431
  - 432
  - 433
  - 434
  - 435
  - 436
  pip._internal.exceptions.HashErrors.append:
  - 427
  pip._internal.exceptions.HashMismatch:
  - 565
  pip._internal.exceptions.HashMismatch.__init__:
  - 583
  pip._internal.exceptions.HashMismatch._hash_comparison:
  - 613
  - 614
  - 615
  - 616
  - 617
  - 619
  - 596
  pip._internal.exceptions.HashMismatch._hash_comparison.hash_then_or:
  - 610
  pip._internal.exceptions.HashMismatch.body:
  - 593
  pip._internal.exceptions.HashMissing:
  - 512
  pip._internal.exceptions.HashMissing.__init__:
  - 526
  pip._internal.exceptions.HashMissing.body:
  - 537
  - 546
  - 548
  pip._internal.exceptions.HashUnpinned:
  - 554
  pip._internal.exceptions.InstallationError:
  - 183
  pip._internal.exceptions.InstallationSubprocessError:
  - 361
  pip._internal.exceptions.InstallationSubprocessError.__init__:
  - 372
  - 373
  - 376
  - 377
  - 378
  - 381
  - 383
  pip._internal.exceptions.InvalidPyProjectBuildRequires:
  - 208
  pip._internal.exceptions.InvalidPyProjectBuildRequires.__init__:
  - 220
  - 213
  - 214
  - 215
  pip._internal.exceptions.InvalidSchemeCombination.__str__:
  - 261
  pip._internal.exceptions.InvalidWheel:
  - 327
  pip._internal.exceptions.InvalidWheelFilename:
  - 319
  pip._internal.exceptions.MetadataGenerationFailed.__init__:
  - 409
  - 411
  pip._internal.exceptions.MetadataInconsistent:
  - 338
  pip._internal.exceptions.MissingPyProjectBuildRequires:
  - 191
  pip._internal.exceptions.MissingPyProjectBuildRequires.__init__:
  - 203
  - 196
  - 197
  - 198
  pip._internal.exceptions.NetworkConnectionError:
  - 291
  pip._internal.exceptions.NetworkConnectionError.__init__:
  - 312
  - 306
  - 299
  - 309
  pip._internal.exceptions.NetworkConnectionError.__str__:
  - 315
  pip._internal.exceptions.NoneMetadataError:
  - 225
  pip._internal.exceptions.NoneMetadataError.__init__:
  - 238
  pip._internal.exceptions.PipError:
  - 57
  pip._internal.exceptions.PreviousBuildDirError:
  - 287
  pip._internal.exceptions.RequirementsFileParseError:
  - 270
  pip._internal.exceptions.UninstallationError:
  - 187
  pip._internal.exceptions.UnsupportedPythonVersion:
  - 623
  pip._internal.exceptions.UnsupportedWheel:
  - 323
  pip._internal.exceptions.UserInstallationInvalid:
  - 253
  pip._internal.exceptions.VcsHashUnsupported:
  - 490
  pip._internal.exceptions._is_kebab_case:
  - 36
  pip._internal.exceptions._prefix_with_indent:
  - 49
  - 51
  - 53
  - 46
  pip._internal.index:
  - 1
  pip._internal.index.collector:
  - 1
  - 45
  pip._internal.index.collector.CacheablePageContent.__eq__:
  - 192
  pip._internal.index.collector.CacheablePageContent.__hash__:
  - 195
  pip._internal.index.collector.HTMLLinkParser:
  - 281
  pip._internal.index.collector.HTMLLinkParser.__init__:
  - 287
  pip._internal.index.collector.HTMLLinkParser.get_href:
  - 302
  - 303
  pip._internal.index.collector.HTMLLinkParser.handle_starttag:
  - 294
  - 295
  - 296
  - 298
  - 299
  pip._internal.index.collector.IndexContent:
  - 253
  pip._internal.index.collector.IndexContent.__init__:
  - 263
  pip._internal.index.collector.IndexContent.__str__:
  - 277
  pip._internal.index.collector.LinkCollector:
  - 399
  pip._internal.index.collector.LinkCollector.collect_sources:
  - 487
  - 490
  - 494
  - 464
  - 465
  - 497
  - 499
  - 500
  - 501
  - 473
  - 475
  - 476
  pip._internal.index.collector.LinkCollector.create:
  - 421
  - 427
  - 428
  - 430
  - 437
  - 442
  pip._internal.index.collector.LinkCollector.fetch_response:
  - 456
  - 453
  pip._internal.index.collector.ParseLinks.__call__:
  - 200
  pip._internal.index.collector._NotAPIContent.__init__:
  - 63
  pip._internal.index.collector._ensure_api_header:
  - 75
  - 77
  - 69
  - 78
  pip._internal.index.collector._ensure_api_response:
  - 102
  - 103
  - 106
  - 107
  - 109
  - 95
  pip._internal.index.collector._get_encoding_from_headers:
  - 176
  - 177
  - 178
  - 180
  - 181
  - 182
  pip._internal.index.collector._get_index_content:
  - 384
  - 386
  - 388
  - 332
  - 335
  - 336
  - 337
  - 345
  - 346
  - 349
  - 355
  - 356
  - 359
  - 361
  - 367
  - 376
  - 378
  - 381
  - 382
  pip._internal.index.collector._get_simple_response:
  - 128
  - 130
  - 164
  - 166
  - 168
  - 169
  - 113
  - 156
  - 125
  - 126
  pip._internal.index.collector._handle_get_simple_fail:
  - 313
  - 315
  pip._internal.index.collector._make_index_content:
  - 321
  - 322
  pip._internal.index.collector._match_vcs_scheme:
  - 56
  - 51
  - 55
  pip._internal.index.collector.parse_links:
  - 225
  - 229
  - 230
  - 231
  - 232
  - 233
  - 234
  - 236
  - 239
  - 241
  - 245
  - 246
  - 247
  - 249
  pip._internal.index.collector.with_cached_index_content:
  - 210
  - 204
  - 214
  pip._internal.index.collector.with_cached_index_content.wrapper:
  - 212
  pip._internal.index.collector.with_cached_index_content.wrapper_wrapper:
  - 216
  - 217
  - 218
  pip._internal.index.package_finder:
  - 1
  - 45
  - 39
  pip._internal.index.package_finder.BestCandidateResult:
  - 346
  pip._internal.index.package_finder.BestCandidateResult.__init__:
  - 366
  - 364
  - 358
  pip._internal.index.package_finder.BestCandidateResult.iter_all:
  - 377
  - 378
  pip._internal.index.package_finder.BestCandidateResult.iter_applicable:
  - 381
  - 382
  pip._internal.index.package_finder.CandidateEvaluator:
  - 387
  pip._internal.index.package_finder.CandidateEvaluator.__init__:
  - 451
  - 437
  pip._internal.index.package_finder.CandidateEvaluator._sort_key:
  - 544
  - 545
  - 548
  - 549
  - 521
  - 491
  - 525
  - 527
  - 530
  - 539
  - 541
  - 542
  pip._internal.index.package_finder.CandidateEvaluator.compute_best_candidate:
  - 576
  - 579
  - 581
  - 583
  pip._internal.index.package_finder.CandidateEvaluator.create:
  - 417
  - 419
  - 402
  - 412
  - 413
  - 414
  - 415
  pip._internal.index.package_finder.CandidateEvaluator.get_applicable_candidates:
  - 480
  - 482
  - 488
  - 458
  - 465
  - 466
  - 474
  pip._internal.index.package_finder.CandidateEvaluator.sort_best_candidate:
  - 569
  - 563
  - 567
  pip._internal.index.package_finder.CandidatePreferences:
  - 328
  pip._internal.index.package_finder.CandidatePreferences.__init__:
  - 338
  pip._internal.index.package_finder.LinkEvaluator:
  - 114
  - 110
  pip._internal.index.package_finder.LinkEvaluator.__init__:
  - 129
  - 146
  pip._internal.index.package_finder.LinkEvaluator.evaluate_link:
  - 158
  - 168
  - 172
  - 176
  - 177
  - 179
  - 184
  - 187
  - 189
  - 191
  - 197
  - 201
  - 202
  - 205
  - 215
  - 219
  - 220
  - 224
  - 228
  - 229
  - 230
  - 231
  - 232
  - 238
  - 243
  - 247
  pip._internal.index.package_finder.LinkType:
  - 99
  - 100
  - 101
  - 102
  - 103
  - 104
  - 105
  pip._internal.index.package_finder.PackageFinder:
  - 875
  - 805
  - 591
  pip._internal.index.package_finder.PackageFinder.__init__:
  - 616
  - 617
  - 619
  - 630
  - 606
  pip._internal.index.package_finder.PackageFinder._log_skipped_link:
  - 746
  - 749
  - 750
  pip._internal.index.package_finder.PackageFinder._sort_links:
  - 736
  - 737
  - 738
  - 739
  - 741
  - 729
  - 734
  - 735
  pip._internal.index.package_finder.PackageFinder.create:
  - 643
  - 651
  - 652
  - 654
  - 659
  pip._internal.index.package_finder.PackageFinder.evaluate_links:
  - 773
  - 777
  - 778
  - 779
  - 780
  pip._internal.index.package_finder.PackageFinder.find_all_candidates:
  - 833
  - 834
  - 807
  - 839
  - 841
  - 844
  - 846
  - 815
  - 817
  - 849
  - 819
  - 851
  - 853
  - 825
  - 826
  - 831
  pip._internal.index.package_finder.PackageFinder.find_best_candidate:
  - 896
  - 882
  - 891
  - 890
  pip._internal.index.package_finder.PackageFinder.find_requirement:
  - 962
  - 901
  - 934
  - 935
  - 969
  - 970
  - 907
  - 908
  - 939
  - 973
  - 978
  - 916
  - 981
  - 953
  - 954
  - 955
  pip._internal.index.package_finder.PackageFinder.find_requirement._format_versions:
  - 925
  - 926
  - 927
  pip._internal.index.package_finder.PackageFinder.find_requirement._should_install_candidate:
  - 947
  - 949
  pip._internal.index.package_finder.PackageFinder.get_install_candidate:
  - 755
  - 759
  - 760
  - 761
  - 764
  pip._internal.index.package_finder.PackageFinder.make_candidate_evaluator:
  - 864
  - 866
  pip._internal.index.package_finder.PackageFinder.make_link_evaluator:
  - 716
  - 717
  - 719
  pip._internal.index.package_finder.PackageFinder.process_project_url:
  - 787
  - 791
  - 792
  - 795
  - 797
  - 798
  pip._internal.index.package_finder.PackageFinder.requires_python_skipped_reasons:
  - 713
  pip._internal.index.package_finder.PackageFinder.trusted_hosts:
  - 690
  - 691
  pip._internal.index.package_finder._check_link_requires_python:
  - 66
  - 71
  - 77
  - 78
  - 79
  - 80
  - 56
  - 88
  pip._internal.index.package_finder._extract_version_from_fragment:
  - 1021
  - 1013
  - 1025
  pip._internal.index.package_finder._find_name_version_sep:
  - 987
  - 1004
  - 1005
  - 1007
  pip._internal.index.package_finder.filter_unallowed_hashes:
  - 257
  - 272
  - 273
  - 276
  - 280
  - 286
  - 288
  - 290
  - 293
  - 296
  - 298
  - 302
  - 304
  - 307
  - 308
  - 309
  - 312
  - 315
  - 319
  pip._internal.index.sources:
  - 21
  pip._internal.index.sources.LinkSource.file_links:
  - 40
  pip._internal.index.sources.LinkSource.link:
  - 32
  pip._internal.index.sources.LinkSource.page_candidates:
  - 36
  pip._internal.index.sources._FlatDirectorySource:
  - 96
  pip._internal.index.sources._FlatDirectorySource.__init__:
  - 113
  - 116
  - 119
  pip._internal.index.sources._FlatDirectorySource.file_links:
  - 131
  - 132
  pip._internal.index.sources._FlatDirectorySource.page_candidates:
  - 128
  - 127
  pip._internal.index.sources._FlatDirectoryToUrls:
  - 49
  pip._internal.index.sources._FlatDirectoryToUrls.__init__:
  - 54
  pip._internal.index.sources._FlatDirectoryToUrls._scan_directory:
  - 64
  - 70
  - 73
  - 77
  - 58
  - 61
  - 62
  - 63
  pip._internal.index.sources._FlatDirectoryToUrls.page_candidates:
  - 82
  - 83
  pip._internal.index.sources._FlatDirectoryToUrls.project_name_to_urls:
  - 89
  - 90
  pip._internal.index.sources._IndexDirectorySource:
  - 201
  pip._internal.index.sources._IndexDirectorySource.page_candidates:
  - 220
  pip._internal.index.sources._LocalFileSource:
  - 136
  pip._internal.index.sources._LocalFileSource.file_links:
  - 163
  - 165
  pip._internal.index.sources._LocalFileSource.page_candidates:
  - 160
  - 158
  pip._internal.index.sources._RemoteFileSource:
  - 169
  pip._internal.index.sources._RemoteFileSource.file_links:
  - 197
  pip._internal.index.sources._RemoteFileSource.page_candidates:
  - 192
  - 194
  pip._internal.index.sources._is_html_file:
  - 45
  pip._internal.index.sources.build_source:
  - 258
  - 262
  - 263
  - 264
  - 270
  - 272
  - 275
  - 276
  - 278
  - 281
  - 237
  - 238
  - 240
  - 242
  - 243
  - 246
  - 251
  - 254
  - 255
  pip._internal.locations:
  - 193
  - 100
  - 38
  - 70
  - 41
  - 143
  - 115
  - 211
  - 123
  - 60
  - 62
  - 159
  pip._internal.locations._distutils:
  - 32
  - 1
  - 13
  pip._internal.locations._distutils.distutils_scheme:
  - 45
  - 51
  - 54
  - 55
  - 57
  - 59
  - 60
  - 62
  - 65
  - 67
  - 74
  - 79
  - 82
  - 83
  - 90
  - 91
  - 93
  - 94
  - 96
  - 100
  - 104
  - 108
  - 109
  - 110
  pip._internal.locations._distutils.get_bin_prefix:
  - 162
  - 164
  - 153
  - 154
  - 155
  - 157
  - 158
  pip._internal.locations._distutils.get_platlib:
  - 172
  pip._internal.locations._distutils.get_purelib:
  - 168
  pip._internal.locations._distutils.get_scheme:
  - 123
  - 140
  - 141
  pip._internal.locations._fix_abiflags:
  - 178
  - 179
  - 182
  - 183
  - 187
  - 188
  - 189
  - 190
  pip._internal.locations._log_context:
  - 227
  pip._internal.locations._looks_like_bpo_44860:
  - 77
  pip._internal.locations._looks_like_deb_system_dist_packages:
  - 424
  - 413
  - 422
  pip._internal.locations._looks_like_debian_scheme:
  - 117
  pip._internal.locations._looks_like_msys2_mingw_scheme:
  - 161
  - 170
  - 171
  - 172
  pip._internal.locations._looks_like_red_hat_lib:
  - 110
  - 108
  - 102
  pip._internal.locations._looks_like_red_hat_patched_platlib_purelib:
  - 96
  - 97
  - 92
  - 93
  - 94
  pip._internal.locations._looks_like_red_hat_scheme:
  - 135
  - 136
  - 138
  - 139
  - 125
  pip._internal.locations._looks_like_slackware_scheme:
  - 145
  - 153
  - 150
  pip._internal.locations._should_use_sysconfig:
  - 57
  - 47
  pip._internal.locations._sysconfig:
  - 13
  - 24
  - 121
  - 26
  - 120
  pip._internal.locations._sysconfig._infer_home:
  - 104
  - 106
  - 102
  - 103
  pip._internal.locations._sysconfig._infer_prefix:
  - 69
  - 70
  - 71
  - 74
  - 76
  - 79
  - 81
  - 56
  pip._internal.locations._sysconfig._infer_user:
  - 96
  - 87
  - 88
  - 89
  - 90
  - 94
  pip._internal.locations._sysconfig._should_use_osx_framework_prefix:
  - 50
  - 51
  - 30
  pip._internal.locations._sysconfig.get_bin_prefix:
  - 203
  - 205
  pip._internal.locations._sysconfig.get_platlib:
  - 213
  pip._internal.locations._sysconfig.get_purelib:
  - 209
  pip._internal.locations._sysconfig.get_scheme:
  - 132
  - 145
  - 147
  - 150
  - 151
  - 152
  - 153
  - 155
  - 160
  - 163
  - 165
  - 170
  - 177
  - 178
  - 179
  - 181
  - 182
  - 183
  - 184
  - 187
  - 190
  - 194
  - 195
  - 196
  - 197
  pip._internal.locations._warn_if_mismatch:
  - 205
  - 207
  pip._internal.locations._warn_mismatched:
  - 201
  pip._internal.locations.base:
  - 16
  - 74
  - 13
  - 79
  pip._internal.locations.base.change_root:
  - 36
  - 37
  - 38
  - 40
  - 42
  - 43
  - 44
  - 46
  - 28
  pip._internal.locations.base.get_major_minor_version:
  - 24
  - 20
  pip._internal.locations.base.get_src_prefix:
  - 64
  - 68
  - 56
  - 57
  - 61
  pip._internal.locations.base.is_osx_framework:
  - 81
  pip._internal.locations.get_bin_prefix:
  - 398
  - 399
  - 402
  - 403
  - 404
  pip._internal.locations.get_bin_user:
  - 409
  pip._internal.locations.get_platlib:
  - 451
  - 452
  - 454
  - 455
  - 444
  - 445
  - 446
  pip._internal.locations.get_purelib:
  - 430
  - 431
  - 432
  - 435
  - 436
  - 438
  - 439
  pip._internal.locations.get_scheme:
  - 259
  - 260
  - 261
  - 390
  - 263
  - 391
  - 392
  - 275
  - 276
  - 278
  - 286
  - 289
  - 291
  - 296
  - 309
  - 311
  - 320
  - 322
  - 329
  - 331
  - 333
  - 334
  - 336
  - 342
  - 344
  - 352
  - 356
  - 359
  - 361
  - 377
  - 238
  - 367
  - 246
  - 376
  - 249
  pip._internal.main:
  - 18
  - 11
  pip._internal.metadata:
  - 58
  - 11
  pip._internal.metadata._json.json_name:
  - 38
  pip._internal.metadata._json.msg_to_json:
  - 64
  - 65
  - 67
  - 70
  - 71
  - 42
  - 74
  - 75
  - 77
  - 80
  - 81
  - 61
  - 62
  pip._internal.metadata._json.msg_to_json.sanitise_header:
  - 45
  - 47
  - 48
  - 51
  - 56
  - 57
  - 58
  pip._internal.metadata._should_use_importlib_metadata:
  - 43
  - 44
  - 45
  - 49
  - 30
  pip._internal.metadata.base:
  - 48
  pip._internal.metadata.base.BaseDistribution._add_egg_info_requires:
  - 576
  - 577
  - 578
  - 580
  - 581
  pip._internal.metadata.base.BaseDistribution._iter_declared_entries_from_legacy:
  - 480
  - 483
  - 486
  - 489
  - 492
  - 477
  pip._internal.metadata.base.BaseDistribution._iter_declared_entries_from_record:
  - 473
  - 469
  pip._internal.metadata.base.BaseDistribution._iter_egg_info_dependencies:
  - 548
  - 560
  - 561
  - 562
  - 564
  - 566
  - 570
  - 571
  - 573
  pip._internal.metadata.base.BaseDistribution._iter_egg_info_extras:
  - 544
  - 545
  - 538
  - 540
  - 541
  - 542
  pip._internal.metadata.base.BaseDistribution._iter_requires_txt_entries:
  - 513
  - 524
  - 528
  - 529
  - 530
  - 532
  - 533
  - 535
  pip._internal.metadata.base.BaseDistribution.direct_url:
  - 296
  - 290
  - 300
  - 306
  pip._internal.metadata.base.BaseDistribution.editable:
  - 332
  pip._internal.metadata.base.BaseDistribution.editable_project_location:
  - 164
  - 171
  - 172
  - 173
  - 177
  - 178
  pip._internal.metadata.base.BaseDistribution.from_directory:
  - 104
  pip._internal.metadata.base.BaseDistribution.from_metadata_file_contents:
  - 117
  pip._internal.metadata.base.BaseDistribution.from_wheel:
  - 130
  pip._internal.metadata.base.BaseDistribution.in_site_packages:
  - 352
  - 354
  pip._internal.metadata.base.BaseDistribution.in_usersite:
  - 346
  - 348
  pip._internal.metadata.base.BaseDistribution.info_location:
  - 199
  pip._internal.metadata.base.BaseDistribution.installed_as_egg:
  - 234
  - 228
  - 236
  pip._internal.metadata.base.BaseDistribution.installed_by_distutils:
  - 224
  - 222
  - 215
  pip._internal.metadata.base.BaseDistribution.installed_location:
  - 186
  pip._internal.metadata.base.BaseDistribution.installed_with_dist_info:
  - 258
  - 266
  - 268
  - 270
  pip._internal.metadata.base.BaseDistribution.installed_with_setuptools_egg_info:
  - 240
  - 250
  - 252
  - 254
  pip._internal.metadata.base.BaseDistribution.installer:
  - 320
  - 321
  - 322
  - 317
  pip._internal.metadata.base.BaseDistribution.is_extra_provided:
  - 460
  pip._internal.metadata.base.BaseDistribution.is_file:
  - 357
  pip._internal.metadata.base.BaseDistribution.iter_declared_entries:
  - 497
  - 508
  - 509
  pip._internal.metadata.base.BaseDistribution.iter_dependencies:
  - 439
  pip._internal.metadata.base.BaseDistribution.iter_distutils_script_names:
  - 361
  pip._internal.metadata.base.BaseDistribution.iter_provided_extras:
  - 447
  pip._internal.metadata.base.BaseDistribution.local:
  - 336
  - 340
  - 342
  pip._internal.metadata.base.BaseDistribution.location:
  - 150
  pip._internal.metadata.base.BaseDistribution.metadata:
  - 392
  - 385
  - 393
  pip._internal.metadata.base.BaseDistribution.metadata_dict:
  - 405
  - 398
  pip._internal.metadata.base.BaseDistribution.metadata_version:
  - 409
  - 410
  pip._internal.metadata.base.BaseDistribution.raw_name:
  - 417
  - 414
  pip._internal.metadata.base.BaseDistribution.read_text:
  - 369
  pip._internal.metadata.base.BaseDistribution.requested:
  - 328
  pip._internal.metadata.base.BaseDistribution.requires_python:
  - 421
  - 426
  - 427
  - 428
  - 431
  - 434
  - 435
  pip._internal.metadata.base.BaseDistribution.setuptools_filename:
  - 282
  - 286
  pip._internal.metadata.base.BaseEnvironment:
  - 586
  pip._internal.metadata.base.BaseEnvironment._iter_distributions:
  - 605
  pip._internal.metadata.base.BaseEnvironment.get_distribution:
  - 597
  pip._internal.metadata.base.BaseEnvironment.iter_all_distributions:
  - 614
  - 615
  - 620
  - 625
  - 626
  - 632
  pip._internal.metadata.base.BaseEnvironment.iter_installed_distributions:
  - 642
  - 658
  - 659
  - 661
  - 663
  - 665
  pip._internal.metadata.base.FilesystemWheel.as_zipfile:
  - 682
  pip._internal.metadata.base.MemoryWheel.as_zipfile:
  - 691
  pip._internal.metadata.base._convert_installed_files_path:
  - 92
  - 69
  - 87
  pip._internal.metadata.get_default_environment:
  - 76
  - 70
  pip._internal.metadata.get_directory_distribution:
  - 90
  - 95
  pip._internal.metadata.get_environment:
  - 80
  - 86
  pip._internal.metadata.get_metadata_distribution:
  - 114
  - 124
  pip._internal.metadata.get_wheel_distribution:
  - 106
  - 99
  pip._internal.metadata.importlib._compat.BasePath:
  - 15
  pip._internal.metadata.importlib._compat.get_dist_name:
  - 52
  - 53
  - 47
  pip._internal.metadata.importlib._compat.get_info_location:
  - 43
  - 35
  pip._internal.metadata.importlib._dists.Distribution._get_dist_name_from_location:
  - 163
  - 165
  - 166
  - 168
  - 159
  pip._internal.metadata.importlib._dists.Distribution._metadata_impl:
  - 207
  pip._internal.metadata.importlib._dists.Distribution.canonical_name:
  - 172
  - 173
  pip._internal.metadata.importlib._dists.Distribution.from_directory:
  - 108
  - 109
  - 110
  pip._internal.metadata.importlib._dists.Distribution.from_metadata_file_contents:
  - 120
  - 121
  - 124
  - 126
  - 127
  pip._internal.metadata.importlib._dists.Distribution.from_wheel:
  - 138
  - 132
  - 133
  pip._internal.metadata.importlib._dists.Distribution.info_location:
  - 148
  - 150
  pip._internal.metadata.importlib._dists.Distribution.installed_location:
  - 154
  - 156
  pip._internal.metadata.importlib._dists.Distribution.is_extra_provided:
  - 213
  - 214
  - 215
  pip._internal.metadata.importlib._dists.Distribution.is_file:
  - 180
  pip._internal.metadata.importlib._dists.Distribution.iter_dependencies:
  - 224
  - 225
  - 226
  - 227
  - 220
  - 221
  - 222
  - 223
  pip._internal.metadata.importlib._dists.Distribution.iter_distutils_script_names:
  - 186
  - 188
  - 189
  pip._internal.metadata.importlib._dists.Distribution.iter_provided_extras:
  - 210
  pip._internal.metadata.importlib._dists.Distribution.location:
  - 144
  - 142
  pip._internal.metadata.importlib._dists.Distribution.read_text:
  - 192
  - 193
  pip._internal.metadata.importlib._dists.Distribution.version:
  - 177
  pip._internal.metadata.importlib._dists.WheelDistribution:
  - 37
  pip._internal.metadata.importlib._dists.WheelDistribution.from_zipfile:
  - 64
  - 65
  - 66
  - 69
  - 72
  - 73
  - 62
  pip._internal.metadata.importlib._dists.WheelDistribution.iterdir:
  - 77
  - 78
  pip._internal.metadata.importlib._dists.WheelDistribution.read_text:
  - 83
  - 87
  pip._internal.metadata.importlib._envs:
  - 21
  - 149
  pip._internal.metadata.importlib._envs.Environment._iter_distributions:
  - 174
  - 175
  - 176
  - 177
  - 178
  - 179
  - 181
  pip._internal.metadata.importlib._envs.Environment.default:
  - 165
  pip._internal.metadata.importlib._envs.Environment.from_paths:
  - 169
  - 170
  - 171
  pip._internal.metadata.importlib._envs.Environment.get_distribution:
  - 186
  - 187
  - 189
  pip._internal.metadata.importlib._envs._DistributionFinder:
  - 35
  pip._internal.metadata.importlib._envs._DistributionFinder.__init__:
  - 50
  pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_dir:
  - 115
  - 116
  - 117
  - 119
  - 120
  pip._internal.metadata.importlib._envs._DistributionFinder._find_eggs_in_zip:
  - 128
  - 131
  - 132
  pip._internal.metadata.importlib._envs._DistributionFinder._find_impl:
  - 64
  - 66
  - 68
  - 69
  - 71
  - 72
  - 53
  - 57
  - 61
  - 62
  pip._internal.metadata.importlib._envs._DistributionFinder.find:
  - 80
  - 75
  - 84
  - 79
  pip._internal.metadata.importlib._envs._DistributionFinder.find_eggs:
  - 135
  - 143
  - 144
  - 145
  - 146
  pip._internal.metadata.importlib._envs._DistributionFinder.find_linked:
  - 96
  - 98
  - 99
  - 101
  - 102
  - 103
  - 104
  - 106
  - 107
  - 108
  - 87
  - 95
  pip._internal.metadata.importlib._envs._emit_egg_deprecation:
  - 151
  pip._internal.metadata.importlib._envs._looks_like_wheel:
  - 25
  - 27
  - 29
  - 31
  pip._internal.metadata.pkg_resources:
  - 29
  pip._internal.metadata.pkg_resources.Distribution._metadata_impl:
  - 196
  - 200
  - 205
  - 207
  - 208
  - 210
  - 211
  - 213
  - 214
  - 215
  pip._internal.metadata.pkg_resources.Distribution.canonical_name:
  - 168
  pip._internal.metadata.pkg_resources.Distribution.from_directory:
  - 96
  - 97
  - 81
  - 84
  - 85
  - 88
  - 90
  - 92
  - 94
  pip._internal.metadata.pkg_resources.Distribution.from_metadata_file_contents:
  - 114
  - 109
  - 111
  pip._internal.metadata.pkg_resources.Distribution.from_wheel:
  - 130
  - 132
  - 135
  - 119
  - 120
  - 122
  - 123
  - 124
  pip._internal.metadata.pkg_resources.Distribution.installed_by_distutils:
  - 162
  pip._internal.metadata.pkg_resources.Distribution.installed_location:
  - 144
  - 146
  - 150
  - 143
  pip._internal.metadata.pkg_resources.Distribution.is_extra_provided:
  - 227
  pip._internal.metadata.pkg_resources.Distribution.is_file:
  - 175
  pip._internal.metadata.pkg_resources.Distribution.iter_dependencies:
  - 218
  - 219
  - 220
  - 221
  pip._internal.metadata.pkg_resources.Distribution.iter_distutils_script_names:
  - 178
  pip._internal.metadata.pkg_resources.Distribution.iter_entry_points:
  - 192
  - 193
  - 190
  - 191
  pip._internal.metadata.pkg_resources.Distribution.read_text:
  - 184
  - 185
  - 181
  - 182
  pip._internal.metadata.pkg_resources.Distribution.version:
  - 172
  pip._internal.metadata.pkg_resources.Environment._iter_distributions:
  - 243
  - 244
  pip._internal.metadata.pkg_resources.Environment._search_distribution:
  - 252
  - 253
  - 254
  - 247
  pip._internal.metadata.pkg_resources.Environment.default:
  - 236
  pip._internal.metadata.pkg_resources.Environment.from_paths:
  - 240
  pip._internal.metadata.pkg_resources.Environment.get_distribution:
  - 275
  - 260
  - 261
  - 278
  pip._internal.metadata.pkg_resources.InMemoryMetadata:
  - 41
  pip._internal.metadata.pkg_resources.InMemoryMetadata.get_metadata:
  - 55
  pip._internal.metadata.pkg_resources.InMemoryMetadata.get_metadata_lines:
  - 63
  pip._internal.metadata.select_backend:
  - 66
  - 60
  - 63
  pip._internal.models:
  - 1
  pip._internal.models.candidate.InstallationCandidate:
  - 8
  pip._internal.models.candidate.InstallationCandidate.__init__:
  - 17
  - 14
  pip._internal.models.candidate.InstallationCandidate.__repr__:
  - 23
  pip._internal.models.direct_url:
  - 1
  - 18
  - 15
  pip._internal.models.direct_url.ArchiveInfo._from_dict:
  - 136
  - 134
  pip._internal.models.direct_url.ArchiveInfo._to_dict:
  - 139
  pip._internal.models.direct_url.ArchiveInfo.hash:
  - 128
  - 116
  - 120
  - 125
  - 127
  pip._internal.models.direct_url.DirInfo._from_dict:
  - 153
  - 155
  pip._internal.models.direct_url.DirInfo._to_dict:
  - 158
  pip._internal.models.direct_url.DirectUrl._remove_auth_from_netloc:
  - 176
  - 178
  - 179
  - 180
  - 185
  pip._internal.models.direct_url.DirectUrl.from_dict:
  - 207
  - 208
  - 209
  - 210
  - 212
  - 213
  - 214
  pip._internal.models.direct_url.DirectUrl.from_json:
  - 229
  pip._internal.models.direct_url.DirectUrl.is_local_editable:
  - 235
  pip._internal.models.direct_url.DirectUrl.redacted_url:
  - 195
  - 196
  - 197
  - 191
  pip._internal.models.direct_url.DirectUrl.to_dict:
  - 224
  - 220
  pip._internal.models.direct_url.DirectUrl.to_json:
  - 232
  pip._internal.models.direct_url.DirectUrl.validate:
  - 203
  pip._internal.models.direct_url.VcsInfo._from_dict:
  - 82
  - 84
  - 85
  - 86
  - 87
  pip._internal.models.direct_url.VcsInfo._to_dict:
  - 91
  pip._internal.models.direct_url._exactly_one_of:
  - 50
  - 54
  pip._internal.models.direct_url._filter_none:
  - 64
  - 63
  pip._internal.models.direct_url._get:
  - 32
  - 28
  - 29
  pip._internal.models.direct_url._get_required:
  - 42
  - 43
  pip._internal.models.format_control.FormatControl:
  - 9
  pip._internal.models.format_control.FormatControl.__eq__:
  - 33
  - 27
  - 30
  pip._internal.models.format_control.FormatControl.__init__:
  - 18
  - 19
  - 20
  - 21
  pip._internal.models.format_control.FormatControl.disallow_binaries:
  - 74
  pip._internal.models.format_control.FormatControl.get_allowed_formats:
  - 64
  - 65
  - 66
  - 67
  - 68
  - 69
  - 70
  - 71
  - 63
  pip._internal.models.format_control.FormatControl.handle_mutual_excludes:
  - 40
  - 44
  - 46
  - 47
  - 48
  - 49
  - 51
  - 53
  - 54
  - 55
  - 57
  - 58
  - 59
  pip._internal.models.index:
  - 25
  - 26
  pip._internal.models.index.PackageIndex:
  - 5
  pip._internal.models.index.PackageIndex.__init__:
  - 10
  - 12
  - 13
  - 14
  pip._internal.models.index.PackageIndex._url_for_path:
  - 22
  pip._internal.models.installation_report.InstallationReport._install_req_to_dict:
  - 37
  - 35
  - 21
  - 39
  pip._internal.models.installation_report.InstallationReport.to_dict:
  - 55
  - 47
  pip._internal.models.link:
  - 577
  - 33
  - 36
  - 142
  pip._internal.models.link.Link:
  - 427
  - 452
  - 430
  - 183
  pip._internal.models.link.Link.__init__:
  - 257
  - 260
  - 237
  - 238
  - 207
  - 240
  - 245
  - 246
  - 247
  pip._internal.models.link.Link.__str__:
  - 370
  - 371
  - 373
  - 366
  pip._internal.models.link.Link._egg_fragment:
  - 435
  - 436
  - 441
  - 442
  - 443
  pip._internal.models.link.Link.as_hashes:
  - 471
  pip._internal.models.link.Link.ext:
  - 420
  pip._internal.models.link.Link.file_path:
  - 398
  pip._internal.models.link.Link.filename:
  - 384
  - 385
  - 386
  - 389
  - 392
  pip._internal.models.link.Link.from_element:
  - 320
  - 323
  - 324
  - 355
  - 357
  - 327
  - 328
  - 329
  - 333
  - 334
  - 335
  - 338
  - 340
  - 341
  - 346
  - 347
  - 348
  - 351
  pip._internal.models.link.Link.from_json:
  - 289
  - 290
  - 292
  - 298
  - 268
  - 301
  - 271
  - 272
  - 304
  - 275
  - 276
  - 277
  - 278
  - 282
  - 283
  - 284
  - 287
  pip._internal.models.link.Link.has_hash:
  - 508
  pip._internal.models.link.Link.hash:
  - 475
  pip._internal.models.link.Link.hash_name:
  - 479
  pip._internal.models.link.Link.is_existing_dir:
  - 490
  pip._internal.models.link.Link.is_hash_allowed:
  - 514
  - 516
  - 511
  pip._internal.models.link.Link.metadata_link:
  - 462
  - 463
  - 466
  - 467
  - 468
  pip._internal.models.link.Link.netloc:
  - 406
  pip._internal.models.link.Link.path:
  - 413
  pip._internal.models.link.Link.show_url:
  - 483
  pip._internal.models.link.Link.splitext:
  - 416
  pip._internal.models.link.Link.subdirectory_fragment:
  - 456
  - 457
  - 459
  pip._internal.models.link.Link.url_without_fragment:
  - 425
  pip._internal.models.link.LinkHash:
  - 64
  - 65
  - 73
  - 46
  - 58
  pip._internal.models.link.LinkHash.as_hashes:
  - 86
  - 87
  pip._internal.models.link.LinkHash.find_hash_url_fragment:
  - 75
  - 76
  - 77
  - 79
  - 80
  pip._internal.models.link.LinkHash.is_hash_allowed:
  - 90
  - 93
  - 95
  pip._internal.models.link.MetadataFile:
  - 100
  pip._internal.models.link.MetadataFile.__post_init__:
  - 105
  - 106
  pip._internal.models.link._CleanResult:
  - 520
  pip._internal.models.link._clean_file_url_path:
  - 129
  - 138
  pip._internal.models.link._clean_link:
  - 553
  - 555
  - 557
  - 558
  - 559
  - 569
  - 570
  - 571
  pip._internal.models.link._clean_url_path:
  - 160
  - 162
  - 164
  - 146
  - 149
  - 156
  - 159
  pip._internal.models.link._clean_url_path_part:
  - 121
  - 125
  pip._internal.models.link._ensure_quoted_url:
  - 168
  - 178
  - 179
  - 175
  pip._internal.models.link.links_equivalent:
  - 579
  pip._internal.models.link.supported_hashes:
  - 112
  - 114
  - 115
  pip._internal.models.scheme:
  - 1
  pip._internal.models.scheme.Scheme:
  - 13
  pip._internal.models.search_scope:
  - 14
  pip._internal.models.search_scope.SearchScope:
  - 19
  pip._internal.models.search_scope.SearchScope.create:
  - 32
  - 41
  - 42
  - 43
  - 44
  - 46
  - 50
  - 51
  - 52
  - 53
  - 54
  - 61
  pip._internal.models.search_scope.SearchScope.get_formatted_locations:
  - 98
  - 100
  - 101
  - 104
  - 105
  - 106
  - 107
  - 110
  - 80
  - 81
  - 82
  - 85
  - 92
  - 93
  pip._internal.models.search_scope.SearchScope.get_index_urls_locations:
  - 113
  - 132
  pip._internal.models.search_scope.SearchScope.get_index_urls_locations.mkurl_pypi_url:
  - 120
  - 121
  - 128
  pip._internal.models.selection_prefs.SelectionPreferences:
  - 7
  pip._internal.models.selection_prefs.SelectionPreferences.__init__:
  - 32
  - 44
  pip._internal.models.target_python.TargetPython:
  - 12
  pip._internal.models.target_python.TargetPython.__init__:
  - 57
  - 35
  - 52
  - 55
  pip._internal.models.target_python.TargetPython.format_given:
  - 70
  - 74
  - 75
  - 76
  - 85
  pip._internal.models.target_python.TargetPython.get_sorted_tags:
  - 99
  - 102
  - 104
  - 90
  - 95
  pip._internal.models.target_python.TargetPython.get_unsorted_tags:
  - 120
  - 115
  - 119
  pip._internal.models.wheel:
  - 1
  pip._internal.models.wheel.Wheel:
  - 13
  - 15
  pip._internal.models.wheel.Wheel.__init__:
  - 33
  - 34
  - 35
  - 36
  - 37
  - 41
  - 23
  - 26
  - 27
  - 30
  pip._internal.models.wheel.Wheel.find_most_preferred_tag:
  - 83
  - 69
  pip._internal.models.wheel.Wheel.get_formatted_file_tags:
  - 45
  - 46
  pip._internal.models.wheel.Wheel.support_index_min:
  - 49
  - 62
  pip._internal.models.wheel.Wheel.supported:
  - 88
  - 92
  pip._internal.network:
  - 1
  pip._internal.network.auth:
  - 1
  - 161
  - 33
  pip._internal.network.auth.KeyRingBaseProvider:
  - 45
  pip._internal.network.auth.KeyRingBaseProvider.get_auth_info:
  - 51
  pip._internal.network.auth.KeyRingBaseProvider.save_auth_info:
  - 55
  pip._internal.network.auth.KeyRingCliProvider:
  - 103
  pip._internal.network.auth.KeyRingCliProvider._get_password:
  - 129
  - 130
  - 134
  - 136
  - 142
  - 144
  pip._internal.network.auth.KeyRingCliProvider._set_password:
  - 147
  - 148
  - 150
  - 152
  - 154
  pip._internal.network.auth.KeyRingCliProvider.get_auth_info:
  - 120
  - 121
  - 119
  pip._internal.network.auth.KeyRingCliProvider.save_auth_info:
  - 126
  pip._internal.network.auth.KeyRingNullProvider:
  - 59
  pip._internal.network.auth.KeyRingPythonProvider:
  - 71
  pip._internal.network.auth.KeyRingPythonProvider.get_auth_info:
  - 84
  - 85
  - 86
  - 87
  - 91
  - 92
  - 93
  - 94
  pip._internal.network.auth.KeyRingPythonProvider.save_auth_info:
  - 99
  pip._internal.network.auth.MultiDomainBasicAuth.__call__:
  - 442
  - 444
  - 437
  - 447
  pip._internal.network.auth.MultiDomainBasicAuth._get_index_url:
  - 320
  - 295
  - 328
  - 298
  - 299
  - 303
  - 304
  - 305
  - 306
  - 315
  - 309
  - 312
  - 313
  - 283
  - 318
  pip._internal.network.auth.MultiDomainBasicAuth._get_index_url.<lambda1>:
  - 320
  pip._internal.network.auth.MultiDomainBasicAuth._get_keyring_auth:
  - 265
  - 267
  - 271
  - 273
  - 275
  - 279
  pip._internal.network.auth.MultiDomainBasicAuth._get_new_credentials:
  - 337
  - 339
  - 345
  - 346
  - 350
  - 351
  - 353
  - 354
  - 356
  - 359
  - 361
  - 362
  - 366
  - 367
  - 368
  - 369
  - 373
  - 377
  - 378
  - 381
  - 382
  pip._internal.network.auth.MultiDomainBasicAuth._get_url_and_credentials:
  - 390
  - 399
  - 402
  - 408
  - 412
  - 415
  pip._internal.network.auth.MultiDomainBasicAuth._prompt_for_password:
  - 455
  - 456
  - 458
  - 459
  - 460
  - 462
  pip._internal.network.auth.MultiDomainBasicAuth._should_save_password_to_keyring:
  - 473
  - 467
  pip._internal.network.auth.MultiDomainBasicAuth.handle_401:
  - 484
  - 485
  - 520
  - 523
  - 492
  - 524
  - 495
  - 529
  - 530
  - 499
  - 500
  - 533
  - 534
  - 504
  - 508
  - 509
  - 478
  pip._internal.network.auth.MultiDomainBasicAuth.keyring_provider:
  - 243
  pip._internal.network.auth.MultiDomainBasicAuth.save_credentials:
  - 547
  - 554
  - 556
  - 557
  - 561
  pip._internal.network.auth.MultiDomainBasicAuth.warn_on_401:
  - 539
  - 540
  - 541
  pip._internal.network.auth.get_keyring_provider:
  - 163
  - 166
  - 168
  - 170
  - 171
  - 179
  - 181
  - 182
  - 183
  - 184
  - 200
  - 203
  - 204
  - 206
  - 207
  - 211
  - 213
  - 215
  - 216
  - 217
  - 219
  - 220
  pip._internal.network.auth.get_keyring_provider.PATH_as_shutil_which_determines_it:
  - 188
  - 189
  - 191
  pip._internal.network.cache:
  - 1
  pip._internal.network.cache.SafeFileCache:
  - 33
  pip._internal.network.cache.SafeFileCache.__init__:
  - 52
  pip._internal.network.cache.SafeFileCache._get_cache_path:
  - 59
  - 60
  - 61
  pip._internal.network.cache.SafeFileCache._write:
  - 74
  - 75
  - 77
  - 78
  - 80
  pip._internal.network.cache.SafeFileCache.delete:
  - 89
  - 90
  - 91
  - 92
  - 93
  pip._internal.network.cache.SafeFileCache.get:
  - 65
  - 67
  - 69
  - 70
  - 71
  pip._internal.network.cache.SafeFileCache.get_body:
  - 97
  - 99
  - 101
  - 102
  pip._internal.network.cache.SafeFileCache.set:
  - 85
  - 86
  pip._internal.network.cache.SafeFileCache.set_body:
  - 105
  - 106
  pip._internal.network.cache.is_from_cache:
  - 18
  pip._internal.network.cache.suppressed_cache_errors:
  - 27
  - 23
  pip._internal.network.download:
  - 1
  - 20
  pip._internal.network.download.BatchDownloader.__call__:
  - 165
  - 166
  - 168
  - 171
  - 178
  - 179
  - 181
  - 182
  - 183
  - 184
  - 185
  - 186
  pip._internal.network.download.Downloader.__call__:
  - 132
  - 134
  - 137
  - 142
  - 143
  - 145
  - 146
  - 147
  - 148
  - 149
  pip._internal.network.download._get_http_response_filename:
  - 100
  - 101
  - 102
  - 103
  - 104
  - 105
  - 106
  - 108
  - 109
  - 110
  - 95
  pip._internal.network.download._get_http_response_size:
  - 25
  pip._internal.network.download._http_get_download:
  - 116
  - 117
  - 118
  pip._internal.network.download._prepare_download:
  - 65
  - 35
  - 68
  - 37
  - 69
  - 42
  - 44
  - 45
  - 47
  - 48
  - 50
  - 52
  - 54
  - 56
  - 58
  - 63
  pip._internal.network.download.parse_content_disposition:
  - 80
  - 84
  - 86
  - 87
  - 90
  pip._internal.network.download.sanitize_content_filename:
  - 73
  - 76
  pip._internal.network.lazy_wheel:
  - 1
  pip._internal.network.lazy_wheel.LazyZipOverHTTP:
  - 41
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.__enter__:
  - 135
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.__exit__:
  - 139
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.__init__:
  - 52
  - 53
  - 56
  - 57
  - 58
  - 61
  - 63
  pip._internal.network.lazy_wheel.LazyZipOverHTTP._check_zip:
  - 162
  - 154
  - 156
  - 157
  - 158
  pip._internal.network.lazy_wheel.LazyZipOverHTTP._download:
  - 201
  - 202
  - 203
  - 204
  - 205
  - 206
  - 207
  - 208
  - 209
  - 210
  pip._internal.network.lazy_wheel.LazyZipOverHTTP._merge:
  - 192
  - 193
  - 194
  - 196
  - 197
  - 181
  - 190
  - 191
  pip._internal.network.lazy_wheel.LazyZipOverHTTP._stay:
  - 151
  - 147
  - 149
  - 143
  pip._internal.network.lazy_wheel.LazyZipOverHTTP._stream_response:
  - 176
  - 171
  - 172
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.close:
  - 80
  - 81
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.closed:
  - 85
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.mode:
  - 67
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.name:
  - 72
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.read:
  - 96
  - 97
  - 98
  - 99
  - 100
  - 89
  - 95
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.readable:
  - 103
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.seek:
  - 114
  - 107
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.seekable:
  - 76
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.tell:
  - 117
  - 118
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.truncate:
  - 128
  - 121
  pip._internal.network.lazy_wheel.LazyZipOverHTTP.writable:
  - 131
  pip._internal.network.lazy_wheel.dist_from_wheel_url:
  - 24
  - 34
  - 37
  - 31
  pip._internal.network.session:
  - 64
  - 1
  - 58
  - 52
  pip._internal.network.session.InsecureCacheControlAdapter.cert_verify:
  - 315
  pip._internal.network.session.InsecureHTTPAdapter.cert_verify:
  - 304
  pip._internal.network.session.LocalFSAdapter.send:
  - 227
  - 232
  - 233
  - 235
  - 236
  - 237
  - 245
  - 220
  - 222
  pip._internal.network.session.PipSession.__init__:
  - 384
  - 385
  - 389
  - 392
  - 393
  - 331
  - 396
  - 398
  - 335
  - 399
  - 371
  - 342
  - 345
  - 378
  - 379
  - 380
  - 349
  pip._internal.network.session.PipSession.add_trusted_host:
  - 417
  - 419
  - 421
  - 423
  - 424
  - 426
  - 427
  - 429
  - 430
  - 432
  - 433
  - 434
  - 435
  - 439
  - 411
  pip._internal.network.session.PipSession.is_secure_origin:
  - 448
  - 484
  - 488
  - 459
  - 464
  - 466
  - 470
  - 471
  - 502
  - 475
  - 477
  pip._internal.network.session.PipSession.iter_secure_origins:
  - 442
  - 443
  - 444
  pip._internal.network.session.PipSession.request:
  - 520
  - 515
  - 517
  pip._internal.network.session.PipSession.update_index_urls:
  - 402
  pip._internal.network.session._SSLContextAdapterMixin:
  - 255
  pip._internal.network.session._SSLContextAdapterMixin.__init__:
  - 269
  pip._internal.network.session._SSLContextAdapterMixin.init_poolmanager:
  - 280
  - 278
  - 279
  pip._internal.network.session.looks_like_ci:
  - 106
  - 100
  pip._internal.network.session.user_agent:
  - 128
  - 130
  - 132
  - 133
  - 135
  - 137
  - 140
  - 141
  - 142
  - 143
  - 144
  - 147
  - 148
  - 149
  - 150
  - 153
  - 155
  - 158
  - 159
  - 161
  - 162
  - 164
  - 165
  - 167
  - 168
  - 170
  - 175
  - 176
  - 177
  - 179
  - 182
  - 188
  - 192
  - 198
  - 200
  - 201
  - 204
  - 206
  - 110
  - 115
  - 117
  - 121
  - 122
  - 123
  - 125
  - 127
  pip._internal.network.utils.raise_for_status:
  - 37
  - 39
  - 43
  - 48
  - 53
  - 31
  pip._internal.network.utils.response_chunks:
  - 96
  - 89
  - 60
  - 93
  - 94
  - 63
  pip._internal.network.xmlrpc:
  - 1
  - 18
  - 13
  pip._internal.network.xmlrpc.PipXmlrpcTransport:
  - 22
  pip._internal.network.xmlrpc.PipXmlrpcTransport.__init__:
  - 29
  - 30
  pip._internal.network.xmlrpc.PipXmlrpcTransport.request:
  - 41
  - 43
  - 46
  - 52
  - 54
  - 57
  pip._internal.operations.build.build_tracker:
  - 12
  pip._internal.operations.build.build_tracker.BuildTracker:
  - 59
  pip._internal.operations.build.build_tracker.BuildTracker.__enter__:
  - 73
  pip._internal.operations.build.build_tracker.BuildTracker.__exit__:
  - 82
  pip._internal.operations.build.build_tracker.BuildTracker.__init__:
  - 70
  pip._internal.operations.build.build_tracker.BuildTracker._entry_path:
  - 85
  - 86
  pip._internal.operations.build.build_tracker.BuildTracker.add:
  - 97
  - 98
  - 109
  - 110
  - 113
  - 89
  - 92
  pip._internal.operations.build.build_tracker.BuildTracker.cleanup:
  - 128
  - 125
  - 126
  pip._internal.operations.build.build_tracker.BuildTracker.remove:
  - 122
  - 116
  - 119
  pip._internal.operations.build.build_tracker.BuildTracker.track:
  - 132
  - 136
  - 137
  - 138
  - 139
  pip._internal.operations.build.build_tracker.TrackerId:
  - 55
  pip._internal.operations.build.build_tracker.get_build_tracker:
  - 43
  - 44
  - 45
  - 46
  - 47
  - 48
  - 50
  - 51
  pip._internal.operations.build.build_tracker.update_env_context_manager:
  - 33
  - 34
  - 37
  - 20
  - 22
  - 30
  pip._internal.operations.build.metadata:
  - 1
  pip._internal.operations.build.metadata.generate_metadata:
  - 32
  - 33
  - 35
  - 39
  - 20
  - 24
  pip._internal.operations.build.metadata_editable:
  - 1
  pip._internal.operations.build.metadata_editable.generate_editable_metadata:
  - 32
  - 35
  - 37
  - 41
  - 20
  - 24
  pip._internal.operations.build.metadata_legacy:
  - 1
  - 18
  pip._internal.operations.build.metadata_legacy._find_egg_info:
  - 33
  - 22
  - 23
  - 25
  - 28
  pip._internal.operations.build.metadata_legacy.generate_metadata:
  - 64
  - 74
  - 43
  - 47
  - 53
  - 55
  - 62
  pip._internal.operations.build.wheel:
  - 9
  pip._internal.operations.build.wheel.build_wheel_pep517:
  - 35
  - 37
  - 18
  - 24
  - 26
  - 29
  - 30
  pip._internal.operations.build.wheel_editable:
  - 9
  pip._internal.operations.build.wheel_editable.build_wheel_editable:
  - 36
  - 44
  - 46
  - 18
  - 24
  - 26
  - 29
  - 31
  pip._internal.operations.build.wheel_legacy:
  - 9
  pip._internal.operations.build.wheel_legacy.build_wheel_legacy:
  - 67
  - 71
  - 79
  - 80
  - 83
  - 90
  - 91
  - 94
  - 95
  pip._internal.operations.build.wheel_legacy.format_command_result:
  - 16
  - 17
  - 20
  - 22
  - 25
  pip._internal.operations.build.wheel_legacy.get_legacy_build_wheel_path:
  - 39
  - 41
  - 42
  - 43
  - 44
  - 45
  - 48
  - 49
  - 53
  - 54
  - 56
  pip._internal.operations.check:
  - 1
  - 18
  pip._internal.operations.check._create_whitelist:
  - 143
  - 145
  - 146
  - 149
  - 150
  - 151
  pip._internal.operations.check._simulate_installation_of:
  - 129
  - 130
  - 131
  - 133
  - 135
  - 124
  - 126
  pip._internal.operations.check.check_install_conflicts:
  - 102
  - 106
  - 108
  - 111
  - 115
  - 116
  pip._internal.operations.check.check_package_set:
  - 57
  - 63
  - 68
  - 70
  - 71
  - 73
  - 76
  - 77
  - 80
  - 82
  - 83
  - 84
  - 85
  - 90
  - 91
  - 93
  - 94
  - 95
  - 96
  pip._internal.operations.check.create_package_set_from_installed:
  - 38
  - 41
  - 42
  - 45
  - 46
  - 49
  pip._internal.operations.check.warn_legacy_versions_and_specifiers:
  - 160
  - 173
  - 174
  - 175
  - 158
  - 159
  pip._internal.operations.freeze:
  - 18
  pip._internal.operations.freeze.FrozenRequirement.__init__:
  - 229
  pip._internal.operations.freeze.FrozenRequirement.__str__:
  - 253
  - 255
  pip._internal.operations.freeze.FrozenRequirement.from_dist:
  - 237
  - 238
  - 242
  - 244
  - 247
  - 249
  pip._internal.operations.freeze._format_as_name_version:
  - 149
  pip._internal.operations.freeze._get_editable_info:
  - 155
  - 161
  - 165
  - 167
  - 168
  - 169
  - 174
  - 179
  - 182
  - 184
  - 185
  - 190
  - 191
  - 200
  - 206
  - 208
  - 210
  - 212
  - 214
  pip._internal.operations.freeze.freeze:
  - 129
  - 133
  - 134
  - 135
  - 138
  - 141
  - 142
  - 143
  - 144
  - 37
  - 42
  - 43
  - 44
  - 48
  - 53
  - 56
  - 57
  - 58
  - 59
  - 60
  - 61
  - 62
  - 63
  - 79
  - 80
  - 81
  - 82
  - 85
  - 86
  - 87
  - 89
  - 90
  - 95
  - 96
  - 100
  - 101
  - 105
  - 107
  - 112
  - 113
  - 116
  - 117
  - 121
  - 125
  - 127
  pip._internal.operations.freeze.freeze.<lambda1>:
  - 142
  pip._internal.operations.install:
  - 1
  pip._internal.operations.install.editable_legacy:
  - 1
  - 11
  pip._internal.operations.install.editable_legacy.install_editable:
  - 40
  - 42
  - 26
  - 29
  - 31
  pip._internal.operations.install.wheel:
  - 1
  - 74
  - 76
  - 63
  pip._internal.operations.install.wheel.MissingCallableSuffix.__init__:
  - 402
  pip._internal.operations.install.wheel.PipScriptMaker.make:
  - 420
  - 421
  pip._internal.operations.install.wheel.ScriptFile.save:
  - 396
  - 397
  pip._internal.operations.install.wheel.ZipBackedFile._getinfo:
  - 358
  pip._internal.operations.install.wheel.ZipBackedFile.save:
  - 384
  - 385
  - 364
  - 365
  - 375
  - 376
  - 378
  - 380
  - 381
  - 382
  pip._internal.operations.install.wheel._fs_to_record_path:
  - 234
  - 235
  - 237
  - 238
  pip._internal.operations.install.wheel._install_wheel:
  - 640
  - 641
  - 643
  - 645
  - 646
  - 647
  - 648
  - 650
  - 659
  - 533
  - 534
  - 535
  - 662
  - 537
  - 538
  - 663
  - 664
  - 665
  - 668
  - 669
  - 544
  - 670
  - 671
  - 672
  - 548
  - 549
  - 550
  - 675
  - 676
  - 553
  - 554
  - 555
  - 677
  - 557
  - 679
  - 681
  - 682
  - 684
  - 434
  - 693
  - 695
  - 698
  - 699
  - 575
  - 449
  - 578
  - 451
  - 579
  - 580
  - 582
  - 583
  - 584
  - 461
  - 604
  - 605
  - 606
  - 607
  - 608
  - 609
  - 610
  - 611
  - 612
  - 613
  - 614
  - 616
  - 617
  - 619
  - 636
  - 638
  pip._internal.operations.install.wheel._install_wheel._generate_file:
  - 656
  - 657
  - 654
  - 655
  pip._internal.operations.install.wheel._install_wheel.assert_no_path_traversal:
  - 477
  pip._internal.operations.install.wheel._install_wheel.data_scheme_file_maker:
  - 500
  pip._internal.operations.install.wheel._install_wheel.data_scheme_file_maker.make_data_scheme_file:
  - 516
  - 517
  - 524
  - 525
  - 526
  - 503
  - 505
  - 507
  pip._internal.operations.install.wheel._install_wheel.is_data_scheme_path:
  - 531
  pip._internal.operations.install.wheel._install_wheel.is_dir_path:
  - 474
  pip._internal.operations.install.wheel._install_wheel.is_entrypoint_wrapper:
  - 568
  - 563
  - 564
  - 566
  pip._internal.operations.install.wheel._install_wheel.is_script_scheme_path:
  - 541
  - 542
  pip._internal.operations.install.wheel._install_wheel.pyc_output_path:
  - 600
  - 601
  pip._internal.operations.install.wheel._install_wheel.pyc_source_file_paths:
  - 591
  - 592
  - 593
  - 595
  - 597
  pip._internal.operations.install.wheel._install_wheel.record_installed:
  - 467
  - 468
  - 470
  - 471
  pip._internal.operations.install.wheel._install_wheel.root_scheme_file_maker.make_root_scheme_file:
  - 490
  - 491
  - 492
  - 493
  pip._internal.operations.install.wheel._normalized_outrows:
  - 204
  - 222
  - 223
  pip._internal.operations.install.wheel._raise_for_invalid_entrypoint:
  - 411
  - 412
  pip._internal.operations.install.wheel._record_to_fs_path:
  - 228
  pip._internal.operations.install.wheel.csv_io_kwargs:
  - 88
  pip._internal.operations.install.wheel.fix_script:
  - 99
  - 101
  - 102
  - 103
  - 105
  - 106
  - 107
  - 108
  - 109
  - 110
  - 95
  pip._internal.operations.install.wheel.get_console_script_specs:
  - 274
  - 279
  - 314
  - 315
  - 316
  - 317
  - 319
  - 320
  - 322
  - 324
  - 325
  - 327
  - 328
  - 329
  - 330
  - 332
  - 333
  - 337
  - 339
  - 343
  pip._internal.operations.install.wheel.get_csv_rows_for_installed:
  - 256
  - 257
  - 258
  - 259
  - 261
  - 262
  - 263
  - 264
  - 265
  - 266
  - 267
  - 269
  - 248
  - 253
  - 254
  - 255
  pip._internal.operations.install.wheel.get_entrypoints:
  - 121
  - 122
  - 124
  pip._internal.operations.install.wheel.install_wheel:
  - 721
  - 722
  - 723
  pip._internal.operations.install.wheel.message_about_scripts_not_on_PATH:
  - 130
  - 134
  - 138
  - 139
  - 140
  - 141
  - 142
  - 146
  - 147
  - 151
  - 152
  - 156
  - 157
  - 159
  - 164
  - 165
  - 166
  - 169
  - 170
  - 173
  - 181
  - 182
  - 184
  - 187
  - 188
  - 190
  - 195
  - 198
  pip._internal.operations.install.wheel.rehash:
  - 81
  - 82
  - 83
  - 84
  pip._internal.operations.install.wheel.req_error_context:
  - 705
  pip._internal.operations.install.wheel.wheel_root_is_purelib:
  - 115
  pip._internal.operations.prepare:
  - 56
  - 1
  pip._internal.operations.prepare.File.__init__:
  - 86
  - 87
  pip._internal.operations.prepare.RequirementPreparer:
  - 214
  pip._internal.operations.prepare.RequirementPreparer.__init__:
  - 240
  - 233
  - 239
  pip._internal.operations.prepare.RequirementPreparer._complete_partial_requirements:
  - 481
  - 450
  - 482
  - 453
  - 486
  - 487
  - 459
  - 463
  - 464
  - 467
  - 468
  pip._internal.operations.prepare.RequirementPreparer._ensure_link_req_src_dir:
  - 322
  - 304
  - 306
  - 311
  - 317
  pip._internal.operations.prepare.RequirementPreparer._fetch_metadata_only:
  - 360
  - 361
  - 365
  - 366
  - 371
  - 373
  pip._internal.operations.prepare.RequirementPreparer._fetch_metadata_using_lazy_wheel:
  - 420
  - 422
  - 424
  - 425
  - 431
  - 432
  - 433
  - 438
  - 440
  - 442
  pip._internal.operations.prepare.RequirementPreparer._fetch_metadata_using_link_data_attr:
  - 385
  - 391
  - 394
  - 396
  - 397
  - 399
  - 410
  - 379
  - 381
  - 382
  pip._internal.operations.prepare.RequirementPreparer._get_linked_req_hashes:
  - 354
  - 330
  - 331
  - 337
  - 339
  - 347
  pip._internal.operations.prepare.RequirementPreparer._log_preparing_link:
  - 289
  - 290
  - 293
  - 295
  - 297
  - 298
  - 299
  - 275
  - 276
  - 278
  - 281
  - 285
  - 286
  pip._internal.operations.prepare.RequirementPreparer._prepare_linked_requirement:
  - 640
  - 563
  - 565
  - 571
  - 572
  - 574
  - 582
  - 590
  - 592
  - 594
  - 596
  - 611
  - 612
  - 613
  - 616
  - 620
  - 625
  - 626
  - 630
  - 637
  pip._internal.operations.prepare.RequirementPreparer.prepare_editable_requirement:
  - 704
  - 679
  - 682
  - 684
  - 685
  - 691
  - 692
  - 694
  - 696
  pip._internal.operations.prepare.RequirementPreparer.prepare_installed_requirement:
  - 713
  - 719
  - 722
  - 723
  - 724
  - 730
  pip._internal.operations.prepare.RequirementPreparer.prepare_linked_requirement:
  - 514
  - 519
  - 520
  - 492
  - 525
  - 494
  - 495
  - 499
  - 500
  - 501
  pip._internal.operations.prepare.RequirementPreparer.prepare_linked_requirements_more:
  - 544
  - 545
  - 546
  - 548
  - 552
  - 530
  - 532
  - 534
  - 535
  - 536
  - 537
  pip._internal.operations.prepare.RequirementPreparer.save_linked_requirement:
  - 672
  - 673
  - 653
  - 655
  - 658
  - 659
  - 665
  - 669
  - 670
  - 671
  pip._internal.operations.prepare._check_download_dir:
  - 192
  - 194
  - 198
  - 199
  - 201
  - 203
  - 204
  - 208
  - 189
  pip._internal.operations.prepare._get_prepared_distribution:
  - 66
  - 67
  - 69
  - 70
  - 71
  - 74
  pip._internal.operations.prepare.get_file_url:
  - 135
  - 136
  - 137
  - 119
  - 122
  - 123
  - 125
  pip._internal.operations.prepare.get_http_url:
  - 98
  - 101
  - 102
  - 104
  - 109
  - 110
  - 111
  - 113
  pip._internal.operations.prepare.unpack_url:
  - 160
  - 163
  - 164
  - 168
  - 177
  - 178
  - 148
  - 156
  - 157
  pip._internal.operations.prepare.unpack_vcs_link:
  - 80
  - 78
  pip._internal.pyproject:
  - 24
  pip._internal.pyproject._is_list_of_str:
  - 17
  pip._internal.pyproject.load_pyproject_toml:
  - 140
  - 145
  - 152
  - 154
  - 32
  - 161
  - 162
  - 164
  - 179
  - 53
  - 54
  - 56
  - 62
  - 63
  - 64
  - 65
  - 75
  - 76
  - 82
  - 83
  - 101
  - 104
  - 105
  - 113
  - 116
  pip._internal.pyproject.make_pyproject_path:
  - 21
  pip._internal.req:
  - 18
  pip._internal.req._validate_requirements:
  - 32
  - 34
  pip._internal.req.constructors:
  - 40
  - 1
  - 39
  pip._internal.req.constructors._get_url_from_path:
  - 288
  - 289
  - 296
  - 298
  - 299
  - 300
  - 301
  - 305
  - 309
  - 279
  - 287
  pip._internal.req.constructors._looks_like_path:
  - 273
  - 260
  - 269
  - 271
  pip._internal.req.constructors._set_requirement_extras:
  - 67
  - 70
  - 77
  - 78
  - 82
  - 83
  - 62
  pip._internal.req.constructors._strip_extras:
  - 48
  - 44
  - 46
  - 47
  pip._internal.req.constructors.check_first_requirement_in_file:
  - 160
  - 161
  - 163
  - 164
  - 165
  - 142
  - 150
  - 154
  - 155
  - 158
  pip._internal.req.constructors.convert_extras:
  - 56
  - 57
  - 58
  pip._internal.req.constructors.deduce_helpful_msg:
  - 170
  - 180
  - 182
  - 175
  pip._internal.req.constructors.install_req_drop_extras:
  - 536
  - 541
  - 543
  pip._internal.req.constructors.install_req_extend_extras:
  - 569
  - 572
  - 565
  pip._internal.req.constructors.install_req_from_editable:
  - 240
  - 242
  pip._internal.req.constructors.install_req_from_line:
  - 423
  - 421
  - 415
  pip._internal.req.constructors.install_req_from_link_and_ireq:
  - 520
  pip._internal.req.constructors.install_req_from_parsed_requirement:
  - 484
  - 485
  - 496
  - 502
  - 507
  pip._internal.req.constructors.install_req_from_req_string:
  - 455
  - 468
  - 447
  pip._internal.req.constructors.parse_editable:
  - 100
  - 133
  - 102
  - 104
  - 106
  - 107
  - 108
  - 138
  - 112
  - 115
  - 117
  - 118
  - 87
  - 122
  - 124
  - 125
  pip._internal.req.constructors.parse_req_from_editable:
  - 209
  - 211
  - 213
  - 219
  - 221
  pip._internal.req.constructors.parse_req_from_line:
  - 394
  - 395
  - 399
  - 313
  - 317
  - 318
  - 319
  - 320
  - 323
  - 326
  - 328
  - 332
  - 333
  - 335
  - 336
  - 337
  - 338
  - 341
  - 343
  - 344
  - 346
  - 347
  - 358
  pip._internal.req.constructors.parse_req_from_line._parse_req_string:
  - 387
  - 388
  - 389
  - 367
  - 369
  - 371
  - 372
  - 378
  - 379
  pip._internal.req.constructors.parse_req_from_line.with_source:
  - 361
  pip._internal.req.install_given_reqs:
  - 64
  - 65
  - 66
  - 67
  - 72
  - 47
  - 83
  - 52
  - 84
  - 54
  - 55
  - 87
  - 57
  - 90
  - 88
  - 62
  - 63
  pip._internal.req.req_file:
  - 1
  - 33
  - 42
  - 43
  - 49
  - 81
  - 83
  - 86
  pip._internal.req.req_file.ParsedLine.__init__:
  - 121
  - 125
  pip._internal.req.req_file.RequirementsFileParser._parse_and_recurse:
  - 352
  - 354
  - 356
  - 358
  - 359
  - 363
  - 365
  - 339
  - 340
  - 344
  pip._internal.req.req_file.RequirementsFileParser._parse_file:
  - 370
  - 372
  - 374
  - 376
  - 382
  pip._internal.req.req_file.RequirementsFileParser.parse:
  - 333
  - 334
  pip._internal.req.req_file.break_args_options:
  - 416
  - 420
  - 423
  - 424
  - 427
  - 428
  - 429
  pip._internal.req.req_file.build_parser:
  - 438
  - 441
  - 444
  - 445
  - 446
  pip._internal.req.req_file.expand_env_variables:
  - 518
  - 519
  - 520
  - 521
  - 524
  - 526
  - 503
  pip._internal.req.req_file.get_file_content:
  - 547
  - 548
  - 530
  - 537
  - 540
  - 541
  - 542
  pip._internal.req.req_file.get_line_parser.parse_line:
  - 395
  - 396
  - 398
  - 401
  - 404
  - 408
  pip._internal.req.req_file.handle_line:
  - 307
  - 306
  - 283
  - 310
  pip._internal.req.req_file.handle_option_line:
  - 256
  - 258
  - 265
  - 266
  - 268
  - 269
  - 271
  - 272
  - 274
  - 215
  - 216
  - 222
  - 224
  - 226
  - 227
  - 232
  - 236
  - 239
  - 241
  - 242
  - 243
  - 248
  - 249
  - 250
  - 252
  - 254
  pip._internal.req.req_file.handle_requirement_line:
  - 192
  - 193
  - 197
  - 178
  - 187
  pip._internal.req.req_file.ignore_comments:
  - 492
  - 495
  - 496
  - 497
  - 498
  - 499
  pip._internal.req.req_file.join_lines:
  - 481
  - 484
  - 486
  - 461
  - 466
  - 467
  - 468
  - 471
  - 472
  - 474
  - 477
  - 479
  pip._internal.req.req_file.parse_requirements:
  - 141
  - 150
  - 151
  - 153
  - 154
  - 157
  - 158
  pip._internal.req.req_file.preprocess:
  - 162
  - 166
  - 167
  - 168
  - 169
  pip._internal.req.req_install:
  - 62
  pip._internal.req.req_install.InstallRequirement:
  - 66
  pip._internal.req.req_install.InstallRequirement.__init__:
  - 160
  - 129
  - 131
  - 134
  - 103
  - 135
  - 105
  - 106
  - 186
  - 110
  - 112
  - 185
  - 90
  - 187
  - 126
  pip._internal.req.req_install.InstallRequirement.__repr__:
  - 225
  - 226
  pip._internal.req.req_install.InstallRequirement.__str__:
  - 201
  - 202
  - 203
  - 204
  - 205
  - 206
  - 209
  - 210
  - 211
  - 215
  - 216
  - 219
  - 220
  pip._internal.req.req_install.InstallRequirement._get_archive_name:
  - 740
  - 741
  pip._internal.req.req_install.InstallRequirement._get_archive_name._clean_zip_name:
  - 736
  - 732
  - 735
  pip._internal.req.req_install.InstallRequirement._set_requirement:
  - 392
  - 403
  - 404
  - 398
  pip._internal.req.req_install.InstallRequirement.archive:
  - 768
  - 769
  - 770
  - 772
  - 773
  - 775
  - 776
  - 777
  - 779
  - 782
  - 789
  - 790
  - 791
  - 792
  - 797
  - 799
  - 800
  - 801
  - 806
  - 807
  - 809
  - 745
  - 750
  - 754
  - 755
  - 757
  - 758
  - 759
  - 763
  - 765
  - 766
  - 767
  pip._internal.req.req_install.InstallRequirement.assert_source_matches_version:
  - 632
  - 625
  - 626
  - 634
  pip._internal.req.req_install.InstallRequirement.check_if_exists:
  - 448
  - 449
  - 451
  - 460
  - 432
  - 436
  - 438
  - 439
  - 442
  - 446
  pip._internal.req.req_install.InstallRequirement.ensure_build_location:
  - 352
  - 384
  - 355
  - 359
  - 371
  - 372
  - 373
  - 377
  - 378
  - 379
  - 380
  pip._internal.req.req_install.InstallRequirement.ensure_has_source_dir:
  - 656
  - 646
  - 655
  pip._internal.req.req_install.InstallRequirement.ensure_pristine_source_checkout:
  - 667
  - 669
  - 670
  - 671
  pip._internal.req.req_install.InstallRequirement.format_debug:
  - 230
  - 231
  - 232
  - 234
  - 235
  - 237
  pip._internal.req.req_install.InstallRequirement.from_path:
  - 334
  - 335
  - 337
  - 338
  - 340
  - 343
  - 344
  pip._internal.req.req_install.InstallRequirement.get_dist:
  - 609
  - 610
  - 611
  - 613
  - 614
  - 615
  pip._internal.req.req_install.InstallRequirement.has_hash_options:
  - 304
  - 298
  pip._internal.req.req_install.InstallRequirement.hashes:
  - 321
  - 322
  - 324
  - 328
  - 330
  - 331
  - 307
  pip._internal.req.req_install.InstallRequirement.install:
  - 832
  - 833
  - 839
  - 822
  - 856
  - 860
  - 831
  pip._internal.req.req_install.InstallRequirement.is_direct:
  - 266
  pip._internal.req.req_install.InstallRequirement.is_pinned:
  - 277
  - 271
  pip._internal.req.req_install.InstallRequirement.is_wheel:
  - 471
  pip._internal.req.req_install.InstallRequirement.isolated_editable_sanity_check:
  - 537
  - 546
  - 547
  - 542
  pip._internal.req.req_install.InstallRequirement.load_pyproject_toml:
  - 516
  - 517
  - 520
  - 529
  - 509
  pip._internal.req.req_install.InstallRequirement.match_markers:
  - 289
  - 290
  - 280
  - 284
  - 285
  - 286
  pip._internal.req.req_install.InstallRequirement.metadata:
  - 603
  - 604
  pip._internal.req.req_install.InstallRequirement.name:
  - 243
  pip._internal.req.req_install.InstallRequirement.prepare_metadata:
  - 579
  - 585
  - 558
  - 594
  - 595
  - 597
  - 566
  - 599
  - 568
  - 573
  pip._internal.req.req_install.InstallRequirement.pyproject_toml_path:
  - 506
  pip._internal.req.req_install.InstallRequirement.setup_cfg_path:
  - 499
  pip._internal.req.req_install.InstallRequirement.setup_py_path:
  - 492
  pip._internal.req.req_install.InstallRequirement.supports_pyproject_editable:
  - 256
  - 249
  - 253
  - 257
  pip._internal.req.req_install.InstallRequirement.uninstall:
  - 707
  - 720
  - 721
  - 722
  - 724
  - 726
  - 727
  pip._internal.req.req_install.InstallRequirement.unpacked_source_directory:
  - 485
  pip._internal.req.req_install.InstallRequirement.update_editable:
  - 685
  - 686
  - 693
  - 696
  - 700
  - 701
  pip._internal.req.req_install.InstallRequirement.warn_on_mismatching_name:
  - 416
  - 429
  - 421
  - 415
  pip._internal.req.req_install._has_option:
  - 898
  - 900
  - 901
  pip._internal.req.req_install.check_invalid_constraint_type:
  - 872
  - 874
  - 876
  - 879
  - 880
  pip._internal.req.req_install.check_legacy_setup_py_options:
  - 910
  - 911
  - 912
  - 913
  - 919
  - 923
  pip._internal.req.req_set:
  - 12
  pip._internal.req.req_set.RequirementSet.__init__:
  - 17
  - 19
  pip._internal.req.req_set.RequirementSet.__repr__:
  - 32
  - 33
  - 34
  - 38
  - 40
  - 41
  pip._internal.req.req_set.RequirementSet.__repr__.<lambda1>:
  - 34
  pip._internal.req.req_set.RequirementSet.__str__:
  - 25
  - 26
  - 27
  - 29
  pip._internal.req.req_set.RequirementSet.__str__.<lambda1>:
  - 27
  pip._internal.req.req_set.RequirementSet.add_named_requirement:
  - 51
  pip._internal.req.req_set.RequirementSet.add_unnamed_requirement:
  - 46
  pip._internal.req.req_set.RequirementSet.all_requirements:
  - 72
  pip._internal.req.req_set.RequirementSet.get_requirement:
  - 65
  - 63
  pip._internal.req.req_set.RequirementSet.has_requirement:
  - 55
  pip._internal.req.req_set.RequirementSet.requirements_to_install:
  - 76
  pip._internal.req.req_set.RequirementSet.warn_legacy_versions_and_specifiers:
  - 104
  - 105
  - 106
  - 88
  - 89
  - 90
  - 91
  pip._internal.req.req_uninstall:
  - 18
  pip._internal.req.req_uninstall.StashedUninstallPathSet:
  - 201
  pip._internal.req.req_uninstall.StashedUninstallPathSet._get_directory_stash:
  - 221
  - 219
  - 213
  - 222
  pip._internal.req.req_uninstall.StashedUninstallPathSet._get_file_stash:
  - 227
  - 231
  - 232
  - 241
  - 244
  - 245
  - 248
  - 249
  - 250
  pip._internal.req.req_uninstall.StashedUninstallPathSet.can_rollback:
  - 302
  pip._internal.req.req_uninstall.StashedUninstallPathSet.commit:
  - 275
  - 276
  - 277
  pip._internal.req.req_uninstall.StashedUninstallPathSet.rollback:
  - 288
  - 289
  - 290
  - 291
  - 292
  - 293
  - 295
  - 296
  - 298
  - 282
  - 283
  - 284
  - 286
  pip._internal.req.req_uninstall.StashedUninstallPathSet.stash:
  - 257
  - 258
  - 259
  - 261
  - 263
  - 264
  - 270
  - 271
  - 254
  pip._internal.req.req_uninstall.UninstallPathSet:
  - 306
  pip._internal.req.req_uninstall.UninstallPathSet.__init__:
  - 318
  - 314
  - 310
  - 311
  pip._internal.req.req_uninstall.UninstallPathSet._allowed_to_proceed:
  - 389
  - 400
  - 401
  - 405
  - 406
  - 408
  - 409
  - 410
  - 411
  - 412
  - 414
  pip._internal.req.req_uninstall.UninstallPathSet._allowed_to_proceed._display:
  - 392
  - 395
  - 396
  - 397
  - 398
  pip._internal.req.req_uninstall.UninstallPathSet._permitted:
  - 329
  - 321
  - 327
  pip._internal.req.req_uninstall.UninstallPathSet.add:
  - 332
  - 336
  - 338
  - 340
  - 341
  - 343
  - 347
  - 348
  pip._internal.req.req_uninstall.UninstallPathSet.add_pth:
  - 352
  - 353
  - 354
  - 355
  - 357
  - 351
  pip._internal.req.req_uninstall.UninstallPathSet.commit:
  - 430
  - 431
  pip._internal.req.req_uninstall.UninstallPathSet.from_dist:
  - 520
  - 524
  - 525
  - 526
  - 527
  - 530
  - 532
  - 533
  - 534
  - 536
  - 539
  - 540
  - 541
  - 544
  - 550
  - 551
  - 552
  - 554
  - 557
  - 563
  - 564
  - 437
  - 438
  - 566
  - 442
  - 570
  - 444
  - 445
  - 446
  - 571
  - 572
  - 573
  - 452
  - 454
  - 456
  - 459
  - 588
  - 589
  - 464
  - 466
  - 467
  - 475
  - 478
  - 483
  - 484
  - 485
  - 486
  - 487
  - 488
  - 489
  - 493
  - 495
  - 499
  - 500
  - 502
  - 505
  - 506
  - 507
  - 508
  - 509
  - 511
  pip._internal.req.req_uninstall.UninstallPathSet.from_dist.iter_scripts_to_remove:
  - 582
  - 583
  - 584
  - 585
  - 586
  pip._internal.req.req_uninstall.UninstallPathSet.remove:
  - 384
  - 386
  - 360
  - 363
  - 364
  - 371
  - 373
  - 374
  - 377
  - 379
  - 380
  - 381
  - 383
  pip._internal.req.req_uninstall.UninstallPathSet.rollback:
  - 417
  - 418
  - 419
  - 424
  - 425
  - 426
  - 427
  pip._internal.req.req_uninstall.UninstallPthEntries.__init__:
  - 597
  pip._internal.req.req_uninstall.UninstallPthEntries.add:
  - 601
  - 611
  - 612
  - 613
  pip._internal.req.req_uninstall.UninstallPthEntries.remove:
  - 640
  - 616
  - 619
  - 620
  - 622
  - 624
  - 626
  - 631
  - 632
  - 633
  - 635
  - 636
  - 639
  pip._internal.req.req_uninstall.UninstallPthEntries.rollback:
  - 643
  - 644
  - 646
  - 647
  - 648
  pip._internal.req.req_uninstall._script_names:
  - 32
  - 33
  - 34
  - 35
  - 37
  - 24
  - 28
  - 29
  - 30
  pip._internal.req.req_uninstall._unique:
  - 43
  pip._internal.req.req_uninstall._unique.unique:
  - 45
  - 46
  - 47
  - 48
  - 49
  pip._internal.req.req_uninstall.compact:
  - 99
  - 105
  - 106
  - 107
  - 108
  - 109
  - 112
  - 113
  pip._internal.req.req_uninstall.compress_for_output_listing:
  - 152
  - 162
  - 163
  - 166
  - 167
  - 168
  - 169
  - 171
  - 172
  - 173
  - 175
  - 177
  - 181
  - 182
  - 183
  - 184
  - 187
  - 188
  - 189
  - 190
  - 193
  - 195
  pip._internal.req.req_uninstall.compress_for_rename:
  - 131
  - 132
  - 136
  - 137
  - 138
  - 139
  - 140
  - 144
  - 145
  - 146
  - 148
  - 118
  - 123
  - 124
  - 125
  - 126
  pip._internal.req.req_uninstall.compress_for_rename.norm_join:
  - 129
  pip._internal.req.req_uninstall.uninstallation_paths:
  - 72
  - 73
  - 76
  - 86
  - 87
  - 56
  - 89
  - 90
  - 88
  - 92
  - 93
  - 94
  - 95
  pip._internal.resolution.legacy.resolver:
  - 1
  - 53
  pip._internal.resolution.legacy.resolver.Resolver:
  - 114
  pip._internal.resolution.legacy.resolver.Resolver.__init__:
  - 137
  - 140
  - 134
  - 156
  pip._internal.resolution.legacy.resolver.Resolver._add_requirement_to_set:
  - 264
  - 273
  - 274
  - 280
  - 286
  - 297
  - 299
  - 300
  - 302
  - 202
  - 217
  - 218
  - 229
  - 230
  - 231
  - 232
  - 244
  - 245
  - 251
  pip._internal.resolution.legacy.resolver.Resolver._check_skip_installed:
  - 353
  - 354
  - 357
  - 358
  - 361
  - 362
  - 333
  - 369
  - 371
  - 381
  - 350
  pip._internal.resolution.legacy.resolver.Resolver._find_requirement_link:
  - 385
  - 386
  - 387
  - 392
  - 402
  pip._internal.resolution.legacy.resolver.Resolver._get_dist_for:
  - 448
  - 480
  - 481
  - 483
  - 453
  - 455
  - 456
  - 459
  - 460
  - 470
  - 471
  - 473
  - 444
  - 447
  pip._internal.resolution.legacy.resolver.Resolver._is_upgrade_allowed:
  - 312
  - 314
  pip._internal.resolution.legacy.resolver.Resolver._populate_link:
  - 419
  - 420
  - 422
  - 424
  - 427
  - 429
  - 430
  - 431
  - 433
  - 438
  - 407
  pip._internal.resolution.legacy.resolver.Resolver._resolve_one:
  - 534
  - 537
  - 542
  - 546
  - 547
  - 548
  - 550
  - 552
  - 553
  - 555
  - 556
  - 563
  - 564
  - 566
  - 567
  - 494
  - 501
  - 507
  - 510
  pip._internal.resolution.legacy.resolver.Resolver._resolve_one.add_req:
  - 522
  - 524
  - 530
  - 531
  - 532
  pip._internal.resolution.legacy.resolver.Resolver._set_req_to_reinstall:
  - 321
  - 326
  pip._internal.resolution.legacy.resolver.Resolver.get_installation_order:
  - 584
  - 596
  - 597
  - 574
  pip._internal.resolution.legacy.resolver.Resolver.get_installation_order.schedule:
  - 587
  - 589
  - 591
  - 592
  - 593
  - 594
  pip._internal.resolution.legacy.resolver.Resolver.resolve:
  - 161
  - 171
  - 172
  - 173
  - 174
  - 175
  - 182
  - 183
  - 185
  - 188
  - 190
  pip._internal.resolution.legacy.resolver._check_dist_requires_python:
  - 96
  - 97
  - 98
  - 79
  - 83
  - 88
  - 93
  - 63
  pip._internal.resolution.resolvelib.base.Candidate.name:
  - 111
  pip._internal.resolution.resolvelib.base.Candidate.project_name:
  - 101
  pip._internal.resolution.resolvelib.base.Constraint.__and__:
  - 43
  - 46
  - 48
  - 49
  - 50
  pip._internal.resolution.resolvelib.base.Constraint.__bool__:
  - 40
  pip._internal.resolution.resolvelib.base.Constraint.empty:
  - 32
  pip._internal.resolution.resolvelib.base.Constraint.from_ireq:
  - 36
  - 37
  pip._internal.resolution.resolvelib.base.Constraint.is_satisfied_by:
  - 59
  - 54
  pip._internal.resolution.resolvelib.base.Requirement.name:
  - 75
  pip._internal.resolution.resolvelib.base.Requirement.project_name:
  - 65
  pip._internal.resolution.resolvelib.base._match_link:
  - 93
  - 94
  pip._internal.resolution.resolvelib.base.format_name:
  - 16
  - 18
  pip._internal.resolution.resolvelib.candidates:
  - 26
  - 29
  - 38
  pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__eq__:
  - 360
  pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__hash__:
  - 357
  pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__init__:
  - 339
  - 348
  pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.__str__:
  - 351
  pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.iter_dependencies:
  - 386
  - 388
  - 389
  pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate.version:
  - 374
  pip._internal.resolution.resolvelib.candidates.EditableCandidate.__init__:
  - 315
  - 318
  pip._internal.resolution.resolvelib.candidates.EditableCandidate._prepare_distribution:
  - 325
  pip._internal.resolution.resolvelib.candidates.ExtrasCandidate:
  - 396
  pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__eq__:
  - 458
  pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__hash__:
  - 455
  pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__init__:
  - 444
  - 427
  - 436
  pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.__str__:
  - 448
  - 449
  pip._internal.resolution.resolvelib.candidates.ExtrasCandidate._calculate_valid_requested_extras:
  - 521
  - 527
  - 528
  - 531
  - 533
  pip._internal.resolution.resolvelib.candidates.ExtrasCandidate._warn_invalid_extras:
  - 512
  - 513
  - 497
  - 502
  - 510
  pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.format_for_error:
  - 476
  - 477
  pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.iter_dependencies:
  - 545
  - 546
  - 547
  - 548
  - 541
  - 542
  pip._internal.resolution.resolvelib.candidates.ExtrasCandidate.name:
  - 468
  - 469
  pip._internal.resolution.resolvelib.candidates.LinkCandidate.__init__:
  - 290
  - 259
  - 260
  - 261
  - 263
  - 265
  - 266
  - 267
  - 270
  - 271
  - 272
  - 276
  - 279
  - 281
  - 286
  pip._internal.resolution.resolvelib.candidates.LinkCandidate._prepare_distribution:
  - 301
  pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate.__init__:
  - 569
  - 565
  - 566
  pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate:
  - 123
  pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.__eq__:
  - 168
  - 169
  pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.__hash__:
  - 165
  pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.__init__:
  - 156
  pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.__repr__:
  - 162
  pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate._check_metadata_consistency:
  - 212
  - 204
  - 205
  pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate._prepare:
  - 234
  - 222
  pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.format_for_error:
  - 194
  pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.iter_dependencies:
  - 240
  - 241
  - 238
  - 239
  pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.project_name:
  - 178
  - 179
  pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate.version:
  - 189
  pip._internal.resolution.resolvelib.candidates._make_install_req_from_dist:
  - 107
  - 101
  - 102
  - 103
  pip._internal.resolution.resolvelib.candidates.as_base_candidate:
  - 48
  - 42
  pip._internal.resolution.resolvelib.candidates.make_install_req_from_editable:
  - 82
  pip._internal.resolution.resolvelib.candidates.make_install_req_from_link:
  - 57
  - 58
  - 61
  pip._internal.resolution.resolvelib.factory:
  - 80
  - 73
  - 82
  pip._internal.resolution.resolvelib.factory.Factory.__init__:
  - 122
  - 123
  - 108
  - 126
  pip._internal.resolution.resolvelib.factory.Factory._fail_if_link_is_unsupported_wheel:
  - 136
  - 138
  - 139
  pip._internal.resolution.resolvelib.factory.Factory._iter_candidates_from_constraints:
  - 384
  - 385
  - 371
  - 376
  - 377
  - 378
  - 380
  - 381
  pip._internal.resolution.resolvelib.factory.Factory._iter_explicit_candidates_from_base:
  - 355
  - 356
  - 357
  - 361
  - 363
  - 348
  pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates:
  - 263
  - 265
  - 266
  - 269
  - 270
  - 336
  - 338
  - 254
  pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates._get_installed_candidate:
  - 292
  - 273
  - 276
  - 284
  - 286
  pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates.iter_index_candidate_infos:
  - 320
  - 323
  - 324
  - 326
  - 297
  - 302
  - 334
  - 307
  pip._internal.resolution.resolvelib.factory.Factory._iter_found_candidates.iter_index_candidate_infos.is_pinned:
  - 313
  - 315
  - 310
  - 311
  pip._internal.resolution.resolvelib.factory.Factory._make_base_candidate_from_link:
  - 226
  - 228
  - 199
  - 204
  - 205
  - 236
  - 207
  - 215
  pip._internal.resolution.resolvelib.factory.Factory._make_candidate_from_dist:
  - 168
  - 170
  - 172
  pip._internal.resolution.resolvelib.factory.Factory._make_candidate_from_link:
  - 185
  - 187
  - 182
  pip._internal.resolution.resolvelib.factory.Factory._make_extras_candidate:
  - 155
  - 151
  pip._internal.resolution.resolvelib.factory.Factory._make_requirements_from_install_req:
  - 480
  - 481
  - 482
  - 483
  - 512
  - 485
  - 490
  - 492
  - 493
  - 496
  - 465
  - 503
  - 505
  - 474
  - 475
  - 508
  - 509
  - 511
  pip._internal.resolution.resolvelib.factory.Factory._report_requires_python_error:
  - 645
  - 646
  - 651
  - 654
  - 655
  - 656
  - 658
  pip._internal.resolution.resolvelib.factory.Factory._report_single_requirement_conflict:
  - 663
  - 664
  - 668
  - 669
  - 671
  - 672
  - 673
  - 675
  - 676
  - 678
  - 680
  - 681
  - 683
  - 686
  - 688
  - 690
  - 691
  - 694
  - 696
  - 700
  - 702
  - 703
  - 710
  pip._internal.resolution.resolvelib.factory.Factory.collect_root_requirements:
  - 545
  - 518
  - 519
  - 520
  - 522
  - 523
  - 554
  - 525
  - 528
  - 529
  - 532
  - 534
  - 535
  - 540
  - 543
  pip._internal.resolution.resolvelib.factory.Factory.find_candidates:
  - 396
  - 398
  - 399
  - 400
  - 401
  - 402
  - 403
  - 407
  - 408
  - 409
  - 410
  - 411
  - 412
  - 413
  - 416
  - 417
  - 418
  - 419
  - 425
  - 427
  - 428
  - 441
  - 445
  - 446
  - 457
  - 458
  - 459
  pip._internal.resolution.resolvelib.factory.Factory.get_dist_to_uninstall:
  - 612
  - 613
  - 619
  - 623
  - 630
  pip._internal.resolution.resolvelib.factory.Factory.get_installation_error:
  - 768
  - 769
  - 771
  - 772
  - 780
  - 783
  - 784
  - 785
  - 786
  - 788
  - 792
  - 793
  - 806
  - 808
  - 724
  - 725
  - 727
  - 730
  - 731
  - 739
  - 741
  - 742
  - 762
  - 763
  - 764
  - 766
  pip._internal.resolution.resolvelib.factory.Factory.get_installation_error.describe_trigger:
  - 755
  - 756
  - 758
  - 759
  - 760
  pip._internal.resolution.resolvelib.factory.Factory.get_installation_error.text_join:
  - 752
  - 749
  pip._internal.resolution.resolvelib.factory.Factory.get_wheel_cache_entry:
  - 594
  - 604
  - 602
  - 607
  pip._internal.resolution.resolvelib.factory.Factory.make_requirement_from_candidate:
  - 560
  pip._internal.resolution.resolvelib.factory.Factory.make_requirements_from_spec:
  - 568
  - 577
  - 578
  pip._internal.resolution.resolvelib.factory.Factory.make_requires_python_requirement:
  - 584
  - 587
  - 589
  pip._internal.resolution.resolvelib.found_candidates:
  - 1
  - 21
  pip._internal.resolution.resolvelib.found_candidates.FoundCandidates:
  - 109
  - 151
  pip._internal.resolution.resolvelib.found_candidates.FoundCandidates.__bool__:
  - 153
  - 155
  pip._internal.resolution.resolvelib.found_candidates.FoundCandidates.__iter__:
  - 136
  - 137
  - 138
  - 139
  - 140
  - 142
  - 143
  pip._internal.resolution.resolvelib.found_candidates._iter_built:
  - 38
  - 43
  - 44
  - 45
  - 47
  - 48
  - 50
  - 51
  pip._internal.resolution.resolvelib.found_candidates._iter_built_with_inserted:
  - 96
  - 97
  - 98
  - 100
  - 101
  - 104
  - 105
  - 79
  - 89
  - 90
  - 91
  - 94
  - 95
  pip._internal.resolution.resolvelib.found_candidates._iter_built_with_prepended:
  - 64
  - 66
  - 67
  - 69
  - 70
  - 72
  - 73
  - 57
  pip._internal.resolution.resolvelib.provider:
  - 49
  - 50
  - 20
  pip._internal.resolution.resolvelib.provider.PipProvider:
  - 79
  pip._internal.resolution.resolvelib.provider.PipProvider.__init__:
  - 102
  pip._internal.resolution.resolvelib.provider.PipProvider.find_matches:
  - 226
  - 235
  - 229
  - 231
  pip._internal.resolution.resolvelib.provider.PipProvider.find_matches._eligible_for_upgrade:
  - 217
  - 218
  - 205
  - 215
  pip._internal.resolution.resolvelib.provider.PipProvider.get_dependencies:
  - 244
  pip._internal.resolution.resolvelib.provider.PipProvider.get_preference:
  - 164
  - 136
  - 169
  - 144
  - 145
  - 146
  - 115
  - 176
  - 185
  - 157
  - 158
  pip._internal.resolution.resolvelib.provider.PipProvider.is_backtrack_cause:
  - 250
  - 251
  - 253
  pip._internal.resolution.resolvelib.provider.PipProvider.is_satisfied_by:
  - 240
  pip._internal.resolution.resolvelib.provider._get_with_identifier:
  - 72
  - 65
  - 58
  - 73
  pip._internal.resolution.resolvelib.reporter:
  - 9
  pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter:
  - 59
  pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.adding_requirement:
  - 74
  pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.ending:
  - 71
  pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.ending_round:
  - 68
  pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.pinning:
  - 80
  pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.rejecting_candidate:
  - 77
  pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.starting:
  - 62
  pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter.starting_round:
  - 65
  pip._internal.resolution.resolvelib.reporter.PipReporter.__init__:
  - 14
  pip._internal.resolution.resolvelib.reporter.PipReporter.rejecting_candidate:
  - 39
  - 43
  - 46
  - 50
  - 54
  - 55
  pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.__str__:
  - 15
  pip._internal.resolution.resolvelib.requirements.ExplicitRequirement.format_for_error:
  - 31
  pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement:
  - 103
  pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.__repr__:
  - 113
  pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.format_for_error:
  - 124
  pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.get_candidate_lookup:
  - 127
  pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement.is_satisfied_by:
  - 136
  pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.__init__:
  - 44
  pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.__repr__:
  - 50
  pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.__str__:
  - 47
  pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.format_for_error:
  - 72
  - 66
  - 67
  - 69
  pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.is_satisfied_by:
  - 87
  pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.name:
  - 59
  pip._internal.resolution.resolvelib.requirements.SpecifierRequirement.project_name:
  - 55
  pip._internal.resolution.resolvelib.requirements.SpecifierWithoutExtrasRequirement:
  - 91
  pip._internal.resolution.resolvelib.requirements.SpecifierWithoutExtrasRequirement.__init__:
  - 98
  - 99
  pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement:
  - 140
  pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.__repr__:
  - 149
  pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement.format_for_error:
  - 160
  pip._internal.resolution.resolvelib.resolver:
  - 35
  - 29
  pip._internal.resolution.resolvelib.resolver.Resolver.__init__:
  - 58
  - 55
  pip._internal.resolution.resolvelib.resolver.Resolver.get_installation_order:
  - 202
  - 207
  - 209
  - 210
  - 211
  - 188
  pip._internal.resolution.resolvelib.resolver.Resolver.resolve:
  - 129
  - 130
  - 133
  - 136
  - 139
  - 143
  - 145
  - 147
  - 161
  - 164
  - 174
  - 176
  - 179
  - 180
  - 76
  - 77
  - 84
  - 85
  - 87
  - 88
  - 95
  - 100
  - 101
  - 106
  - 111
  - 112
  - 114
  - 115
  - 116
  - 118
  - 119
  - 120
  - 121
  - 122
  pip._internal.resolution.resolvelib.resolver._req_set_item_sorter:
  - 316
  - 310
  pip._internal.resolution.resolvelib.resolver.get_topological_weights:
  - 291
  - 292
  - 296
  - 300
  - 271
  - 272
  - 273
  - 275
  - 245
  - 281
  - 220
  - 285
  - 286
  - 287
  pip._internal.resolution.resolvelib.resolver.get_topological_weights.visit:
  - 256
  - 257
  - 259
  - 262
  - 263
  - 249
  - 254
  - 255
  pip._internal.self_outdated_check:
  - 33
  - 31
  pip._internal.self_outdated_check.SelfCheckState.__init__:
  - 57
  - 58
  - 59
  - 62
  - 63
  pip._internal.self_outdated_check.SelfCheckState.get:
  - 74
  - 75
  - 78
  - 81
  - 85
  - 87
  pip._internal.self_outdated_check.SelfCheckState.set:
  - 98
  - 103
  - 109
  - 113
  - 115
  - 116
  - 121
  - 94
  pip._internal.self_outdated_check.UpgradePrompt.__rich__:
  - 133
  - 134
  - 136
  - 139
  - 140
  - 141
  - 145
  - 147
  pip._internal.self_outdated_check._convert_date:
  - 48
  - 43
  pip._internal.self_outdated_check._get_current_remote_pip_version:
  - 166
  - 174
  - 179
  - 183
  - 184
  - 187
  pip._internal.self_outdated_check._get_statefile_name:
  - 37
  - 38
  pip._internal.self_outdated_check._self_version_check_logic:
  - 197
  - 198
  - 199
  - 200
  - 201
  - 203
  - 205
  - 206
  - 207
  - 209
  - 210
  - 211
  - 218
  - 219
  pip._internal.self_outdated_check.pip_self_version_check:
  - 225
  - 231
  - 232
  - 236
  - 237
  - 238
  - 240
  - 244
  - 245
  - 247
  - 248
  pip._internal.self_outdated_check.was_installed_by_pip:
  - 153
  - 158
  pip._internal.utils._jaraco_text:
  - 1
  - 59
  pip._internal.utils._jaraco_text._:
  - 61
  pip._internal.utils._jaraco_text._nonblank:
  - 37
  pip._internal.utils._jaraco_text.drop_comment:
  - 65
  - 76
  pip._internal.utils._jaraco_text.join_continuation:
  - 102
  - 103
  - 104
  - 106
  - 109
  - 80
  pip._internal.utils._jaraco_text.yield_lines:
  - 56
  - 42
  pip._internal.utils._log:
  - 1
  pip._internal.utils._log.VerboseLogger:
  - 17
  pip._internal.utils._log.VerboseLogger.verbose:
  - 23
  pip._internal.utils._log.getLogger:
  - 27
  - 28
  pip._internal.utils._log.init_logging:
  - 32
  - 37
  - 38
  pip._internal.utils.appdirs:
  - 1
  pip._internal.utils.appdirs._macos_user_config_dir:
  - 22
  - 23
  - 28
  - 29
  - 31
  pip._internal.utils.appdirs.site_config_dirs:
  - 44
  - 45
  - 47
  - 48
  - 52
  pip._internal.utils.appdirs.user_cache_dir:
  - 17
  pip._internal.utils.appdirs.user_config_dir:
  - 35
  - 36
  - 38
  pip._internal.utils.compat:
  - 1
  - 11
  - 63
  pip._internal.utils.compat.get_path_uid:
  - 39
  - 40
  - 41
  - 42
  - 45
  - 47
  - 28
  pip._internal.utils.compatibility_tags:
  - 1
  - 18
  pip._internal.utils.compatibility_tags._custom_manylinux_platforms:
  - 48
  - 49
  - 55
  - 56
  - 57
  - 58
  - 63
  pip._internal.utils.compatibility_tags._expand_allowed_platforms:
  - 79
  - 82
  - 85
  - 86
  - 88
  - 89
  - 90
  pip._internal.utils.compatibility_tags._get_custom_interpreter:
  - 105
  - 106
  - 107
  - 108
  pip._internal.utils.compatibility_tags._get_custom_platforms:
  - 68
  - 69
  - 70
  - 71
  - 72
  pip._internal.utils.compatibility_tags._get_python_version:
  - 96
  - 97
  - 99
  pip._internal.utils.compatibility_tags._mac_platforms:
  - 37
  - 38
  - 27
  - 28
  - 29
  - 30
  pip._internal.utils.compatibility_tags.get_supported:
  - 133
  - 134
  - 136
  - 138
  - 140
  - 141
  - 142
  - 143
  - 118
  - 150
  - 151
  - 157
  - 158
  pip._internal.utils.compatibility_tags.version_info_to_nodot:
  - 23
  pip._internal.utils.datetime:
  - 1
  pip._internal.utils.datetime.today_is_later_than:
  - 8
  - 9
  pip._internal.utils.deprecation:
  - 1
  pip._internal.utils.deprecation._showwarning:
  - 32
  - 33
  - 34
  - 35
  - 38
  - 39
  - 41
  pip._internal.utils.deprecation.deprecated:
  - 110
  - 111
  - 84
  - 117
  - 120
  - 63
  pip._internal.utils.deprecation.install_warning_logger:
  - 50
  - 46
  pip._internal.utils.direct_url_helpers.direct_url_as_pep440_direct_reference:
  - 10
  - 11
  - 14
  - 15
  - 18
  - 20
  - 21
  - 23
  - 25
  - 26
  - 27
  - 28
  pip._internal.utils.direct_url_helpers.direct_url_for_editable:
  - 33
  - 34
  - 35
  pip._internal.utils.direct_url_helpers.direct_url_from_link:
  - 65
  - 72
  - 73
  - 42
  - 43
  - 75
  - 45
  - 49
  - 81
  - 83
  - 85
  - 62
  - 63
  pip._internal.utils.egg_link._egg_link_names:
  - 19
  - 28
  pip._internal.utils.egg_link.egg_link_path_from_location:
  - 65
  - 66
  - 67
  - 68
  - 70
  - 71
  - 72
  - 74
  - 75
  - 76
  - 77
  - 78
  - 47
  pip._internal.utils.egg_link.egg_link_path_from_sys_path:
  - 34
  - 37
  - 38
  - 39
  - 40
  - 41
  pip._internal.utils.encoding:
  - 17
  pip._internal.utils.encoding.auto_decode:
  - 32
  - 33
  - 34
  - 35
  - 21
  - 24
  - 25
  - 26
  - 28
  - 29
  - 30
  pip._internal.utils.entrypoints:
  - 18
  - 19
  - 15
  pip._internal.utils.entrypoints._wrapper:
  - 24
  - 43
  - 35
  pip._internal.utils.entrypoints.get_best_invocation_for_this_pip:
  - 70
  - 47
  - 49
  - 53
  - 54
  - 55
  - 56
  - 57
  - 58
  - 59
  - 61
  - 62
  pip._internal.utils.entrypoints.get_best_invocation_for_this_python:
  - 80
  - 74
  - 76
  - 79
  pip._internal.utils.filesystem:
  - 69
  - 71
  pip._internal.utils.filesystem._test_writable_dir_win:
  - 99
  - 100
  - 101
  - 103
  - 114
  - 115
  pip._internal.utils.filesystem.adjacent_tmp_file:
  - 64
  - 65
  - 45
  - 53
  - 55
  - 56
  - 60
  - 62
  pip._internal.utils.filesystem.check_path_owner:
  - 32
  - 37
  - 39
  - 19
  - 22
  - 26
  - 28
  pip._internal.utils.filesystem.directory_size:
  - 145
  - 146
  - 147
  - 148
  pip._internal.utils.filesystem.file_size:
  - 136
  - 134
  pip._internal.utils.filesystem.find_files:
  - 128
  - 123
  - 126
  - 127
  pip._internal.utils.filesystem.format_directory_size:
  - 153
  pip._internal.utils.filesystem.format_file_size:
  - 140
  pip._internal.utils.filesystem.test_writable_dir:
  - 77
  - 82
  - 83
  - 84
  - 88
  - 89
  - 91
  pip._internal.utils.filetypes:
  - 1
  pip._internal.utils.filetypes.is_archive_file:
  - 24
  - 25
  - 23
  pip._internal.utils.glibc.glibc_version_string:
  - 8
  - 7
  pip._internal.utils.glibc.glibc_version_string_confstr:
  - 12
  - 17
  - 20
  - 21
  - 24
  pip._internal.utils.glibc.glibc_version_string_ctypes:
  - 32
  - 43
  - 53
  - 55
  - 56
  pip._internal.utils.glibc.libc_ver:
  - 84
  - 85
  - 79
  pip._internal.utils.hashes:
  - 7
  pip._internal.utils.hashes.Hashes:
  - 22
  pip._internal.utils.hashes.Hashes.__and__:
  - 40
  - 45
  - 47
  - 52
  - 53
  - 56
  pip._internal.utils.hashes.Hashes.__bool__:
  - 112
  - 113
  pip._internal.utils.hashes.Hashes.__eq__:
  - 116
  pip._internal.utils.hashes.Hashes.__hash__:
  - 121
  - 122
  - 123
  - 124
  - 125
  pip._internal.utils.hashes.Hashes.__init__:
  - 33
  - 34
  - 28
  - 36
  pip._internal.utils.hashes.Hashes.check_against_chunks:
  - 67
  - 74
  - 76
  - 80
  - 81
  - 82
  - 84
  - 85
  - 87
  pip._internal.utils.hashes.Hashes.check_against_file:
  - 98
  - 93
  pip._internal.utils.hashes.Hashes.check_against_path:
  - 101
  - 102
  pip._internal.utils.hashes.Hashes.digest_count:
  - 60
  pip._internal.utils.hashes.Hashes.has_one_of:
  - 105
  - 106
  - 107
  pip._internal.utils.hashes.Hashes.is_hash_allowed:
  - 64
  - 63
  pip._internal.utils.hashes.MissingHashes:
  - 133
  pip._internal.utils.hashes.MissingHashes.__init__:
  - 144
  - 141
  pip._internal.utils.logging:
  - 32
  - 31
  pip._internal.utils.logging.BetterRotatingFileHandler._open:
  - 202
  - 203
  pip._internal.utils.logging.BrokenStdoutLoggingError:
  - 36
  pip._internal.utils.logging.ExcludeLoggerFilter:
  - 216
  pip._internal.utils.logging.ExcludeLoggerFilter.filter:
  - 223
  pip._internal.utils.logging.IndentedRenderable.__rich_console__:
  - 132
  - 133
  - 134
  - 135
  - 136
  - 137
  pip._internal.utils.logging.IndentingFormatter.__init__:
  - 89
  - 82
  pip._internal.utils.logging.IndentingFormatter.format:
  - 108
  - 112
  - 113
  - 117
  - 118
  - 119
  - 120
  pip._internal.utils.logging.IndentingFormatter.get_message_start:
  - 96
  - 98
  - 92
  - 102
  pip._internal.utils.logging.RichPipStreamHandler.__init__:
  - 144
  - 145
  - 149
  pip._internal.utils.logging.RichPipStreamHandler.emit:
  - 160
  - 164
  - 165
  - 168
  - 169
  - 170
  - 171
  - 172
  - 173
  - 174
  - 177
  - 179
  - 157
  - 158
  pip._internal.utils.logging.RichPipStreamHandler.handleError:
  - 193
  - 197
  - 182
  - 184
  - 189
  pip._internal.utils.logging._is_broken_pipe_error:
  - 48
  - 42
  - 51
  pip._internal.utils.logging.get_indentation:
  - 70
  pip._internal.utils.logging.indent_log:
  - 56
  - 64
  - 61
  pip._internal.utils.logging.setup_logging:
  - 227
  - 233
  - 235
  - 237
  - 239
  - 241
  - 275
  - 246
  - 251
  pip._internal.utils.misc:
  - 66
  - 68
  - 126
  pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.__init__:
  - 706
  pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.build_editable:
  - 737
  pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.build_sdist:
  - 728
  pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.build_wheel:
  - 718
  pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.get_requires_for_build_editable:
  - 757
  pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.get_requires_for_build_sdist:
  - 751
  pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.get_requires_for_build_wheel:
  - 745
  pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.prepare_metadata_for_build_editable:
  - 779
  pip._internal.utils.misc.ConfiguredBuildBackendHookCaller.prepare_metadata_for_build_wheel:
  - 766
  pip._internal.utils.misc.HiddenText.__eq__:
  - 596
  pip._internal.utils.misc.HiddenText.__repr__:
  - 589
  pip._internal.utils.misc.StreamWrapper.from_stream:
  - 391
  pip._internal.utils.misc._check_no_input:
  - 226
  - 227
  pip._internal.utils.misc._get_netloc:
  - 545
  pip._internal.utils.misc._redact_netloc:
  - 549
  pip._internal.utils.misc._transform_url:
  - 527
  - 536
  - 537
  - 540
  - 541
  pip._internal.utils.misc.ask:
  - 234
  - 236
  - 237
  - 238
  - 239
  - 240
  - 241
  - 242
  pip._internal.utils.misc.ask_input:
  - 249
  - 250
  - 251
  pip._internal.utils.misc.ask_password:
  - 256
  - 257
  - 255
  pip._internal.utils.misc.ask_path_exists:
  - 219
  - 220
  - 222
  pip._internal.utils.misc.backup_dir:
  - 208
  - 212
  - 214
  pip._internal.utils.misc.build_netloc:
  - 448
  - 450
  - 445
  pip._internal.utils.misc.build_url_from_netloc:
  - 457
  - 460
  pip._internal.utils.misc.captured_output:
  - 404
  - 409
  - 410
  - 412
  - 414
  pip._internal.utils.misc.captured_stderr:
  - 433
  - 430
  pip._internal.utils.misc.captured_stdout:
  - 426
  - 418
  pip._internal.utils.misc.check_externally_managed:
  - 640
  - 649
  - 648
  - 646
  pip._internal.utils.misc.display_path:
  - 201
  - 202
  - 203
  - 199
  pip._internal.utils.misc.ensure_dir:
  - 105
  - 108
  - 103
  pip._internal.utils.misc.enum:
  - 441
  - 438
  - 439
  pip._internal.utils.misc.format_size:
  - 277
  - 279
  - 280
  - 281
  - 284
  pip._internal.utils.misc.get_pip_version:
  - 80
  - 77
  - 78
  pip._internal.utils.misc.get_prog:
  - 114
  - 115
  pip._internal.utils.misc.hash_file:
  - 660
  - 662
  - 664
  - 665
  - 666
  - 667
  pip._internal.utils.misc.hide_url:
  - 609
  - 610
  pip._internal.utils.misc.hide_value:
  - 605
  pip._internal.utils.misc.is_console_interactive:
  - 656
  - 655
  pip._internal.utils.misc.is_installable_dir:
  - 313
  - 309
  - 302
  - 311
  pip._internal.utils.misc.is_local:
  - 369
  - 379
  - 377
  pip._internal.utils.misc.normalize_path:
  - 330
  - 334
  - 335
  - 336
  - 338
  - 339
  pip._internal.utils.misc.normalize_version_info:
  - 96
  - 99
  - 84
  - 94
  - 95
  pip._internal.utils.misc.pairwise:
  - 672
  - 678
  - 679
  pip._internal.utils.misc.parse_netloc:
  - 467
  - 470
  - 471
  pip._internal.utils.misc.partition:
  - 692
  - 693
  - 686
  pip._internal.utils.misc.protect_pip_from_modification_on_windows:
  - 630
  - 627
  - 614
  pip._internal.utils.misc.read_chunks:
  - 321
  - 323
  - 324
  - 326
  pip._internal.utils.misc.redact_auth_from_requirement:
  - 577
  - 578
  - 579
  - 580
  pip._internal.utils.misc.redact_auth_from_url:
  - 572
  - 573
  pip._internal.utils.misc.redact_netloc:
  - 512
  - 513
  - 515
  - 519
  - 505
  pip._internal.utils.misc.remove_auth_from_url:
  - 568
  - 565
  pip._internal.utils.misc.renames:
  - 352
  - 354
  - 355
  - 356
  - 358
  - 360
  - 361
  - 363
  pip._internal.utils.misc.rmtree:
  - 132
  - 134
  - 136
  - 139
  - 142
  - 144
  - 146
  pip._internal.utils.misc.rmtree_errorhandler:
  - 193
  - 195
  - 164
  - 174
  - 179
  - 182
  - 188
  pip._internal.utils.misc.split_auth_from_netloc:
  - 481
  - 487
  - 489
  - 493
  - 497
  - 498
  - 499
  - 476
  pip._internal.utils.misc.split_auth_netloc_from_url:
  - 560
  - 555
  pip._internal.utils.misc.splitext:
  - 344
  - 345
  - 343
  pip._internal.utils.misc.strtobool:
  - 267
  - 268
  - 261
  - 270
  pip._internal.utils.misc.tabulate:
  - 288
  - 297
  - 296
  - 295
  pip._internal.utils.misc.write_output:
  - 383
  pip._internal.utils.models:
  - 1
  pip._internal.utils.models.KeyBasedCompareMixin:
  - 9
  pip._internal.utils.models.KeyBasedCompareMixin.__eq__:
  - 33
  pip._internal.utils.models.KeyBasedCompareMixin.__ge__:
  - 30
  pip._internal.utils.models.KeyBasedCompareMixin.__gt__:
  - 27
  pip._internal.utils.models.KeyBasedCompareMixin.__hash__:
  - 18
  pip._internal.utils.models.KeyBasedCompareMixin.__le__:
  - 24
  pip._internal.utils.models.KeyBasedCompareMixin.__lt__:
  - 21
  pip._internal.utils.models.KeyBasedCompareMixin._compare:
  - 36
  - 39
  pip._internal.utils.packaging:
  - 9
  - 11
  - 37
  pip._internal.utils.packaging.check_requires_python:
  - 17
  - 28
  - 33
  - 31
  pip._internal.utils.packaging.get_requirement:
  - 45
  - 39
  pip._internal.utils.packaging.safe_extra:
  - 49
  - 57
  pip._internal.utils.setuptools_build:
  - 8
  pip._internal.utils.setuptools_build.make_setuptools_bdist_wheel_args:
  - 85
  pip._internal.utils.setuptools_build.make_setuptools_clean_args:
  - 97
  pip._internal.utils.setuptools_build.make_setuptools_develop_args:
  - 123
  - 128
  - 115
  - 125
  pip._internal.utils.setuptools_build.make_setuptools_egg_info_args:
  - 139
  - 143
  pip._internal.utils.setuptools_build.make_setuptools_shim_args:
  - 65
  - 67
  - 68
  - 70
  - 55
  pip._internal.utils.subprocess.call_subprocess:
  - 128
  - 137
  - 138
  - 145
  - 148
  - 151
  - 152
  - 154
  - 155
  - 158
  - 160
  - 162
  - 164
  - 166
  - 167
  - 168
  - 172
  - 174
  - 175
  - 176
  - 177
  - 178
  - 179
  - 183
  - 185
  - 186
  - 188
  - 189
  - 190
  - 191
  - 196
  - 197
  - 70
  - 198
  - 200
  - 203
  - 205
  - 210
  - 83
  - 211
  - 85
  - 217
  - 102
  - 113
  - 119
  - 120
  - 121
  - 122
  - 123
  - 124
  - 126
  pip._internal.utils.subprocess.format_command_args:
  - 43
  - 35
  - 44
  pip._internal.utils.subprocess.make_command:
  - 18
  - 22
  - 25
  - 26
  - 29
  pip._internal.utils.subprocess.reveal_command_args:
  - 50
  - 53
  pip._internal.utils.subprocess.runner_with_spinner_message:
  - 225
  pip._internal.utils.subprocess.runner_with_spinner_message.runner:
  - 236
  - 237
  pip._internal.utils.temp_dir:
  - 24
  - 90
  - 29
  - 22
  pip._internal.utils.temp_dir.AdjacentTempDirectory:
  - 227
  pip._internal.utils.temp_dir.AdjacentTempDirectory.__init__:
  - 249
  - 250
  pip._internal.utils.temp_dir.AdjacentTempDirectory._create:
  - 289
  - 295
  - 279
  - 280
  - 281
  - 283
  - 286
  pip._internal.utils.temp_dir.AdjacentTempDirectory._generate_names:
  - 261
  - 262
  - 265
  - 266
  - 267
  - 270
  - 271
  - 274
  - 275
  - 276
  - 254
  pip._internal.utils.temp_dir.TempDirectory:
  - 94
  pip._internal.utils.temp_dir.TempDirectory.__exit__:
  - 161
  - 163
  - 164
  - 168
  - 169
  pip._internal.utils.temp_dir.TempDirectory.__init__:
  - 136
  - 137
  - 145
  - 147
  - 122
  - 124
  - 125
  pip._internal.utils.temp_dir.TempDirectory._create:
  - 177
  - 178
  - 172
  pip._internal.utils.temp_dir.TempDirectory.cleanup:
  - 223
  - 209
  - 212
  - 182
  - 215
  - 184
  - 217
  - 216
  pip._internal.utils.temp_dir.TempDirectory.cleanup.onerror:
  - 194
  - 195
  - 196
  - 198
  - 199
  - 200
  - 206
  - 207
  pip._internal.utils.temp_dir.TempDirectoryTypeRegistry:
  - 51
  pip._internal.utils.temp_dir.TempDirectoryTypeRegistry.get_delete:
  - 66
  - 63
  pip._internal.utils.temp_dir.TempDirectoryTypeRegistry.set_delete:
  - 57
  pip._internal.utils.temp_dir.global_tempdir_manager:
  - 42
  - 45
  pip._internal.utils.temp_dir.tempdir_registry:
  - 81
  - 74
  - 79
  pip._internal.utils.unpacking:
  - 32
  - 1
  - 40
  - 22
  pip._internal.utils.unpacking.current_umask:
  - 44
  - 45
  - 46
  pip._internal.utils.unpacking.has_leading_dir:
  - 66
  - 67
  - 68
  - 70
  - 72
  - 63
  pip._internal.utils.unpacking.is_within_directory:
  - 81
  - 82
  - 84
  - 78
  pip._internal.utils.unpacking.set_extracted_file_to_default_mode_plus_executable:
  - 89
  - 93
  pip._internal.utils.unpacking.split_leading_dir:
  - 51
  - 52
  - 53
  - 55
  - 56
  - 57
  pip._internal.utils.unpacking.unpack_file:
  - 234
  - 235
  - 237
  - 238
  - 240
  - 241
  - 243
  - 244
  - 246
  - 250
  pip._internal.utils.unpacking.untar_file:
  - 150
  - 158
  - 159
  - 161
  - 163
  - 165
  - 168
  - 173
  - 175
  - 176
  - 178
  - 179
  - 180
  - 181
  - 187
  - 188
  - 189
  - 191
  - 195
  - 204
  - 208
  - 215
  - 217
  - 218
  - 219
  - 221
  - 223
  - 224
  - 226
  pip._internal.utils.unpacking.unzip_file:
  - 130
  - 132
  - 134
  - 137
  - 139
  - 140
  - 142
  - 143
  - 144
  - 146
  - 104
  - 112
  - 113
  - 115
  - 116
  - 117
  - 120
  - 121
  - 122
  - 123
  - 124
  pip._internal.utils.unpacking.zip_item_is_executable:
  - 100
  pip._internal.utils.urls.get_url_scheme:
  - 11
  - 13
  pip._internal.utils.urls.path_to_url:
  - 17
  - 21
  - 22
  pip._internal.utils.urls.url_to_path:
  - 34
  - 36
  - 39
  - 47
  - 52
  - 55
  - 27
  - 30
  pip._internal.utils.virtualenv:
  - 8
  - 9
  pip._internal.utils.virtualenv._get_pyvenv_cfg_lines:
  - 41
  - 45
  - 37
  - 46
  pip._internal.utils.virtualenv._no_global_under_legacy_virtualenv:
  - 81
  - 91
  - 86
  - 87
  pip._internal.utils.virtualenv._no_global_under_venv:
  - 66
  - 73
  - 74
  - 75
  - 52
  - 62
  - 63
  pip._internal.utils.virtualenv._running_under_legacy_virtualenv:
  - 28
  - 23
  pip._internal.utils.virtualenv._running_under_venv:
  - 19
  - 15
  pip._internal.utils.virtualenv.running_under_virtualenv:
  - 32
  - 33
  pip._internal.utils.virtualenv.virtualenv_no_global:
  - 98
  - 99
  - 101
  - 102
  - 95
  pip._internal.utils.wheel:
  - 1
  - 17
  pip._internal.utils.wheel.check_compatibility:
  - 130
  - 131
  - 133
  - 114
  - 125
  pip._internal.utils.wheel.parse_wheel:
  - 33
  - 21
  - 27
  - 28
  - 29
  pip._internal.utils.wheel.read_wheel_metadata_file:
  - 71
  pip._internal.utils.wheel.wheel_dist_info_dir:
  - 39
  - 45
  - 47
  - 49
  - 52
  - 59
  - 60
  - 61
  pip._internal.utils.wheel.wheel_metadata:
  - 94
  - 84
  - 87
  - 79
  pip._internal.utils.wheel.wheel_version:
  - 105
  - 98
  - 108
  - 102
  pip._internal.vcs.bazaar:
  - 112
  - 15
  pip._internal.vcs.bazaar.Bazaar.fetch_new:
  - 39
  - 40
  - 44
  - 46
  - 48
  - 52
  - 53
  - 55
  pip._internal.vcs.bazaar.Bazaar.get_remote_url:
  - 83
  - 86
  - 87
  - 88
  - 89
  - 90
  - 91
  - 92
  pip._internal.vcs.bazaar.Bazaar.get_revision:
  - 104
  - 98
  pip._internal.vcs.bazaar.Bazaar.get_url_rev_and_auth:
  - 76
  - 77
  pip._internal.vcs.bazaar.Bazaar.is_commit_id_equal:
  - 108
  pip._internal.vcs.bazaar.Bazaar.switch:
  - 58
  pip._internal.vcs.bazaar.Bazaar.update:
  - 64
  - 67
  - 68
  - 70
  - 71
  - 61
  - 62
  pip._internal.vcs.git:
  - 37
  - 40
  - 526
  - 26
  - 29
  pip._internal.vcs.git.Git._git_remote_to_pip_url:
  - 395
  - 398
  - 401
  - 402
  - 403
  - 405
  - 380
  pip._internal.vcs.git.Git._should_fetch:
  - 194
  - 186
  - 179
  - 190
  pip._internal.vcs.git.Git.fetch_new:
  - 264
  - 265
  - 266
  - 268
  - 272
  - 276
  - 277
  - 286
  - 288
  - 290
  - 291
  - 292
  - 293
  - 296
  - 297
  - 300
  - 302
  - 303
  - 314
  - 316
  - 317
  - 319
  - 322
  pip._internal.vcs.git.Git.get_current_branch:
  - 108
  - 117
  - 124
  - 126
  - 127
  pip._internal.vcs.git.Git.get_git_version:
  - 100
  - 101
  - 102
  - 104
  - 94
  pip._internal.vcs.git.Git.get_remote_url:
  - 358
  - 365
  - 371
  - 372
  - 375
  - 376
  - 350
  pip._internal.vcs.git.Git.get_repository_root:
  - 518
  - 497
  - 498
  - 501
  - 510
  pip._internal.vcs.git.Git.get_revision:
  - 435
  - 427
  - 429
  pip._internal.vcs.git.Git.get_revision_sha:
  - 133
  - 169
  - 170
  - 173
  - 142
  - 153
  - 154
  - 155
  - 158
  pip._internal.vcs.git.Git.get_subdirectory:
  - 450
  - 451
  - 452
  - 453
  - 439
  - 444
  pip._internal.vcs.git.Git.get_url_rev_and_auth:
  - 480
  - 482
  - 457
  - 465
  - 466
  - 467
  - 468
  - 471
  - 472
  - 476
  - 478
  - 479
  pip._internal.vcs.git.Git.has_commit:
  - 411
  - 415
  pip._internal.vcs.git.Git.is_commit_id_equal:
  - 248
  - 259
  - 255
  pip._internal.vcs.git.Git.is_immutable_rev_checkout:
  - 80
  - 81
  - 90
  - 83
  pip._internal.vcs.git.Git.resolve_revision:
  - 226
  - 227
  - 232
  - 204
  - 236
  - 237
  - 241
  - 242
  - 216
  - 218
  - 219
  pip._internal.vcs.git.Git.should_add_vcs_url_prefix:
  - 522
  pip._internal.vcs.git.Git.switch:
  - 325
  - 326
  - 329
  - 330
  - 332
  pip._internal.vcs.git.Git.update:
  - 336
  - 338
  - 340
  - 342
  - 343
  - 344
  - 346
  pip._internal.vcs.git.Git.update_submodules:
  - 488
  - 490
  pip._internal.vcs.git.looks_like_hash:
  - 56
  pip._internal.vcs.mercurial:
  - 17
  - 163
  pip._internal.vcs.mercurial.Mercurial.fetch_new:
  - 39
  - 40
  - 44
  - 46
  - 48
  - 50
  - 54
  - 55
  - 56
  pip._internal.vcs.mercurial.Mercurial.get_remote_url:
  - 88
  - 81
  - 89
  - 87
  pip._internal.vcs.mercurial.Mercurial.get_repository_root:
  - 160
  - 139
  - 140
  - 143
  - 152
  pip._internal.vcs.mercurial.Mercurial.get_requirement_revision:
  - 106
  - 110
  pip._internal.vcs.mercurial.Mercurial.get_revision:
  - 96
  - 93
  pip._internal.vcs.mercurial.Mercurial.get_subdirectory:
  - 130
  - 133
  - 134
  - 135
  - 125
  pip._internal.vcs.mercurial.Mercurial.is_commit_id_equal:
  - 120
  pip._internal.vcs.mercurial.Mercurial.switch:
  - 64
  - 65
  - 66
  - 67
  - 69
  - 71
  - 72
  - 61
  - 62
  pip._internal.vcs.mercurial.Mercurial.update:
  - 75
  - 76
  - 77
  pip._internal.vcs.subversion:
  - 324
  - 22
  - 24
  - 25
  - 26
  - 27
  pip._internal.vcs.subversion.Subversion.__init__:
  - 188
  - 189
  - 199
  pip._internal.vcs.subversion.Subversion._get_svn_url_rev:
  - 163
  - 136
  - 137
  - 138
  - 139
  - 168
  - 170
  - 171
  - 175
  - 144
  - 145
  - 176
  - 148
  - 149
  - 150
  - 151
  - 153
  - 154
  pip._internal.vcs.subversion.Subversion.call_vcs_version:
  - 202
  - 216
  - 217
  - 220
  - 221
  - 223
  pip._internal.vcs.subversion.Subversion.fetch_new:
  - 288
  - 290
  - 294
  - 297
  - 298
  - 302
  - 283
  - 284
  pip._internal.vcs.subversion.Subversion.get_netloc_and_auth:
  - 81
  - 84
  - 77
  - 86
  pip._internal.vcs.subversion.Subversion.get_remote_call_options:
  - 275
  - 250
  - 266
  - 261
  pip._internal.vcs.subversion.Subversion.get_remote_url:
  - 113
  - 115
  - 116
  - 119
  - 126
  - 127
  pip._internal.vcs.subversion.Subversion.get_revision:
  - 64
  - 67
  - 70
  - 71
  - 46
  - 52
  - 53
  - 56
  - 57
  - 58
  - 62
  pip._internal.vcs.subversion.Subversion.get_url_rev_and_auth:
  - 91
  - 92
  pip._internal.vcs.subversion.Subversion.get_vcs_version:
  - 245
  - 230
  - 239
  pip._internal.vcs.subversion.Subversion.is_commit_id_equal:
  - 184
  pip._internal.vcs.subversion.Subversion.make_rev_args:
  - 101
  - 103
  pip._internal.vcs.subversion.Subversion.switch:
  - 312
  - 305
  - 307
  - 308
  pip._internal.vcs.subversion.Subversion.update:
  - 321
  - 315
  - 317
  - 318
  pip._internal.vcs.versioncontrol:
  - 264
  - 1
  - 45
  pip._internal.vcs.versioncontrol.RemoteNotValidError.__init__:
  - 113
  pip._internal.vcs.versioncontrol.RevOptions:
  - 119
  pip._internal.vcs.versioncontrol.RevOptions.__init__:
  - 138
  - 132
  pip._internal.vcs.versioncontrol.RevOptions.arg_rev:
  - 151
  pip._internal.vcs.versioncontrol.RevOptions.make_new:
  - 181
  - 175
  pip._internal.vcs.versioncontrol.RevOptions.to_args:
  - 162
  - 163
  - 157
  pip._internal.vcs.versioncontrol.RevOptions.to_display:
  - 169
  pip._internal.vcs.versioncontrol.VcsSupport.__init__:
  - 192
  - 191
  pip._internal.vcs.versioncontrol.VcsSupport.__iter__:
  - 195
  pip._internal.vcs.versioncontrol.VcsSupport.all_schemes:
  - 208
  - 209
  pip._internal.vcs.versioncontrol.VcsSupport.backends:
  - 199
  pip._internal.vcs.versioncontrol.VcsSupport.get_backend:
  - 257
  - 260
  - 261
  pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_dir:
  - 225
  - 230
  - 231
  - 232
  - 234
  - 237
  - 244
  pip._internal.vcs.versioncontrol.VcsSupport.get_backend_for_scheme:
  - 248
  - 251
  - 252
  pip._internal.vcs.versioncontrol.VcsSupport.register:
  - 213
  - 214
  - 216
  - 217
  - 218
  pip._internal.vcs.versioncontrol.VcsSupport.unregister:
  - 221
  pip._internal.vcs.versioncontrol.VersionControl._is_local_repository:
  - 362
  - 366
  - 367
  pip._internal.vcs.versioncontrol.VersionControl.compare_urls:
  - 457
  - 454
  pip._internal.vcs.versioncontrol.VersionControl.fetch_new:
  - 462
  pip._internal.vcs.versioncontrol.VersionControl.get_base_rev_args:
  - 326
  pip._internal.vcs.versioncontrol.VersionControl.get_netloc_and_auth:
  - 373
  pip._internal.vcs.versioncontrol.VersionControl.get_remote_url:
  - 605
  pip._internal.vcs.versioncontrol.VersionControl.get_repository_root:
  - 696
  - 686
  pip._internal.vcs.versioncontrol.VersionControl.get_requirement_revision:
  - 298
  - 295
  pip._internal.vcs.versioncontrol.VersionControl.get_revision:
  - 615
  pip._internal.vcs.versioncontrol.VersionControl.get_src_requirement:
  - 320
  - 302
  - 313
  - 315
  - 318
  - 319
  pip._internal.vcs.versioncontrol.VersionControl.get_subdirectory:
  - 287
  pip._internal.vcs.versioncontrol.VersionControl.get_url_rev_and_auth:
  - 417
  - 392
  - 398
  - 399
  - 406
  - 407
  - 409
  - 410
  - 411
  pip._internal.vcs.versioncontrol.VersionControl.get_url_rev_options:
  - 430
  - 434
  - 437
  - 438
  - 439
  - 440
  - 442
  pip._internal.vcs.versioncontrol.VersionControl.is_commit_id_equal:
  - 493
  pip._internal.vcs.versioncontrol.VersionControl.is_immutable_rev_checkout:
  - 335
  pip._internal.vcs.versioncontrol.VersionControl.is_repository_directory:
  - 681
  - 682
  - 678
  pip._internal.vcs.versioncontrol.VersionControl.make_rev_args:
  - 424
  pip._internal.vcs.versioncontrol.VersionControl.make_rev_options:
  - 358
  - 351
  pip._internal.vcs.versioncontrol.VersionControl.normalize_url:
  - 450
  - 446
  pip._internal.vcs.versioncontrol.VersionControl.obtain:
  - 513
  - 514
  - 517
  - 518
  - 519
  - 520
  - 521
  - 523
  - 524
  - 527
  - 528
  - 530
  - 534
  - 536
  - 539
  - 543
  - 548
  - 557
  - 562
  - 564
  - 565
  - 567
  - 568
  - 569
  - 570
  - 573
  - 574
  - 575
  - 576
  - 577
  - 581
  - 582
  - 585
  - 589
  - 503
  - 511
  pip._internal.vcs.versioncontrol.VersionControl.run_command:
  - 640
  - 641
  - 643
  - 634
  - 639
  pip._internal.vcs.versioncontrol.VersionControl.should_add_vcs_url_prefix:
  - 283
  - 279
  pip._internal.vcs.versioncontrol.VersionControl.switch:
  - 474
  pip._internal.vcs.versioncontrol.VersionControl.unpack:
  - 592
  - 601
  - 600
  - 599
  pip._internal.vcs.versioncontrol.VersionControl.update:
  - 483
  pip._internal.vcs.versioncontrol.find_path_to_project_root_from_repo_root:
  - 101
  - 104
  - 81
  - 88
  - 90
  - 91
  - 94
  pip._internal.vcs.versioncontrol.is_url:
  - 51
  - 54
  - 55
  pip._internal.vcs.versioncontrol.make_vcs_requirement_url:
  - 72
  - 70
  - 63
  pip._internal.wheel_builder:
  - 32
  - 1
  - 30
  pip._internal.wheel_builder._build_one:
  - 193
  - 196
  - 198
  - 200
  - 175
  - 181
  - 183
  pip._internal.wheel_builder._build_one_inside_env:
  - 260
  - 262
  - 265
  - 271
  - 272
  - 212
  - 214
  - 217
  - 218
  - 221
  - 222
  - 225
  - 226
  - 233
  - 240
  - 249
  - 250
  - 251
  - 253
  - 254
  - 255
  pip._internal.wheel_builder._clean_one_legacy:
  - 289
  - 282
  - 284
  - 277
  pip._internal.wheel_builder._contains_egg_info:
  - 42
  - 38
  pip._internal.wheel_builder._get_cache_dir:
  - 129
  - 131
  - 132
  - 134
  - 126
  pip._internal.wheel_builder._should_build:
  - 68
  - 71
  - 49
  - 50
  - 53
  - 54
  - 55
  - 61
  pip._internal.wheel_builder._should_cache:
  - 98
  - 102
  - 107
  - 109
  - 114
  - 115
  - 93
  pip._internal.wheel_builder._verify_one:
  - 161
  - 139
  - 140
  - 141
  - 146
  - 147
  - 148
  - 154
  - 157
  pip._internal.wheel_builder.build:
  - 300
  - 305
  - 309
  - 311
  - 314
  - 316
  - 318
  - 319
  - 327
  - 329
  - 333
  - 335
  - 338
  - 340
  - 343
  - 344
  - 346
  - 348
  - 349
  - 351
  pip._internal.wheel_builder.should_build_for_install_command:
  - 87
  pip._internal.wheel_builder.should_build_for_wheel_command:
  - 81
  pip._vendor:
  - 1
  - 23
  - 55
  - 58
  - 61
  - 62
  - 63
  - 64
  - 65
  - 66
  - 67
  - 68
  - 69
  - 70
  - 71
  - 72
  - 73
  - 74
  - 75
  - 76
  - 77
  - 78
  - 79
  - 80
  - 81
  - 82
  - 83
  - 84
  - 85
  - 86
  - 87
  - 88
  - 89
  - 90
  - 91
  - 92
  - 93
  - 94
  - 96
  - 97
  - 98
  - 99
  - 100
  - 101
  - 102
  - 103
  - 104
  - 105
  - 106
  - 107
  - 108
  - 109
  - 110
  - 111
  - 112
  - 113
  - 114
  - 115
  - 116
  - 117
  - 118
  - 119
  - 120
  - 121
  pip._vendor.cachecontrol:
  - 28
  - 5
  pip._vendor.cachecontrol._cmd:
  - 16
  - 69
  - 70
  pip._vendor.cachecontrol._cmd.get_args:
  - 41
  - 42
  - 43
  pip._vendor.cachecontrol._cmd.get_session:
  - 32
  - 33
  - 34
  - 29
  - 30
  pip._vendor.cachecontrol._cmd.main:
  - 64
  - 66
  - 47
  - 48
  - 51
  - 54
  - 60
  - 63
  pip._vendor.cachecontrol._cmd.setup_logging:
  - 24
  - 25
  - 23
  pip._vendor.cachecontrol.adapter:
  - 17
  pip._vendor.cachecontrol.adapter.CacheControlAdapter.__init__:
  - 40
  - 41
  - 46
  pip._vendor.cachecontrol.adapter.CacheControlAdapter.build_response:
  - 128
  - 130
  - 134
  - 142
  - 146
  - 149
  - 151
  - 152
  - 87
  - 94
  - 97
  - 98
  - 101
  - 106
  - 110
  - 117
  - 118
  - 123
  - 124
  pip._vendor.cachecontrol.adapter.CacheControlAdapter.build_response._update_chunk_length:
  - 138
  - 139
  - 140
  pip._vendor.cachecontrol.adapter.CacheControlAdapter.close:
  - 160
  - 161
  pip._vendor.cachecontrol.adapter.CacheControlAdapter.send:
  - 65
  - 67
  - 70
  - 71
  - 74
  - 76
  - 60
  pip._vendor.cachecontrol.cache:
  - 5
  - 14
  pip._vendor.cachecontrol.cache.DictCache.__init__:
  - 36
  pip._vendor.cachecontrol.cache.DictCache.delete:
  - 50
  - 51
  pip._vendor.cachecontrol.cache.DictCache.get:
  - 40
  pip._vendor.cachecontrol.cache.DictCache.set:
  - 46
  pip._vendor.cachecontrol.cache.SeparateBodyBaseCache:
  - 55
  pip._vendor.cachecontrol.cache.SeparateBodyBaseCache.get_body:
  - 71
  pip._vendor.cachecontrol.caches.file_cache:
  - 14
  pip._vendor.cachecontrol.caches.file_cache.FileCache:
  - 144
  pip._vendor.cachecontrol.caches.file_cache.FileCache.delete:
  - 150
  pip._vendor.cachecontrol.caches.file_cache.SeparateBodyFileCache:
  - 154
  pip._vendor.cachecontrol.caches.file_cache.SeparateBodyFileCache.delete:
  - 171
  - 172
  pip._vendor.cachecontrol.caches.file_cache.SeparateBodyFileCache.get_body:
  - 160
  - 162
  pip._vendor.cachecontrol.caches.file_cache.SeparateBodyFileCache.set_body:
  - 168
  - 167
  pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin:
  - 62
  pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.__init__:
  - 73
  - 78
  pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._delete:
  - 136
  - 138
  - 135
  pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._fn:
  - 100
  - 101
  - 102
  pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin._write:
  - 129
  - 131
  - 132
  - 120
  - 125
  pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.encode:
  - 95
  pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.get:
  - 105
  - 107
  - 108
  pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin.set:
  - 116
  - 117
  pip._vendor.cachecontrol.caches.file_cache._secure_open_write:
  - 32
  - 36
  - 42
  - 51
  - 53
  - 57
  pip._vendor.cachecontrol.caches.file_cache.url_to_file_path:
  - 176
  - 180
  - 181
  pip._vendor.cachecontrol.caches.redis_cache:
  - 12
  pip._vendor.cachecontrol.caches.redis_cache.RedisCache.clear:
  - 41
  - 43
  - 44
  pip._vendor.cachecontrol.caches.redis_cache.RedisCache.close:
  - 47
  pip._vendor.cachecontrol.caches.redis_cache.RedisCache.delete:
  - 38
  pip._vendor.cachecontrol.caches.redis_cache.RedisCache.get:
  - 21
  pip._vendor.cachecontrol.caches.redis_cache.RedisCache.set:
  - 33
  - 35
  - 26
  - 27
  - 28
  - 29
  - 30
  - 31
  pip._vendor.cachecontrol.controller:
  - 32
  - 5
  - 22
  - 30
  pip._vendor.cachecontrol.controller.CacheController:
  - 49
  pip._vendor.cachecontrol.controller.CacheController.__init__:
  - 58
  - 60
  pip._vendor.cachecontrol.controller.CacheController._cache_set:
  - 295
  - 298
  - 301
  - 303
  - 308
  - 309
  - 311
  - 313
  pip._vendor.cachecontrol.controller.CacheController._load_from_cache:
  - 142
  - 147
  - 148
  - 149
  - 152
  - 153
  - 157
  - 158
  - 159
  pip._vendor.cachecontrol.controller.CacheController._urlnorm:
  - 65
  - 66
  - 67
  - 70
  - 71
  - 73
  - 78
  pip._vendor.cachecontrol.controller.CacheController.cache_response:
  - 387
  - 388
  - 392
  - 394
  - 395
  - 396
  - 397
  - 399
  - 401
  - 402
  - 403
  - 407
  - 408
  - 409
  - 414
  - 415
  - 417
  - 419
  - 420
  - 421
  - 423
  - 433
  - 434
  - 435
  - 436
  - 437
  - 441
  - 442
  - 446
  - 324
  - 332
  - 333
  - 338
  - 342
  - 343
  - 345
  - 353
  - 356
  - 357
  - 361
  - 362
  - 365
  - 366
  - 370
  - 372
  - 373
  - 375
  - 376
  - 377
  - 378
  - 379
  pip._vendor.cachecontrol.controller.CacheController.cache_url:
  - 85
  pip._vendor.cachecontrol.controller.CacheController.cached_request:
  - 256
  - 259
  - 260
  - 261
  - 265
  - 266
  - 267
  - 163
  - 168
  - 169
  - 170
  - 173
  - 174
  - 177
  - 178
  - 182
  - 183
  - 195
  - 200
  - 203
  - 204
  - 205
  - 208
  - 209
  - 210
  - 213
  - 214
  - 216
  - 217
  - 218
  - 224
  - 230
  - 231
  - 233
  - 236
  - 237
  - 238
  - 239
  - 240
  - 241
  - 245
  - 246
  - 248
  - 252
  - 253
  pip._vendor.cachecontrol.controller.CacheController.conditional_headers:
  - 273
  - 276
  - 277
  - 279
  - 282
  pip._vendor.cachecontrol.controller.CacheController.parse_cache_control:
  - 128
  - 133
  - 104
  - 108
  - 109
  - 112
  - 113
  - 118
  - 121
  - 123
  - 125
  - 127
  pip._vendor.cachecontrol.controller.CacheController.update_cached_response:
  - 480
  - 483
  - 484
  - 457
  - 492
  - 464
  - 465
  - 467
  pip._vendor.cachecontrol.controller.parse_uri:
  - 42
  - 44
  - 38
  pip._vendor.cachecontrol.filewrapper:
  - 10
  pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper:
  - 15
  pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper.__getattr__:
  - 49
  - 50
  pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper.__init__:
  - 36
  pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper._close:
  - 71
  - 72
  - 80
  - 81
  - 82
  - 84
  - 95
  pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper._safe_read:
  - 109
  - 110
  - 115
  - 116
  - 117
  pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper.read:
  - 98
  - 99
  - 102
  - 103
  - 104
  pip._vendor.cachecontrol.heuristics:
  - 12
  pip._vendor.cachecontrol.heuristics.BaseHeuristic.apply:
  - 49
  - 51
  - 52
  - 53
  - 54
  - 55
  pip._vendor.cachecontrol.heuristics.BaseHeuristic.update_headers:
  - 40
  pip._vendor.cachecontrol.heuristics.BaseHeuristic.warning:
  - 29
  pip._vendor.cachecontrol.heuristics.ExpiresAfter:
  - 78
  pip._vendor.cachecontrol.heuristics.ExpiresAfter.__init__:
  - 83
  pip._vendor.cachecontrol.heuristics.ExpiresAfter.update_headers:
  - 86
  - 87
  pip._vendor.cachecontrol.heuristics.LastModified:
  - 95
  pip._vendor.cachecontrol.heuristics.LastModified.update_headers:
  - 130
  - 133
  - 136
  - 138
  - 139
  - 140
  - 143
  - 144
  - 145
  - 146
  - 147
  - 151
  - 124
  - 127
  pip._vendor.cachecontrol.heuristics.OneDayCache:
  - 61
  pip._vendor.cachecontrol.heuristics.OneDayCache.update_headers:
  - 72
  - 69
  - 70
  - 71
  pip._vendor.cachecontrol.heuristics.datetime_to_header:
  - 24
  pip._vendor.cachecontrol.heuristics.expire_after:
  - 19
  pip._vendor.cachecontrol.serialize:
  - 13
  pip._vendor.cachecontrol.serialize.Serializer._loads_v4:
  - 202
  - 206
  pip._vendor.cachecontrol.serialize.Serializer.dumps:
  - 34
  - 35
  - 36
  - 41
  - 44
  - 51
  - 52
  - 53
  - 54
  - 55
  - 56
  - 57
  - 26
  - 60
  - 30
  pip._vendor.cachecontrol.serialize.Serializer.loads:
  - 72
  - 78
  - 84
  - 89
  - 93
  pip._vendor.cachecontrol.serialize.Serializer.prepare_response:
  - 128
  - 134
  - 135
  - 106
  - 113
  - 145
  - 148
  - 118
  - 119
  - 150
  - 122
  - 124
  - 127
  pip._vendor.cachecontrol.serialize.Serializer.serialize:
  - 63
  pip._vendor.cachecontrol.wrapper:
  - 11
  pip._vendor.cachecontrol.wrapper.CacheControl:
  - 32
  - 41
  - 40
  - 30
  pip._vendor.certifi.__main__:
  - 5
  - 6
  - 7
  - 9
  - 10
  - 12
  pip._vendor.certifi.core:
  - 1
  - 10
  - 44
  pip._vendor.certifi.core.contents:
  - 42
  - 108
  - 77
  pip._vendor.certifi.core.read_text:
  - 97
  - 98
  pip._vendor.certifi.core.where:
  - 36
  - 37
  - 71
  - 72
  - 103
  - 105
  - 25
  - 59
  pip._vendor.chardet.big5prober.Big5Prober.__init__:
  - 36
  - 37
  - 38
  - 39
  pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.__init__:
  - 203
  pip._vendor.chardet.chardistribution.Big5DistributionAnalysis.get_order:
  - 214
  - 215
  pip._vendor.chardet.chardistribution.CharDistributionAnalysis.__init__:
  - 67
  - 77
  pip._vendor.chardet.chardistribution.CharDistributionAnalysis.feed:
  - 98
  - 99
  - 89
  - 90
  - 92
  - 95
  pip._vendor.chardet.chardistribution.CharDistributionAnalysis.get_confidence:
  - 113
  - 106
  - 109
  - 103
  pip._vendor.chardet.chardistribution.CharDistributionAnalysis.reset:
  - 80
  pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.__init__:
  - 248
  pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis.get_order:
  - 259
  pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.__init__:
  - 152
  pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis.get_order:
  - 163
  pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.__init__:
  - 134
  pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis.get_order:
  - 145
  pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.__init__:
  - 185
  pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis.get_order:
  - 196
  pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.__init__:
  - 170
  pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis.get_order:
  - 177
  - 179
  pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.__init__:
  - 223
  pip._vendor.chardet.chardistribution.SJISDistributionAnalysis.get_order:
  - 241
  - 234
  - 236
  pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.__init__:
  - 36
  pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.charset_name:
  - 52
  - 53
  - 54
  pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.feed:
  - 67
  - 68
  - 70
  - 71
  - 73
  - 77
  - 80
  pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.get_confidence:
  - 97
  - 98
  - 101
  - 104
  - 87
  - 89
  - 93
  - 94
  - 95
  pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.language:
  - 60
  - 61
  - 62
  pip._vendor.chardet.charsetgroupprober.CharSetGroupProber.reset:
  - 42
  - 44
  - 45
  pip._vendor.chardet.charsetprober:
  - 35
  pip._vendor.chardet.charsetprober.CharSetProber.__init__:
  - 48
  pip._vendor.chardet.charsetprober.CharSetProber.filter_high_byte_only:
  - 73
  pip._vendor.chardet.charsetprober.CharSetProber.filter_international_words:
  - 96
  - 97
  - 104
  - 106
  - 78
  - 89
  - 94
  pip._vendor.chardet.charsetprober.CharSetProber.remove_xml_tags:
  - 128
  - 132
  - 133
  - 136
  - 138
  - 142
  - 112
  - 145
  - 119
  - 122
  - 124
  pip._vendor.chardet.cli.chardetect:
  - 112
  - 1
  - 111
  pip._vendor.chardet.cli.chardetect.description_of:
  - 42
  - 43
  - 44
  - 45
  - 47
  - 49
  - 51
  - 53
  - 30
  pip._vendor.chardet.cli.chardetect.main:
  - 96
  - 97
  - 67
  - 72
  - 104
  - 105
  - 75
  - 79
  - 84
  - 90
  - 59
  - 93
  - 95
  pip._vendor.chardet.codingstatemachine.CodingStateMachine:
  - 35
  pip._vendor.chardet.codingstatemachine.CodingStateMachine.__init__:
  - 64
  - 63
  pip._vendor.chardet.codingstatemachine.CodingStateMachine.next_state:
  - 73
  pip._vendor.chardet.codingstatemachinedict:
  - 3
  pip._vendor.chardet.cp949prober.CP949Prober.__init__:
  - 40
  - 41
  - 36
  - 37
  pip._vendor.chardet.detect:
  - 33
  - 42
  - 43
  - 47
  - 48
  - 49
  - 50
  pip._vendor.chardet.detect_all:
  - 58
  - 71
  - 72
  - 76
  - 78
  - 79
  - 80
  - 82
  - 85
  - 86
  - 87
  - 89
  - 90
  - 91
  - 93
  - 96
  - 97
  - 101
  - 102
  - 103
  - 105
  - 112
  - 113
  pip._vendor.chardet.enums:
  - 1
  pip._vendor.chardet.enums.CharacterCategory:
  - 74
  pip._vendor.chardet.enums.InputState:
  - 11
  pip._vendor.chardet.enums.LanguageFilter:
  - 21
  pip._vendor.chardet.enums.MachineState:
  - 48
  pip._vendor.chardet.enums.ProbingState:
  - 38
  pip._vendor.chardet.enums.SequenceLikelihood:
  - 58
  pip._vendor.chardet.enums.SequenceLikelihood.get_num_categories:
  - 69
  pip._vendor.chardet.escprober.EscCharSetProber:
  - 42
  pip._vendor.chardet.escprober.EscCharSetProber.__init__:
  - 49
  - 51
  - 52
  - 53
  - 54
  - 55
  - 56
  - 57
  - 62
  pip._vendor.chardet.escprober.EscCharSetProber.feed:
  - 96
  - 98
  - 85
  - 86
  - 87
  - 89
  - 90
  - 93
  pip._vendor.chardet.escprober.EscCharSetProber.reset:
  - 65
  - 66
  - 68
  - 69
  pip._vendor.chardet.eucjpprober.EUCJPProber.__init__:
  - 40
  - 41
  - 42
  - 43
  - 44
  pip._vendor.chardet.eucjpprober.EUCJPProber.feed:
  - 64
  - 65
  - 66
  - 74
  - 77
  - 78
  - 79
  - 81
  - 82
  - 84
  - 85
  - 89
  - 90
  - 91
  - 62
  pip._vendor.chardet.eucjpprober.EUCJPProber.get_confidence:
  - 100
  - 101
  - 102
  pip._vendor.chardet.eucjpprober.EUCJPProber.reset:
  - 48
  - 47
  pip._vendor.chardet.euckrprober.EUCKRProber.__init__:
  - 36
  - 37
  - 38
  - 39
  pip._vendor.chardet.euctwprober.EUCTWProber.__init__:
  - 36
  - 37
  - 38
  - 39
  pip._vendor.chardet.gb2312prober.GB2312Prober.__init__:
  - 36
  - 37
  - 38
  - 39
  pip._vendor.chardet.hebrewprober.HebrewProber.__init__:
  - 160
  - 167
  pip._vendor.chardet.hebrewprober.HebrewProber.charset_name:
  - 288
  - 290
  - 295
  - 279
  - 281
  - 286
  pip._vendor.chardet.hebrewprober.HebrewProber.feed:
  - 257
  - 259
  - 236
  - 240
  - 242
  - 243
  - 245
  - 248
  - 251
  pip._vendor.chardet.hebrewprober.HebrewProber.state:
  - 312
  pip._vendor.chardet.johabprober.JOHABProber.__init__:
  - 36
  - 37
  - 38
  - 39
  pip._vendor.chardet.jpcntx.EUCJPContextAnalysis.get_order:
  - 225
  - 227
  - 233
  - 235
  - 221
  pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.__init__:
  - 133
  pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.feed:
  - 160
  - 162
  - 166
  - 168
  - 148
  pip._vendor.chardet.jpcntx.JapaneseContextAnalysis.get_confidence:
  - 181
  pip._vendor.chardet.jpcntx.SJISContextAnalysis.__init__:
  - 191
  pip._vendor.chardet.jpcntx.SJISContextAnalysis.get_order:
  - 199
  - 203
  - 205
  - 211
  - 213
  pip._vendor.chardet.langbulgarianmodel:
  - 4641
  - 4372
  pip._vendor.chardet.langgreekmodel:
  - 4120
  - 4389
  pip._vendor.chardet.langhebrewmodel:
  - 4372
  pip._vendor.chardet.langhungarianmodel:
  - 4641
  - 4372
  pip._vendor.chardet.langrussianmodel:
  - 4641
  - 5448
  - 4910
  - 4372
  - 5717
  - 5179
  pip._vendor.chardet.langthaimodel:
  - 4372
  pip._vendor.chardet.langturkishmodel:
  - 4372
  pip._vendor.chardet.latin1prober.Latin1Prober.__init__:
  - 105
  - 102
  pip._vendor.chardet.latin1prober.Latin1Prober.feed:
  - 121
  - 122
  - 125
  pip._vendor.chardet.latin1prober.Latin1Prober.get_confidence:
  - 137
  - 134
  - 143
  pip._vendor.chardet.latin1prober.Latin1Prober.reset:
  - 110
  pip._vendor.chardet.macromanprober.MacRomanProber.__init__:
  - 114
  - 111
  pip._vendor.chardet.macromanprober.MacRomanProber.feed:
  - 136
  - 137
  - 140
  pip._vendor.chardet.macromanprober.MacRomanProber.get_confidence:
  - 152
  - 149
  - 158
  pip._vendor.chardet.macromanprober.MacRomanProber.reset:
  - 125
  pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber:
  - 39
  pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.__init__:
  - 44
  - 47
  pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.feed:
  - 64
  - 72
  - 75
  - 76
  - 77
  - 79
  - 81
  - 85
  - 86
  - 87
  - 61
  - 62
  - 63
  pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.get_confidence:
  - 95
  pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber.reset:
  - 50
  - 51
  - 52
  - 53
  - 54
  - 55
  pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber.__init__:
  - 45
  - 47
  - 48
  - 49
  - 50
  - 51
  - 52
  - 53
  - 54
  - 55
  - 57
  pip._vendor.chardet.metadata.languages:
  - 1
  - 261
  - 134
  - 269
  - 143
  - 151
  - 284
  - 161
  - 292
  - 169
  - 304
  - 177
  - 311
  - 185
  - 319
  - 194
  - 67
  - 328
  - 203
  - 79
  - 211
  - 87
  - 220
  - 95
  - 229
  - 103
  - 237
  - 111
  - 244
  - 119
  - 253
  - 127
  pip._vendor.chardet.metadata.languages.Language:
  - 15
  pip._vendor.chardet.metadata.languages.Language.__init__:
  - 44
  - 49
  - 50
  - 54
  - 56
  pip._vendor.chardet.metadata.languages.Language.__repr__:
  - 60
  - 61
  pip._vendor.chardet.resultdict:
  - 3
  pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.__init__:
  - 57
  - 69
  pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.charset_name:
  - 84
  pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.feed:
  - 96
  - 97
  - 128
  - 99
  - 100
  - 129
  - 133
  - 134
  - 104
  - 105
  - 111
  - 113
  - 115
  - 117
  - 125
  - 126
  - 127
  pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.get_confidence:
  - 160
  - 146
  pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.language:
  - 90
  pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber.reset:
  - 72
  - 75
  pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber.__init__:
  - 68
  - 69
  - 70
  - 71
  - 72
  - 73
  - 74
  - 75
  - 76
  - 77
  - 82
  - 83
  - 52
  - 53
  - 54
  - 88
  - 59
  - 62
  pip._vendor.chardet.sjisprober.SJISProber.__init__:
  - 40
  - 41
  - 42
  - 43
  - 44
  pip._vendor.chardet.sjisprober.SJISProber.feed:
  - 64
  - 65
  - 73
  - 76
  - 77
  - 78
  - 80
  - 83
  - 85
  - 88
  - 94
  - 92
  - 93
  - 62
  - 63
  pip._vendor.chardet.sjisprober.SJISProber.get_confidence:
  - 104
  - 105
  - 103
  pip._vendor.chardet.sjisprober.SJISProber.reset:
  - 48
  - 47
  pip._vendor.chardet.universaldetector:
  - 28
  pip._vendor.chardet.universaldetector.UniversalDetector:
  - 57
  - 74
  - 75
  - 76
  pip._vendor.chardet.universaldetector.UniversalDetector.__init__:
  - 121
  - 118
  pip._vendor.chardet.universaldetector.UniversalDetector.close:
  - 286
  - 294
  - 298
  - 299
  - 302
  - 306
  - 310
  - 311
  - 313
  - 314
  - 317
  - 320
  - 321
  - 324
  - 325
  - 326
  - 330
  - 331
  - 332
  - 341
  - 342
  - 343
  - 344
  - 345
  - 347
  - 348
  - 349
  - 353
  - 356
  - 360
  pip._vendor.chardet.universaldetector.UniversalDetector.feed:
  - 265
  - 266
  - 267
  - 269
  - 270
  - 271
  - 272
  - 273
  - 274
  - 277
  - 282
  - 155
  - 168
  - 171
  - 174
  - 175
  - 178
  - 180
  - 187
  - 191
  - 199
  - 207
  - 213
  - 219
  - 220
  - 222
  - 224
  - 232
  - 233
  - 235
  - 236
  - 239
  - 249
  - 250
  - 251
  - 252
  - 255
  pip._vendor.chardet.universaldetector.UniversalDetector.reset:
  - 136
  - 147
  - 148
  - 149
  - 150
  - 151
  - 152
  pip._vendor.chardet.utf1632prober.UTF1632Prober:
  - 28
  pip._vendor.chardet.utf1632prober.UTF1632Prober.__init__:
  - 42
  - 54
  pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_16bit_chars:
  - 91
  pip._vendor.chardet.utf1632prober.UTF1632Prober.approx_32bit_chars:
  - 88
  pip._vendor.chardet.utf1632prober.UTF1632Prober.charset_name:
  - 72
  - 74
  - 76
  - 78
  pip._vendor.chardet.utf1632prober.UTF1632Prober.feed:
  - 192
  - 193
  - 194
  - 195
  - 188
  - 191
  pip._vendor.chardet.utf1632prober.UTF1632Prober.get_confidence:
  - 219
  - 220
  - 221
  - 222
  pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16be:
  - 114
  pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf16le:
  - 124
  pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32be:
  - 94
  pip._vendor.chardet.utf1632prober.UTF1632Prober.is_likely_utf32le:
  - 104
  pip._vendor.chardet.utf1632prober.UTF1632Prober.reset:
  - 57
  pip._vendor.chardet.utf1632prober.UTF1632Prober.state:
  - 209
  - 204
  - 207
  pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf16_characters:
  - 165
  - 166
  - 168
  - 171
  - 176
  - 177
  - 179
  - 182
  - 156
  pip._vendor.chardet.utf1632prober.UTF1632Prober.validate_utf32_characters:
  - 142
  - 148
  - 134
  pip._vendor.chardet.utf8prober.UTF8Prober.__init__:
  - 40
  - 41
  - 43
  pip._vendor.chardet.utf8prober.UTF8Prober.feed:
  - 64
  - 67
  - 68
  - 71
  - 72
  - 59
  - 60
  - 61
  pip._vendor.chardet.utf8prober.UTF8Prober.get_confidence:
  - 79
  pip._vendor.chardet.utf8prober.UTF8Prober.reset:
  - 46
  - 47
  pip._vendor.chardet.version:
  - 1
  - 9
  pip._vendor.colorama.ansi:
  - 2
  - 99
  - 100
  - 101
  - 102
  pip._vendor.colorama.ansi.AnsiCodes.__init__:
  - 32
  - 33
  - 30
  - 31
  pip._vendor.colorama.ansi.AnsiCursor.BACK:
  - 44
  pip._vendor.colorama.ansi.AnsiCursor.DOWN:
  - 40
  pip._vendor.colorama.ansi.AnsiCursor.FORWARD:
  - 42
  pip._vendor.colorama.ansi.AnsiCursor.POS:
  - 46
  pip._vendor.colorama.ansi.AnsiCursor.UP:
  - 38
  pip._vendor.colorama.ansi.clear_line:
  - 22
  pip._vendor.colorama.ansi.clear_screen:
  - 19
  pip._vendor.colorama.ansi.code_to_chars:
  - 13
  pip._vendor.colorama.ansitowin32:
  - 12
  - 13
  pip._vendor.colorama.ansitowin32.AnsiToWin32:
  - 73
  - 78
  - 79
  pip._vendor.colorama.ansitowin32.AnsiToWin32.__init__:
  - 96
  - 98
  - 101
  - 102
  - 106
  - 111
  - 116
  - 89
  pip._vendor.colorama.ansitowin32.AnsiToWin32.call_win32:
  - 257
  - 239
  - 240
  - 241
  - 245
  - 246
  - 247
  - 248
  - 249
  - 250
  - 251
  - 252
  - 253
  pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_ansi:
  - 216
  - 217
  - 215
  pip._vendor.colorama.ansitowin32.AnsiToWin32.convert_osc:
  - 261
  - 262
  - 264
  - 265
  - 266
  - 267
  - 271
  - 272
  pip._vendor.colorama.ansitowin32.AnsiToWin32.extract_params:
  - 227
  - 228
  - 230
  - 232
  - 221
  - 222
  - 223
  pip._vendor.colorama.ansitowin32.AnsiToWin32.flush:
  - 277
  pip._vendor.colorama.ansitowin32.AnsiToWin32.get_win32_calls:
  - 132
  - 173
  pip._vendor.colorama.ansitowin32.AnsiToWin32.reset_all:
  - 186
  - 187
  - 188
  - 189
  pip._vendor.colorama.ansitowin32.AnsiToWin32.should_wrap:
  - 122
  pip._vendor.colorama.ansitowin32.AnsiToWin32.write:
  - 176
  - 177
  - 179
  - 180
  - 181
  - 182
  pip._vendor.colorama.ansitowin32.AnsiToWin32.write_and_convert:
  - 193
  - 199
  - 200
  - 201
  - 202
  - 203
  - 205
  pip._vendor.colorama.ansitowin32.AnsiToWin32.write_plain_text:
  - 209
  - 210
  - 211
  pip._vendor.colorama.ansitowin32.StreamWrapper:
  - 17
  pip._vendor.colorama.ansitowin32.StreamWrapper.__enter__:
  - 35
  pip._vendor.colorama.ansitowin32.StreamWrapper.__exit__:
  - 38
  pip._vendor.colorama.ansitowin32.StreamWrapper.__getattr__:
  - 29
  pip._vendor.colorama.ansitowin32.StreamWrapper.isatty:
  - 59
  - 51
  - 52
  pip._vendor.colorama.ansitowin32.StreamWrapper.write:
  - 47
  pip._vendor.colorama.initialise:
  - 121
  pip._vendor.colorama.initialise._wipe_internal_state_for_tests:
  - 26
  pip._vendor.colorama.initialise.colorama_text:
  - 97
  - 99
  - 101
  pip._vendor.colorama.initialise.deinit:
  - 66
  - 68
  pip._vendor.colorama.initialise.init:
  - 39
  - 48
  - 52
  - 53
  - 57
  - 60
  - 61
  pip._vendor.colorama.initialise.just_fix_windows_console:
  - 75
  - 77
  - 79
  - 86
  - 87
  - 89
  - 90
  pip._vendor.colorama.initialise.reinit:
  - 105
  - 107
  pip._vendor.colorama.initialise.reset_all:
  - 33
  - 34
  pip._vendor.colorama.initialise.wrap_stream:
  - 112
  - 113
  - 115
  pip._vendor.colorama.win32:
  - 97
  - 74
  - 12
  - 16
  - 17
  - 50
  - 84
  pip._vendor.colorama.win32.CONSOLE_SCREEN_BUFFER_INFO:
  - 24
  pip._vendor.colorama.win32.FillConsoleOutputAttribute:
  - 160
  - 161
  - 162
  - 164
  - 165
  - 158
  - 159
  pip._vendor.colorama.win32.FillConsoleOutputCharacter:
  - 148
  - 149
  - 150
  - 151
  - 153
  - 154
  pip._vendor.colorama.win32.GetConsoleMode:
  - 171
  - 172
  - 173
  pip._vendor.colorama.win32.GetConsoleScreenBufferInfo:
  - 120
  - 121
  - 122
  - 119
  pip._vendor.colorama.win32.SetConsoleCursorPosition:
  - 130
  - 132
  - 137
  - 138
  - 140
  - 144
  - 145
  pip._vendor.colorama.win32.SetConsoleMode:
  - 178
  - 179
  pip._vendor.colorama.win32.SetConsoleTextAttribute:
  - 126
  - 127
  pip._vendor.colorama.win32.SetConsoleTitle:
  - 168
  pip._vendor.colorama.win32._winapi_test:
  - 112
  - 109
  - 110
  - 111
  pip._vendor.colorama.win32.winapi_test:
  - 115
  - 116
  pip._vendor.colorama.winterm.WinTerm.__init__:
  - 32
  - 31
  pip._vendor.colorama.winterm.WinTerm.back:
  - 75
  - 67
  - 71
  pip._vendor.colorama.winterm.WinTerm.cursor_adjust:
  - 113
  - 115
  - 111
  pip._vendor.colorama.winterm.WinTerm.erase_line:
  - 160
  - 161
  - 163
  - 164
  - 170
  - 172
  - 154
  - 156
  - 157
  pip._vendor.colorama.winterm.WinTerm.erase_screen:
  - 129
  - 132
  - 133
  - 135
  - 136
  - 142
  - 144
  - 145
  - 147
  - 122
  - 124
  pip._vendor.colorama.winterm.WinTerm.fore:
  - 56
  - 64
  - 60
  pip._vendor.colorama.winterm.WinTerm.get_position:
  - 92
  pip._vendor.colorama.winterm.WinTerm.reset_all:
  - 51
  - 52
  pip._vendor.colorama.winterm.WinTerm.set_console:
  - 89
  - 84
  - 85
  - 87
  pip._vendor.colorama.winterm.WinTerm.set_cursor_position:
  - 105
  - 107
  - 100
  pip._vendor.colorama.winterm.WinTerm.set_title:
  - 175
  pip._vendor.colorama.winterm.WinTerm.style:
  - 81
  - 78
  pip._vendor.colorama.winterm.enable_vt_processing:
  - 179
  - 183
  - 184
  - 185
  - 190
  - 191
  pip._vendor.distlib:
  - 32
  - 33
  pip._vendor.distlib.compat:
  - 481
  - 482
  - 39
  - 76
  - 273
  - 370
  - 19
  - 340
  - 341
  - 914
  pip._vendor.distlib.compat.BaseConfigurator:
  - 1006
  - 1010
  - 1012
  - 1013
  - 1014
  - 1015
  - 1023
  pip._vendor.distlib.compat.BaseConfigurator.__init__:
  - 1026
  pip._vendor.distlib.compat.BaseConfigurator.as_tuple:
  - 1136
  - 1137
  - 1135
  pip._vendor.distlib.compat.BaseConfigurator.cfg_convert:
  - 1057
  - 1059
  - 1060
  - 1063
  - 1064
  - 1066
  - 1067
  - 1068
  - 1070
  - 1071
  - 1072
  - 1073
  - 1077
  - 1083
  - 1084
  pip._vendor.distlib.compat.BaseConfigurator.configure_custom:
  - 1121
  - 1122
  - 1123
  - 1124
  - 1125
  - 1127
  - 1128
  - 1129
  - 1130
  - 1131
  pip._vendor.distlib.compat.BaseConfigurator.convert:
  - 1092
  - 1097
  - 1099
  - 1101
  - 1103
  - 1105
  - 1106
  - 1108
  - 1109
  - 1110
  - 1111
  - 1113
  - 1114
  - 1116
  - 1117
  pip._vendor.distlib.compat.BaseConfigurator.ext_convert:
  - 1053
  - 1054
  pip._vendor.distlib.compat.BaseConfigurator.resolve:
  - 1030
  - 1034
  - 1035
  - 1037
  - 1038
  - 1041
  - 1043
  - 1044
  - 1047
  - 1048
  pip._vendor.distlib.compat.ChainMap:
  - 574
  - 526
  pip._vendor.distlib.compat.ChainMap.__bool__:
  - 572
  pip._vendor.distlib.compat.ChainMap.__contains__:
  - 569
  pip._vendor.distlib.compat.ChainMap.__getitem__:
  - 555
  - 549
  pip._vendor.distlib.compat.ChainMap.__init__:
  - 539
  - 543
  pip._vendor.distlib.compat.ChainMap.__iter__:
  - 566
  pip._vendor.distlib.compat.ChainMap.__len__:
  - 562
  pip._vendor.distlib.compat.ChainMap.__repr__:
  - 576
  - 577
  pip._vendor.distlib.compat.ChainMap.clear:
  - 625
  - 626
  pip._vendor.distlib.compat.ChainMap.copy:
  - 585
  - 586
  pip._vendor.distlib.compat.ChainMap.fromkeys:
  - 581
  - 582
  pip._vendor.distlib.compat.ChainMap.new_child:
  - 592
  - 591
  pip._vendor.distlib.compat.ChainMap.parents:
  - 596
  - 597
  pip._vendor.distlib.compat.ChainMap.pop:
  - 617
  - 619
  pip._vendor.distlib.compat.ChainMap.popitem:
  - 610
  - 612
  pip._vendor.distlib.compat.Container:
  - 193
  pip._vendor.distlib.compat.Container.__init__:
  - 198
  pip._vendor.distlib.compat.ConvertingDict:
  - 932
  pip._vendor.distlib.compat.ConvertingDict.__getitem__:
  - 936
  - 938
  - 940
  - 935
  pip._vendor.distlib.compat.ConvertingDict.get:
  - 952
  - 947
  - 948
  - 950
  pip._vendor.distlib.compat.ConvertingList:
  - 969
  pip._vendor.distlib.compat.ConvertingList.__getitem__:
  - 977
  - 972
  - 973
  - 975
  pip._vendor.distlib.compat.ConvertingList.pop:
  - 984
  - 985
  - 986
  - 987
  pip._vendor.distlib.compat.ConvertingTuple:
  - 993
  pip._vendor.distlib.compat.ConvertingTuple.__getitem__:
  - 996
  - 997
  - 998
  - 999
  pip._vendor.distlib.compat.OrderedDict:
  - 821
  - 661
  pip._vendor.distlib.compat.OrderedDict.__delitem__:
  - 704
  - 705
  - 701
  pip._vendor.distlib.compat.OrderedDict.__eq__:
  - 884
  - 888
  - 889
  - 890
  - 891
  pip._vendor.distlib.compat.OrderedDict.__init__:
  - 688
  - 674
  - 683
  - 679
  pip._vendor.distlib.compat.OrderedDict.__iter__:
  - 714
  - 710
  pip._vendor.distlib.compat.OrderedDict.__reduce__:
  - 864
  - 859
  - 861
  - 862
  - 863
  pip._vendor.distlib.compat.OrderedDict.__repr__:
  - 844
  - 845
  - 847
  - 848
  - 852
  - 854
  pip._vendor.distlib.compat.OrderedDict.__reversed__:
  - 722
  - 718
  pip._vendor.distlib.compat.OrderedDict.__setitem__:
  - 698
  - 691
  - 694
  pip._vendor.distlib.compat.OrderedDict.clear:
  - 728
  - 732
  - 726
  - 735
  pip._vendor.distlib.compat.OrderedDict.copy:
  - 869
  - 870
  pip._vendor.distlib.compat.OrderedDict.fromkeys:
  - 874
  - 878
  - 879
  pip._vendor.distlib.compat.OrderedDict.items:
  - 771
  pip._vendor.distlib.compat.OrderedDict.iteritems:
  - 784
  - 785
  - 786
  pip._vendor.distlib.compat.OrderedDict.iterkeys:
  - 776
  - 775
  pip._vendor.distlib.compat.OrderedDict.itervalues:
  - 779
  - 780
  - 781
  pip._vendor.distlib.compat.OrderedDict.keys:
  - 763
  - 764
  pip._vendor.distlib.compat.OrderedDict.pop:
  - 824
  - 832
  - 828
  pip._vendor.distlib.compat.OrderedDict.popitem:
  - 745
  - 738
  - 757
  - 742
  pip._vendor.distlib.compat.OrderedDict.setdefault:
  - 837
  - 838
  pip._vendor.distlib.compat.OrderedDict.update:
  - 800
  - 805
  - 807
  - 808
  - 810
  - 811
  - 814
  - 816
  - 789
  - 797
  pip._vendor.distlib.compat.OrderedDict.values:
  - 767
  pip._vendor.distlib.compat.OrderedDict.viewitems:
  - 907
  - 908
  pip._vendor.distlib.compat.OrderedDict.viewkeys:
  - 899
  - 900
  pip._vendor.distlib.compat.OrderedDict.viewvalues:
  - 904
  - 903
  pip._vendor.distlib.compat.ZipExtFile.__exit__:
  - 287
  pip._vendor.distlib.compat.ZipExtFile.__init__:
  - 281
  pip._vendor.distlib.compat.ZipFile.__exit__:
  - 296
  pip._vendor.distlib.compat.ZipFile.open:
  - 300
  - 301
  pip._vendor.distlib.compat._dnsname_match:
  - 128
  - 97
  - 133
  - 102
  - 136
  - 105
  - 139
  - 108
  - 109
  - 140
  - 142
  - 143
  - 118
  - 119
  - 124
  - 127
  pip._vendor.distlib.compat._get_normal_name:
  - 373
  - 375
  - 376
  - 378
  - 379
  pip._vendor.distlib.compat._recursive_repr:
  - 496
  pip._vendor.distlib.compat._recursive_repr.decorating_function:
  - 516
  - 517
  - 518
  - 519
  - 502
  pip._vendor.distlib.compat._recursive_repr.decorating_function.wrapper:
  - 512
  - 505
  - 506
  - 508
  - 510
  pip._vendor.distlib.compat.cache_from_source:
  - 634
  - 635
  - 637
  pip._vendor.distlib.compat.callable:
  - 327
  pip._vendor.distlib.compat.detect_encoding:
  - 384
  - 453
  - 454
  - 458
  - 461
  - 462
  - 465
  - 466
  - 469
  - 470
  pip._vendor.distlib.compat.detect_encoding.find_cookie:
  - 419
  - 422
  - 423
  - 426
  - 427
  - 429
  - 431
  - 434
  - 437
  - 441
  - 442
  - 444
  - 447
  pip._vendor.distlib.compat.detect_encoding.read_or_stop:
  - 410
  pip._vendor.distlib.compat.fsdecode:
  - 356
  - 358
  - 359
  pip._vendor.distlib.compat.fsencode:
  - 347
  - 349
  - 350
  pip._vendor.distlib.compat.match_hostname:
  - 160
  - 161
  - 163
  - 164
  - 167
  - 168
  - 171
  - 172
  - 174
  - 175
  - 146
  - 179
  - 153
  - 158
  - 159
  pip._vendor.distlib.compat.pop:
  - 960
  - 961
  - 962
  - 959
  pip._vendor.distlib.compat.python_implementation:
  - 312
  - 314
  - 309
  - 310
  pip._vendor.distlib.compat.quote:
  - 32
  - 33
  - 31
  pip._vendor.distlib.compat.valid_ident:
  - 917
  - 918
  pip._vendor.distlib.compat.which:
  - 257
  - 258
  - 259
  - 260
  - 261
  - 262
  - 263
  - 264
  - 206
  - 226
  - 227
  - 231
  - 232
  - 233
  - 235
  - 237
  - 239
  - 240
  - 243
  - 248
  pip._vendor.distlib.compat.which._access_check:
  - 220
  - 221
  pip._vendor.distlib.database:
  - 33
  - 6
  pip._vendor.distlib.database.BaseInstalledDistribution:
  - 484
  pip._vendor.distlib.database.BaseInstalledDistribution.__init__:
  - 492
  - 502
  pip._vendor.distlib.database.BaseInstalledDistribution.get_hash:
  - 525
  - 527
  - 531
  - 533
  - 534
  - 507
  pip._vendor.distlib.database.DependencyGraph:
  - 1098
  pip._vendor.distlib.database.DependencyGraph.__repr__:
  - 1234
  - 1236
  - 1237
  - 1238
  pip._vendor.distlib.database.DependencyGraph.add_distribution:
  - 1119
  pip._vendor.distlib.database.DependencyGraph.add_edge:
  - 1129
  - 1138
  - 1140
  - 1141
  pip._vendor.distlib.database.DependencyGraph.add_missing:
  - 1144
  - 1152
  - 1151
  pip._vendor.distlib.database.DependencyGraph.repr_node:
  - 1158
  - 1159
  - 1160
  - 1161
  - 1162
  - 1164
  - 1165
  - 1166
  - 1167
  - 1168
  pip._vendor.distlib.database.DependencyGraph.to_dot:
  - 1184
  - 1185
  - 1186
  - 1187
  - 1190
  - 1191
  - 1192
  - 1193
  - 1194
  - 1196
  - 1197
  - 1198
  - 1199
  - 1200
  - 1171
  - 1181
  - 1182
  - 1183
  pip._vendor.distlib.database.DependencyGraph.topological_sort:
  - 1218
  - 1219
  - 1220
  - 1222
  - 1226
  - 1228
  - 1230
  - 1231
  - 1203
  - 1213
  pip._vendor.distlib.database.Distribution:
  - 328
  - 341
  - 335
  pip._vendor.distlib.database.Distribution.__eq__:
  - 469
  - 462
  pip._vendor.distlib.database.Distribution.__hash__:
  - 480
  - 477
  pip._vendor.distlib.database.Distribution.__init__:
  - 353
  - 346
  - 359
  pip._vendor.distlib.database.Distribution.__repr__:
  - 452
  - 455
  pip._vendor.distlib.database.Distribution._get_requirements:
  - 392
  - 393
  - 395
  - 396
  pip._vendor.distlib.database.Distribution.build_requires:
  - 408
  pip._vendor.distlib.database.Distribution.dev_requires:
  - 416
  pip._vendor.distlib.database.Distribution.matches_requirement:
  - 419
  - 427
  - 428
  - 430
  - 433
  - 434
  - 435
  - 440
  - 441
  - 442
  - 445
  pip._vendor.distlib.database.Distribution.meta_requires:
  - 404
  pip._vendor.distlib.database.Distribution.name_and_version:
  - 373
  pip._vendor.distlib.database.Distribution.provides:
  - 386
  - 387
  - 380
  pip._vendor.distlib.database.Distribution.run_requires:
  - 400
  pip._vendor.distlib.database.Distribution.source_url:
  - 364
  pip._vendor.distlib.database.Distribution.test_requires:
  - 412
  pip._vendor.distlib.database.DistributionPath:
  - 106
  - 76
  pip._vendor.distlib.database.DistributionPath.__init__:
  - 96
  - 98
  - 81
  - 89
  - 95
  pip._vendor.distlib.database.DistributionPath._generate_cache:
  - 170
  - 176
  - 177
  - 178
  - 179
  - 181
  - 183
  - 185
  pip._vendor.distlib.database.DistributionPath._yield_distributions:
  - 128
  - 130
  - 131
  - 132
  - 133
  - 136
  - 141
  - 142
  - 144
  - 145
  - 150
  - 151
  - 153
  - 154
  - 155
  - 158
  - 160
  - 161
  - 162
  - 165
  - 167
  - 116
  - 122
  - 123
  - 124
  - 125
  - 127
  pip._vendor.distlib.database.DistributionPath.clear_cache:
  - 112
  - 113
  - 109
  pip._vendor.distlib.database.DistributionPath.distinfo_dirname:
  - 208
  - 190
  - 207
  pip._vendor.distlib.database.DistributionPath.get_distribution:
  - 233
  - 243
  - 244
  - 245
  - 246
  - 250
  - 252
  - 254
  pip._vendor.distlib.database.DistributionPath.get_distributions:
  - 225
  - 226
  - 228
  - 229
  - 230
  - 211
  - 219
  - 220
  - 221
  - 223
  pip._vendor.distlib.database.DistributionPath.get_exported_entries:
  - 320
  - 321
  - 323
  - 324
  - 309
  - 315
  - 317
  - 319
  pip._vendor.distlib.database.DistributionPath.get_file_path:
  - 304
  - 306
  - 300
  - 303
  pip._vendor.distlib.database.DistributionPath.provides_distribution:
  - 288
  - 289
  - 290
  - 259
  - 291
  - 292
  - 295
  - 296
  - 273
  - 275
  - 280
  - 283
  - 284
  pip._vendor.distlib.database.EggInfoDistribution:
  - 868
  pip._vendor.distlib.database.EggInfoDistribution.__eq__:
  - 1086
  pip._vendor.distlib.database.EggInfoDistribution.__init__:
  - 896
  - 885
  - 887
  - 889
  - 892
  - 894
  - 895
  pip._vendor.distlib.database.EggInfoDistribution.__init__.set_name_and_version:
  - 880
  pip._vendor.distlib.database.EggInfoDistribution._get_metadata:
  - 946
  - 947
  - 948
  - 949
  - 950
  - 951
  - 952
  - 953
  - 956
  - 957
  - 958
  - 959
  - 961
  - 962
  - 964
  - 967
  - 968
  - 969
  - 970
  - 971
  - 972
  - 973
  - 978
  - 979
  - 981
  - 982
  - 983
  - 984
  - 985
  - 988
  pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_data:
  - 928
  - 902
  - 907
  - 908
  - 909
  - 911
  - 913
  - 914
  - 917
  - 918
  - 919
  - 921
  - 922
  - 924
  - 925
  - 927
  pip._vendor.distlib.database.EggInfoDistribution._get_metadata.parse_requires_path:
  - 940
  - 939
  - 932
  pip._vendor.distlib.database.EggInfoDistribution.check_installed_files:
  - 1000
  - 1009
  - 1010
  - 1011
  - 1012
  - 1014
  - 1015
  pip._vendor.distlib.database.EggInfoDistribution.list_distinfo_files:
  - 1057
  - 1068
  - 1069
  - 1071
  - 1072
  - 1073
  - 1074
  - 1077
  - 1078
  - 1079
  - 1080
  - 1081
  - 1083
  pip._vendor.distlib.database.EggInfoDistribution.list_installed_files:
  - 1051
  - 1037
  - 1039
  - 1040
  - 1041
  - 1042
  - 1043
  - 1046
  - 1047
  - 1048
  - 1019
  - 1052
  - 1053
  pip._vendor.distlib.database.EggInfoDistribution.list_installed_files._md5:
  - 1032
  - 1027
  - 1029
  - 1031
  pip._vendor.distlib.database.EggInfoDistribution.list_installed_files._size:
  - 1035
  pip._vendor.distlib.database.InstalledDistribution:
  - 539
  pip._vendor.distlib.database.InstalledDistribution.__eq__:
  - 860
  pip._vendor.distlib.database.InstalledDistribution.__init__:
  - 550
  - 551
  - 553
  - 555
  - 556
  - 558
  - 559
  - 561
  - 562
  - 563
  - 566
  - 567
  - 569
  - 571
  - 572
  - 574
  - 576
  - 577
  - 578
  - 579
  - 580
  pip._vendor.distlib.database.InstalledDistribution._get_records:
  - 609
  - 590
  - 597
  - 598
  - 599
  - 603
  - 604
  pip._vendor.distlib.database.InstalledDistribution.check_installed_files:
  - 718
  - 727
  - 728
  - 729
  - 730
  - 731
  - 732
  - 734
  - 735
  - 736
  - 737
  - 738
  - 739
  - 740
  - 741
  - 742
  - 746
  - 747
  - 748
  - 749
  pip._vendor.distlib.database.InstalledDistribution.exports:
  - 622
  - 621
  - 614
  - 623
  pip._vendor.distlib.database.InstalledDistribution.get_distinfo_file:
  - 837
  - 841
  - 815
  - 828
  - 830
  - 831
  pip._vendor.distlib.database.InstalledDistribution.get_distinfo_resource:
  - 809
  - 810
  - 812
  - 806
  pip._vendor.distlib.database.InstalledDistribution.get_resource_path:
  - 653
  - 663
  - 664
  - 665
  - 666
  - 667
  pip._vendor.distlib.database.InstalledDistribution.list_distinfo_files:
  - 844
  - 851
  - 852
  - 854
  - 855
  - 856
  - 857
  pip._vendor.distlib.database.InstalledDistribution.list_installed_files:
  - 680
  - 673
  - 679
  pip._vendor.distlib.database.InstalledDistribution.read_exports:
  - 627
  - 635
  - 636
  - 637
  - 638
  pip._vendor.distlib.database.InstalledDistribution.shared_locations:
  - 768
  - 769
  - 770
  - 771
  - 772
  - 773
  - 774
  - 775
  - 755
  pip._vendor.distlib.database.InstalledDistribution.write_exports:
  - 648
  - 649
  - 642
  - 650
  pip._vendor.distlib.database.InstalledDistribution.write_installed_files:
  - 683
  - 689
  - 690
  - 691
  - 692
  - 693
  - 694
  - 695
  - 697
  - 698
  - 699
  - 703
  - 704
  - 705
  - 706
  - 707
  - 708
  - 709
  - 712
  - 713
  - 714
  pip._vendor.distlib.database.InstalledDistribution.write_shared_locations:
  - 801
  - 802
  - 781
  - 789
  - 790
  - 791
  - 794
  - 796
  - 797
  - 798
  - 799
  pip._vendor.distlib.database._Cache:
  - 45
  pip._vendor.distlib.database._Cache.__init__:
  - 50
  pip._vendor.distlib.database._Cache.add:
  - 72
  - 66
  - 70
  pip._vendor.distlib.database._Cache.clear:
  - 58
  - 61
  - 62
  pip._vendor.distlib.database.get_dependent_dists:
  - 1312
  - 1313
  - 1314
  - 1315
  - 1317
  - 1296
  - 1302
  - 1305
  - 1311
  pip._vendor.distlib.database.get_required_dists:
  - 1344
  - 1345
  - 1346
  - 1322
  - 1329
  - 1332
  - 1334
  - 1336
  - 1339
  - 1340
  - 1342
  pip._vendor.distlib.database.make_dist:
  - 1354
  - 1355
  - 1359
  - 1351
  pip._vendor.distlib.database.make_graph:
  - 1280
  - 1282
  - 1286
  - 1287
  - 1290
  - 1291
  - 1242
  - 1249
  - 1250
  - 1254
  - 1255
  - 1257
  - 1258
  - 1259
  - 1260
  - 1263
  - 1266
  - 1268
  - 1271
  - 1273
  - 1274
  - 1279
  pip._vendor.distlib.index:
  - 23
  pip._vendor.distlib.index.PackageIndex:
  - 30
  pip._vendor.distlib.index.PackageIndex.__init__:
  - 38
  - 45
  - 46
  - 47
  - 53
  - 56
  - 58
  - 60
  pip._vendor.distlib.index.PackageIndex._get_pypirc_command:
  - 72
  - 67
  pip._vendor.distlib.index.PackageIndex._reader:
  - 129
  - 138
  - 139
  - 141
  - 142
  - 143
  - 144
  pip._vendor.distlib.index.PackageIndex.check_credentials:
  - 97
  - 101
  - 103
  - 104
  - 105
  - 106
  pip._vendor.distlib.index.PackageIndex.download_file:
  - 387
  - 389
  - 391
  - 395
  - 396
  - 400
  - 403
  - 405
  - 410
  - 411
  - 412
  - 413
  - 415
  - 416
  - 418
  - 419
  - 420
  - 421
  - 423
  - 424
  - 426
  - 429
  - 434
  - 435
  - 436
  - 440
  - 366
  pip._vendor.distlib.index.PackageIndex.encode_request:
  - 482
  - 483
  - 484
  - 486
  - 459
  - 491
  - 493
  - 497
  - 499
  - 472
  - 473
  - 476
  - 477
  - 479
  pip._vendor.distlib.index.PackageIndex.get_sign_command:
  - 161
  - 163
  - 164
  - 165
  - 166
  - 167
  - 168
  - 169
  - 171
  - 147
  pip._vendor.distlib.index.PackageIndex.get_verify_command:
  - 333
  - 335
  - 336
  - 337
  - 338
  - 319
  pip._vendor.distlib.index.PackageIndex.read_configuration:
  - 75
  - 81
  - 82
  - 83
  - 84
  - 85
  pip._vendor.distlib.index.PackageIndex.register:
  - 109
  - 118
  - 119
  - 120
  - 122
  - 123
  - 125
  - 126
  pip._vendor.distlib.index.PackageIndex.run_command:
  - 193
  - 196
  - 197
  - 198
  - 199
  - 200
  - 201
  - 202
  - 204
  - 205
  - 206
  - 175
  - 189
  pip._vendor.distlib.index.PackageIndex.save_configuration:
  - 88
  - 92
  - 94
  pip._vendor.distlib.index.PackageIndex.search:
  - 504
  - 506
  - 508
  - 502
  pip._vendor.distlib.index.PackageIndex.send_request:
  - 451
  - 452
  - 453
  - 454
  - 455
  - 456
  - 443
  pip._vendor.distlib.index.PackageIndex.sign_file:
  - 225
  - 226
  - 227
  - 210
  - 223
  pip._vendor.distlib.index.PackageIndex.upload_documentation:
  - 290
  - 302
  - 303
  - 305
  - 306
  - 308
  - 310
  - 314
  - 315
  pip._vendor.distlib.index.PackageIndex.upload_file:
  - 256
  - 258
  - 259
  - 261
  - 262
  - 263
  - 265
  - 267
  - 268
  - 269
  - 270
  - 271
  - 279
  - 280
  - 281
  - 282
  - 283
  - 285
  - 286
  - 287
  - 234
  - 255
  pip._vendor.distlib.index.PackageIndex.verify_signature:
  - 355
  - 358
  - 360
  - 361
  - 343
  pip._vendor.distlib.locators:
  - 34
  - 1060
  - 36
  - 37
  - 38
  - 1062
  pip._vendor.distlib.locators.AggregatingLocator:
  - 970
  - 999
  pip._vendor.distlib.locators.AggregatingLocator.__init__:
  - 985
  - 987
  - 974
  pip._vendor.distlib.locators.AggregatingLocator._get_project:
  - 1037
  - 1032
  - 1003
  - 1004
  - 1005
  - 1006
  - 1007
  - 1008
  - 1036
  - 1010
  - 1011
  - 1012
  - 1013
  - 1014
  - 1040
  - 1018
  - 1019
  - 1020
  pip._vendor.distlib.locators.AggregatingLocator._set_scheme:
  - 996
  pip._vendor.distlib.locators.AggregatingLocator.clear_cache:
  - 992
  - 990
  - 991
  pip._vendor.distlib.locators.AggregatingLocator.get_distribution_names:
  - 1049
  - 1050
  - 1052
  - 1046
  pip._vendor.distlib.locators.DependencyFinder:
  - 1070
  pip._vendor.distlib.locators.DependencyFinder.__init__:
  - 1080
  - 1075
  pip._vendor.distlib.locators.DependencyFinder.add_distribution:
  - 1088
  - 1092
  - 1093
  - 1094
  - 1095
  - 1083
  pip._vendor.distlib.locators.DependencyFinder.find:
  - 1280
  - 1281
  - 1282
  - 1283
  - 1284
  - 1286
  - 1288
  - 1289
  - 1292
  - 1294
  - 1296
  - 1297
  - 1299
  - 1300
  - 1302
  - 1196
  - 1226
  - 1227
  - 1228
  - 1230
  - 1232
  - 1234
  - 1236
  - 1238
  - 1240
  - 1242
  - 1243
  - 1244
  - 1246
  - 1248
  - 1249
  - 1253
  - 1254
  - 1258
  - 1259
  - 1260
  - 1262
  - 1263
  - 1265
  - 1266
  - 1267
  - 1268
  - 1269
  - 1272
  - 1273
  - 1274
  - 1275
  - 1276
  - 1279
  pip._vendor.distlib.locators.DependencyFinder.find_providers:
  - 1132
  - 1139
  - 1141
  - 1143
  - 1144
  - 1146
  - 1150
  - 1151
  pip._vendor.distlib.locators.DependencyFinder.get_matcher:
  - 1124
  - 1116
  - 1128
  - 1127
  pip._vendor.distlib.locators.DependencyFinder.remove_distribution:
  - 1098
  - 1103
  - 1107
  - 1108
  - 1109
  - 1111
  - 1112
  pip._vendor.distlib.locators.DependencyFinder.try_to_replace:
  - 1187
  - 1156
  - 1189
  - 1190
  - 1191
  - 1175
  - 1176
  - 1177
  - 1178
  - 1179
  - 1180
  - 1182
  - 1183
  pip._vendor.distlib.locators.DirectoryLocator:
  - 837
  pip._vendor.distlib.locators.DirectoryLocator.__init__:
  - 842
  - 851
  - 852
  - 853
  - 854
  pip._vendor.distlib.locators.DirectoryLocator._get_project:
  - 868
  - 869
  - 870
  - 871
  - 872
  - 873
  - 875
  - 876
  - 877
  - 878
  pip._vendor.distlib.locators.DirectoryLocator.get_distribution_names:
  - 896
  - 897
  - 883
  - 886
  - 887
  - 888
  - 889
  - 890
  - 891
  - 892
  - 894
  - 895
  pip._vendor.distlib.locators.DirectoryLocator.should_include:
  - 864
  - 859
  pip._vendor.distlib.locators.DistPathLocator:
  - 942
  pip._vendor.distlib.locators.DistPathLocator.__init__:
  - 952
  - 953
  - 947
  pip._vendor.distlib.locators.DistPathLocator._get_project:
  - 963
  - 964
  - 957
  - 958
  pip._vendor.distlib.locators.JSONLocator:
  - 903
  pip._vendor.distlib.locators.JSONLocator._get_project:
  - 932
  - 934
  - 935
  - 937
  - 917
  - 918
  - 919
  - 920
  - 925
  - 926
  pip._vendor.distlib.locators.JSONLocator.get_distribution_names:
  - 910
  pip._vendor.distlib.locators.Locator:
  - 90
  - 154
  pip._vendor.distlib.locators.Locator.__init__:
  - 106
  - 117
  - 122
  pip._vendor.distlib.locators.Locator._get_digest:
  - 322
  - 323
  - 325
  - 308
  - 316
  - 318
  - 319
  pip._vendor.distlib.locators.Locator._get_project:
  - 157
  pip._vendor.distlib.locators.Locator._update_version_data:
  - 331
  - 336
  - 337
  - 338
  - 342
  - 344
  - 347
  - 348
  - 349
  pip._vendor.distlib.locators.Locator.clear_cache:
  - 146
  pip._vendor.distlib.locators.Locator.clear_errors:
  - 139
  - 143
  pip._vendor.distlib.locators.Locator.convert_url_to_download_info:
  - 256
  - 258
  - 260
  - 261
  - 262
  - 264
  - 267
  - 268
  - 273
  - 275
  - 276
  - 279
  - 280
  - 281
  - 283
  - 284
  - 285
  - 286
  - 287
  - 288
  - 289
  - 292
  - 297
  - 300
  - 303
  - 235
  - 246
  - 247
  - 248
  - 250
  - 251
  - 252
  pip._vendor.distlib.locators.Locator.convert_url_to_download_info.same_project:
  - 243
  pip._vendor.distlib.locators.Locator.get_distribution_names:
  - 169
  pip._vendor.distlib.locators.Locator.get_errors:
  - 129
  - 131
  - 132
  - 135
  - 125
  pip._vendor.distlib.locators.Locator.get_project:
  - 175
  - 181
  - 182
  - 183
  - 186
  - 187
  pip._vendor.distlib.locators.Locator.locate:
  - 385
  - 386
  - 388
  - 390
  - 391
  - 392
  - 393
  - 396
  - 397
  - 399
  - 401
  - 402
  - 403
  - 354
  - 367
  - 368
  - 370
  - 371
  - 372
  - 373
  - 374
  - 378
  - 379
  - 382
  pip._vendor.distlib.locators.Locator.prefer_url:
  - 225
  - 207
  - 217
  - 218
  - 219
  - 220
  - 222
  - 223
  pip._vendor.distlib.locators.Locator.score_url:
  - 192
  - 196
  - 197
  - 199
  - 200
  - 201
  - 202
  pip._vendor.distlib.locators.Locator.split_filename:
  - 232
  - 229
  pip._vendor.distlib.locators.Page:
  - 529
  - 555
  - 537
  - 542
  pip._vendor.distlib.locators.Page.__init__:
  - 552
  - 545
  - 553
  - 551
  pip._vendor.distlib.locators.Page.links:
  - 576
  - 577
  - 578
  - 579
  - 582
  - 559
  - 570
  - 571
  - 572
  pip._vendor.distlib.locators.Page.links.<lambda1>:
  - 578
  pip._vendor.distlib.locators.Page.links.clean:
  - 565
  - 566
  - 567
  pip._vendor.distlib.locators.PyPIJSONLocator:
  - 460
  pip._vendor.distlib.locators.PyPIJSONLocator.__init__:
  - 465
  - 466
  pip._vendor.distlib.locators.PyPIJSONLocator._get_project:
  - 512
  - 513
  - 523
  - 524
  - 476
  - 478
  - 479
  - 480
  - 481
  - 485
  - 486
  - 487
  - 488
  - 492
  - 494
  - 495
  - 496
  - 497
  - 499
  - 500
  - 502
  - 505
  - 508
  - 510
  - 511
  pip._vendor.distlib.locators.PyPIJSONLocator.get_distribution_names:
  - 469
  pip._vendor.distlib.locators.PyPIRPCLocator:
  - 411
  pip._vendor.distlib.locators.PyPIRPCLocator.__init__:
  - 416
  - 422
  - 424
  pip._vendor.distlib.locators.PyPIRPCLocator._get_project:
  - 448
  - 451
  - 453
  - 454
  - 434
  - 435
  - 436
  - 437
  - 438
  - 441
  - 442
  - 443
  - 444
  - 445
  pip._vendor.distlib.locators.PyPIRPCLocator.get_distribution_names:
  - 427
  - 430
  pip._vendor.distlib.locators.RedirectHandler:
  - 58
  pip._vendor.distlib.locators.RedirectHandler.http_error_302:
  - 70
  - 71
  - 74
  - 76
  - 77
  - 78
  - 79
  - 80
  - 83
  pip._vendor.distlib.locators.SimpleScrapingLocator:
  - 587
  - 596
  - 821
  - 597
  - 671
  pip._vendor.distlib.locators.SimpleScrapingLocator.<lambda1>:
  - 596
  pip._vendor.distlib.locators.SimpleScrapingLocator.__init__:
  - 610
  - 611
  - 614
  - 615
  - 616
  - 619
  - 624
  - 601
  pip._vendor.distlib.locators.SimpleScrapingLocator._fetch:
  - 737
  - 739
  - 740
  - 741
  - 743
  - 744
  - 746
  - 747
  - 748
  - 749
  - 750
  - 754
  - 757
  - 758
  - 730
  pip._vendor.distlib.locators.SimpleScrapingLocator._get_project:
  - 658
  - 659
  - 660
  - 661
  - 663
  - 664
  - 665
  - 667
  pip._vendor.distlib.locators.SimpleScrapingLocator._is_platform_dependent:
  - 675
  - 678
  pip._vendor.distlib.locators.SimpleScrapingLocator._prepare_threads:
  - 628
  - 634
  - 635
  - 637
  - 638
  pip._vendor.distlib.locators.SimpleScrapingLocator._process_download:
  - 681
  - 690
  - 693
  - 694
  - 695
  - 697
  pip._vendor.distlib.locators.SimpleScrapingLocator._should_queue:
  - 705
  - 706
  - 709
  - 711
  - 713
  - 715
  - 717
  - 720
  - 721
  - 725
  - 701
  pip._vendor.distlib.locators.SimpleScrapingLocator._wait_threads:
  - 641
  - 647
  - 648
  - 649
  - 650
  pip._vendor.distlib.locators.SimpleScrapingLocator.get_distribution_names:
  - 832
  - 824
  - 827
  - 828
  - 829
  - 831
  pip._vendor.distlib.locators.SimpleScrapingLocator.get_page:
  - 771
  - 772
  - 773
  - 775
  - 777
  - 779
  - 781
  - 782
  - 784
  - 786
  - 787
  - 788
  - 789
  - 790
  - 791
  - 792
  - 793
  - 794
  - 795
  - 797
  - 799
  - 800
  - 801
  - 803
  - 805
  - 806
  - 809
  - 810
  - 812
  - 814
  - 816
  - 763
  pip._vendor.distlib.locators.get_all_distribution_names:
  - 43
  - 48
  - 50
  - 52
  - 54
  pip._vendor.distlib.manifest:
  - 24
  - 27
  - 28
  - 6
  pip._vendor.distlib.manifest.Manifest:
  - 39
  pip._vendor.distlib.manifest.Manifest.__init__:
  - 50
  - 53
  - 45
  pip._vendor.distlib.manifest.Manifest._exclude_pattern:
  - 290
  - 301
  - 302
  - 303
  - 304
  pip._vendor.distlib.manifest.Manifest._glob_to_re:
  - 370
  - 364
  - 378
  - 383
  pip._vendor.distlib.manifest.Manifest._include_pattern:
  - 276
  - 279
  - 280
  - 249
  - 282
  - 283
  - 284
  pip._vendor.distlib.manifest.Manifest._parse_directive:
  - 225
  - 227
  - 228
  - 232
  - 201
  - 233
  - 235
  - 236
  - 206
  - 207
  - 240
  - 214
  - 219
  - 221
  pip._vendor.distlib.manifest.Manifest._translate_pattern:
  - 310
  - 317
  - 318
  - 319
  - 323
  - 325
  - 327
  - 328
  - 329
  - 330
  - 334
  - 335
  - 337
  - 338
  - 339
  - 341
  - 342
  - 343
  - 345
  - 347
  - 348
  - 351
  - 355
  - 356
  - 359
  - 361
  pip._vendor.distlib.manifest.Manifest.add:
  - 92
  - 93
  - 94
  - 87
  pip._vendor.distlib.manifest.Manifest.add_many:
  - 97
  - 102
  - 103
  pip._vendor.distlib.manifest.Manifest.clear:
  - 128
  - 129
  pip._vendor.distlib.manifest.Manifest.findall:
  - 72
  - 73
  - 75
  - 76
  - 79
  - 81
  - 82
  - 83
  - 84
  - 60
  pip._vendor.distlib.manifest.Manifest.process_directive:
  - 133
  - 147
  - 152
  - 153
  - 154
  - 155
  - 157
  - 158
  - 159
  - 161
  - 162
  - 163
  - 164
  - 167
  - 168
  - 169
  - 171
  - 172
  - 173
  - 174
  - 177
  - 178
  - 179
  - 181
  - 182
  - 183
  - 186
  - 187
  - 188
  pip._vendor.distlib.manifest.Manifest.sorted:
  - 106
  - 118
  - 119
  - 120
  - 121
  - 122
  - 124
  - 125
  pip._vendor.distlib.manifest.Manifest.sorted.add_dir:
  - 111
  - 112
  - 113
  - 114
  - 116
  pip._vendor.distlib.markers:
  - 101
  - 7
  - 141
  - 144
  - 26
  pip._vendor.distlib.markers.Evaluator:
  - 46
  - 51
  - 52
  - 53
  - 54
  - 55
  - 56
  - 57
  - 58
  - 59
  - 60
  - 61
  - 62
  pip._vendor.distlib.markers.Evaluator.evaluate:
  - 96
  - 97
  - 66
  - 70
  - 71
  - 74
  - 78
  - 80
  - 84
  - 88
  - 89
  - 90
  - 92
  - 93
  - 94
  - 95
  pip._vendor.distlib.markers._get_versions:
  - 42
  pip._vendor.distlib.markers._is_literal:
  - 36
  pip._vendor.distlib.markers._is_version_marker:
  - 32
  pip._vendor.distlib.markers.default_context:
  - 128
  - 129
  - 130
  - 131
  - 132
  - 133
  - 113
  - 114
  - 121
  - 122
  - 123
  pip._vendor.distlib.markers.default_context.format_full_version:
  - 109
  - 110
  pip._vendor.distlib.markers.interpret:
  - 161
  - 164
  - 165
  - 166
  - 167
  - 148
  - 157
  pip._vendor.distlib.metadata:
  - 227
  - 229
  - 6
  - 107
  - 108
  - 109
  - 110
  - 111
  - 112
  - 113
  - 209
  - 115
  - 211
  - 53
  - 54
  - 25
  pip._vendor.distlib.metadata.LegacyMetadata:
  - 246
  pip._vendor.distlib.metadata.LegacyMetadata.__contains__:
  - 294
  pip._vendor.distlib.metadata.LegacyMetadata.__delitem__:
  - 286
  pip._vendor.distlib.metadata.LegacyMetadata.__getattr__:
  - 314
  pip._vendor.distlib.metadata.LegacyMetadata.__getitem__:
  - 280
  pip._vendor.distlib.metadata.LegacyMetadata.__init__:
  - 259
  - 265
  - 266
  - 267
  - 268
  - 269
  - 270
  - 271
  pip._vendor.distlib.metadata.LegacyMetadata.__iter__:
  - 592
  - 591
  pip._vendor.distlib.metadata.LegacyMetadata.__setitem__:
  - 283
  pip._vendor.distlib.metadata.LegacyMetadata._convert_name:
  - 297
  - 299
  - 300
  pip._vendor.distlib.metadata.LegacyMetadata._default_value:
  - 303
  pip._vendor.distlib.metadata.LegacyMetadata._remove_line_prefix:
  - 308
  - 309
  - 311
  pip._vendor.distlib.metadata.LegacyMetadata._write_field:
  - 277
  pip._vendor.distlib.metadata.LegacyMetadata.add_requirements:
  - 577
  - 579
  - 580
  pip._vendor.distlib.metadata.LegacyMetadata.check:
  - 512
  - 546
  - 547
  - 548
  - 517
  - 518
  - 519
  - 549
  - 521
  - 522
  - 525
  - 526
  - 527
  - 530
  - 533
  - 541
  - 510
  pip._vendor.distlib.metadata.LegacyMetadata.check.are_valid_constraints:
  - 536
  - 537
  pip._vendor.distlib.metadata.LegacyMetadata.get:
  - 481
  - 482
  - 483
  - 484
  - 485
  - 487
  - 490
  - 492
  - 495
  - 496
  - 497
  - 500
  - 503
  - 505
  - 506
  pip._vendor.distlib.metadata.LegacyMetadata.get_fullname:
  - 328
  - 325
  pip._vendor.distlib.metadata.LegacyMetadata.is_field:
  - 331
  - 332
  pip._vendor.distlib.metadata.LegacyMetadata.is_multi_field:
  - 336
  pip._vendor.distlib.metadata.LegacyMetadata.items:
  - 598
  pip._vendor.distlib.metadata.LegacyMetadata.keys:
  - 588
  pip._vendor.distlib.metadata.LegacyMetadata.read:
  - 345
  - 340
  - 341
  - 343
  pip._vendor.distlib.metadata.LegacyMetadata.read_file:
  - 353
  - 354
  - 356
  - 358
  - 359
  - 360
  - 361
  - 365
  - 366
  - 370
  - 348
  - 349
  pip._vendor.distlib.metadata.LegacyMetadata.set:
  - 437
  - 438
  - 440
  - 441
  - 442
  - 443
  - 446
  - 447
  - 448
  - 453
  - 456
  - 457
  - 458
  - 460
  - 461
  - 465
  - 466
  - 467
  - 469
  - 470
  - 471
  - 474
  - 475
  - 476
  pip._vendor.distlib.metadata.LegacyMetadata.set_metadata_version:
  - 274
  pip._vendor.distlib.metadata.LegacyMetadata.todict:
  - 554
  - 560
  - 562
  - 566
  - 567
  - 569
  - 572
  pip._vendor.distlib.metadata.LegacyMetadata.update:
  - 422
  - 425
  - 426
  - 427
  - 429
  - 430
  - 432
  - 433
  - 434
  - 409
  pip._vendor.distlib.metadata.LegacyMetadata.update._set:
  - 419
  - 420
  pip._vendor.distlib.metadata.LegacyMetadata.values:
  - 595
  pip._vendor.distlib.metadata.LegacyMetadata.write:
  - 376
  - 377
  - 379
  - 381
  pip._vendor.distlib.metadata.LegacyMetadata.write_file:
  - 384
  - 385
  - 387
  - 388
  - 389
  - 391
  - 392
  - 394
  - 395
  - 396
  - 397
  - 399
  - 402
  - 403
  - 405
  - 406
  pip._vendor.distlib.metadata.Metadata:
  - 611
  - 617
  - 619
  - 621
  - 625
  - 700
  pip._vendor.distlib.metadata.Metadata.__getattribute__:
  - 724
  - 725
  - 726
  - 728
  - 729
  - 730
  - 732
  - 734
  - 735
  - 737
  - 740
  - 742
  - 743
  - 744
  - 745
  - 746
  - 747
  - 748
  - 749
  - 751
  - 752
  - 753
  - 754
  - 755
  - 756
  - 758
  - 759
  - 760
  - 761
  - 763
  pip._vendor.distlib.metadata.Metadata.__init__:
  - 672
  - 673
  - 674
  - 675
  - 676
  - 677
  - 684
  - 685
  - 687
  - 688
  - 657
  - 663
  - 696
  - 665
  - 698
  - 668
  - 669
  pip._vendor.distlib.metadata.Metadata.__setattr__:
  - 777
  - 778
  - 779
  - 780
  - 782
  - 783
  - 786
  - 791
  - 792
  - 794
  - 795
  - 798
  - 800
  - 801
  - 803
  - 804
  - 805
  - 806
  - 807
  - 810
  pip._vendor.distlib.metadata.Metadata._from_legacy:
  - 935
  - 936
  - 938
  - 939
  - 944
  - 945
  - 950
  - 951
  pip._vendor.distlib.metadata.Metadata._to_legacy:
  - 994
  - 997
  - 998
  - 999
  - 1004
  - 1010
  - 1012
  - 1013
  - 1014
  - 1015
  - 1016
  - 1017
  pip._vendor.distlib.metadata.Metadata._to_legacy.process_entries:
  - 973
  - 974
  - 975
  - 976
  - 978
  - 979
  - 980
  - 983
  - 985
  - 986
  - 990
  pip._vendor.distlib.metadata.Metadata._validate_mapping:
  - 900
  - 903
  - 904
  - 905
  - 906
  - 907
  - 908
  - 910
  - 911
  pip._vendor.distlib.metadata.Metadata._validate_value:
  - 769
  - 770
  - 771
  - 767
  pip._vendor.distlib.metadata.Metadata.add_requirements:
  - 1057
  - 1059
  - 1061
  - 1062
  - 1048
  - 1049
  - 1051
  - 1053
  - 1054
  pip._vendor.distlib.metadata.Metadata.dependencies:
  - 897
  - 890
  - 894
  - 887
  pip._vendor.distlib.metadata.Metadata.dictionary:
  - 881
  - 882
  pip._vendor.distlib.metadata.Metadata.get_requirements:
  - 864
  - 865
  - 866
  - 867
  - 868
  - 838
  - 870
  - 871
  - 874
  - 875
  - 846
  - 850
  - 851
  - 852
  - 856
  - 860
  - 861
  - 863
  pip._vendor.distlib.metadata.Metadata.name_and_version:
  - 817
  pip._vendor.distlib.metadata.Metadata.provides:
  - 832
  - 821
  - 824
  - 826
  - 827
  pip._vendor.distlib.metadata.Metadata.todict:
  - 923
  - 924
  - 926
  pip._vendor.distlib.metadata.Metadata.validate:
  - 914
  - 915
  - 916
  - 917
  - 920
  pip._vendor.distlib.metadata.Metadata.write:
  - 1024
  - 1025
  - 1026
  - 1029
  - 1030
  - 1031
  - 1033
  - 1035
  - 1036
  - 1039
  - 1040
  - 1043
  - 1044
  - 1022
  pip._vendor.distlib.metadata.MetadataConflictError:
  - 33
  pip._vendor.distlib.metadata.MetadataInvalidError:
  - 41
  pip._vendor.distlib.metadata.MetadataMissingError:
  - 29
  pip._vendor.distlib.metadata.MetadataUnrecognizedVersionError:
  - 37
  pip._vendor.distlib.metadata._best_version:
  - 137
  - 141
  - 145
  - 146
  - 147
  - 148
  - 149
  - 150
  - 151
  - 152
  - 153
  - 154
  - 155
  - 156
  - 157
  - 158
  - 159
  - 160
  - 161
  - 162
  - 163
  - 164
  - 170
  - 172
  - 173
  - 177
  - 178
  - 179
  - 181
  - 182
  - 191
  - 193
  - 195
  - 197
  - 199
  pip._vendor.distlib.metadata._best_version._has_marker:
  - 139
  pip._vendor.distlib.metadata._get_name_and_version:
  - 240
  - 233
  - 236
  - 241
  pip._vendor.distlib.metadata._version2fieldlist:
  - 128
  - 131
  - 119
  - 121
  - 123
  - 125
  - 127
  pip._vendor.distlib.resources:
  - 338
  - 21
  - 287
  pip._vendor.distlib.resources.Resource:
  - 78
  pip._vendor.distlib.resources.Resource.as_stream:
  - 92
  - 86
  pip._vendor.distlib.resources.Resource.bytes:
  - 103
  pip._vendor.distlib.resources.Resource.file_path:
  - 97
  - 98
  - 99
  pip._vendor.distlib.resources.Resource.size:
  - 107
  pip._vendor.distlib.resources.ResourceCache.__init__:
  - 32
  - 29
  - 31
  pip._vendor.distlib.resources.ResourceCache.get:
  - 64
  - 66
  - 67
  - 46
  - 52
  - 53
  - 56
  - 57
  - 58
  - 59
  - 60
  - 63
  pip._vendor.distlib.resources.ResourceCache.is_stale:
  - 35
  pip._vendor.distlib.resources.ResourceContainer.resources:
  - 115
  pip._vendor.distlib.resources.ResourceFinder:
  - 185
  - 123
  - 119
  pip._vendor.distlib.resources.ResourceFinder.__init__:
  - 130
  - 131
  pip._vendor.distlib.resources.ResourceFinder._adjust_path:
  - 134
  pip._vendor.distlib.resources.ResourceFinder._find:
  - 149
  pip._vendor.distlib.resources.ResourceFinder._make_path:
  - 139
  - 143
  - 144
  - 145
  - 146
  pip._vendor.distlib.resources.ResourceFinder.find:
  - 160
  - 162
  - 155
  - 156
  - 159
  pip._vendor.distlib.resources.ResourceFinder.get_bytes:
  - 170
  - 171
  pip._vendor.distlib.resources.ResourceFinder.get_resources:
  - 180
  pip._vendor.distlib.resources.ResourceFinder.get_resources.allowed:
  - 179
  pip._vendor.distlib.resources.ResourceFinder.get_size:
  - 174
  pip._vendor.distlib.resources.ResourceFinder.get_stream:
  - 167
  pip._vendor.distlib.resources.ResourceFinder.is_container:
  - 183
  pip._vendor.distlib.resources.ResourceFinder.iterator:
  - 192
  - 193
  - 194
  - 196
  - 197
  - 200
  - 201
  - 202
  - 203
  - 205
  - 188
  - 189
  pip._vendor.distlib.resources.ZipResourceFinder:
  - 209
  pip._vendor.distlib.resources.ZipResourceFinder.__init__:
  - 221
  - 217
  - 213
  - 215
  pip._vendor.distlib.resources.ZipResourceFinder._find:
  - 228
  - 231
  - 233
  - 235
  - 238
  - 239
  - 241
  pip._vendor.distlib.resources.ZipResourceFinder._is_directory:
  - 280
  - 276
  - 278
  pip._vendor.distlib.resources.ZipResourceFinder.get_bytes:
  - 250
  pip._vendor.distlib.resources.ZipResourceFinder.get_cache_info:
  - 246
  pip._vendor.distlib.resources.ZipResourceFinder.get_resources:
  - 261
  - 263
  - 264
  - 265
  - 266
  - 267
  - 270
  pip._vendor.distlib.resources.ZipResourceFinder.get_stream:
  - 253
  pip._vendor.distlib.resources.finder:
  - 322
  - 323
  - 325
  - 326
  - 329
  - 330
  - 331
  - 333
  - 314
  - 319
  pip._vendor.distlib.resources.finder_for_path:
  - 352
  - 353
  - 355
  - 357
  - 342
  - 350
  - 351
  pip._vendor.distlib.resources.register_finder:
  - 307
  pip._vendor.distlib.scripts:
  - 42
  - 21
  - 23
  pip._vendor.distlib.scripts.ScriptMaker:
  - 400
  - 74
  - 110
  pip._vendor.distlib.scripts.ScriptMaker.__init__:
  - 96
  - 97
  pip._vendor.distlib.scripts.ScriptMaker._build_shebang:
  - 137
  - 147
  - 151
  - 152
  - 159
  pip._vendor.distlib.scripts.ScriptMaker._copy_script:
  - 387
  - 388
  - 389
  - 390
  - 343
  - 344
  - 345
  - 346
  - 353
  - 355
  - 359
  - 360
  - 361
  - 364
  - 365
  - 367
  - 369
  - 370
  - 371
  - 372
  - 373
  - 374
  - 375
  - 377
  - 379
  - 380
  - 381
  - 382
  - 383
  pip._vendor.distlib.scripts.ScriptMaker._fix_jython_executable:
  - 129
  - 131
  - 125
  pip._vendor.distlib.scripts.ScriptMaker._get_alternate_executable:
  - 104
  - 105
  - 106
  - 107
  pip._vendor.distlib.scripts.ScriptMaker._get_launcher:
  - 416
  - 406
  - 410
  - 414
  - 415
  pip._vendor.distlib.scripts.ScriptMaker._get_script_text:
  - 240
  - 242
  pip._vendor.distlib.scripts.ScriptMaker._get_shebang:
  - 169
  - 172
  - 173
  - 174
  - 175
  - 176
  - 177
  - 179
  - 182
  - 183
  - 184
  - 186
  - 187
  - 188
  - 189
  - 190
  - 191
  - 193
  - 194
  - 207
  - 208
  - 211
  - 213
  - 216
  - 223
  - 230
  - 232
  pip._vendor.distlib.scripts.ScriptMaker._is_shell:
  - 113
  - 121
  - 118
  - 119
  pip._vendor.distlib.scripts.ScriptMaker._make_script:
  - 327
  - 328
  - 329
  - 330
  - 331
  - 332
  - 333
  - 334
  - 335
  - 339
  pip._vendor.distlib.scripts.ScriptMaker._write_script:
  - 256
  - 259
  - 260
  - 262
  - 263
  - 264
  - 265
  - 266
  - 267
  - 268
  - 270
  - 272
  - 273
  - 275
  - 276
  - 277
  - 278
  - 279
  - 283
  - 286
  - 289
  - 290
  - 291
  - 292
  - 293
  - 296
  - 300
  - 303
  - 304
  - 306
  - 307
  - 308
  - 309
  - 253
  - 254
  pip._vendor.distlib.scripts.ScriptMaker.get_manifest:
  - 248
  pip._vendor.distlib.scripts.ScriptMaker.get_script_filenames:
  - 320
  - 314
  - 315
  - 316
  - 317
  - 318
  - 319
  pip._vendor.distlib.scripts.ScriptMaker.make:
  - 425
  - 436
  - 437
  - 438
  - 440
  pip._vendor.distlib.scripts.ScriptMaker.make_multiple:
  - 450
  - 451
  - 444
  pip._vendor.distlib.scripts.enquote_executable:
  - 64
  - 54
  - 59
  - 60
  - 61
  pip._vendor.distlib.util:
  - 868
  - 900
  - 1476
  - 871
  - 40
  - 46
  - 47
  - 48
  - 49
  - 50
  - 51
  - 52
  - 53
  - 1586
  - 1432
  - 1433
  - 1434
  - 734
  pip._vendor.distlib.util.CSVBase:
  - 1644
  - 1645
  - 1646
  pip._vendor.distlib.util.CSVBase.__exit__:
  - 1653
  pip._vendor.distlib.util.CSVReader.__init__:
  - 1666
  - 1667
  - 1659
  - 1661
  - 1663
  pip._vendor.distlib.util.CSVReader.next:
  - 1673
  - 1674
  - 1675
  - 1676
  - 1677
  pip._vendor.distlib.util.CSVWriter.__init__:
  - 1686
  - 1687
  pip._vendor.distlib.util.CSVWriter.writerow:
  - 1697
  - 1690
  - 1692
  - 1693
  - 1694
  - 1695
  pip._vendor.distlib.util.Cache:
  - 986
  pip._vendor.distlib.util.Cache.__init__:
  - 993
  - 1000
  - 1001
  - 1002
  - 1003
  - 1004
  pip._vendor.distlib.util.Cache.clear:
  - 1025
  - 1013
  - 1017
  - 1018
  - 1020
  - 1021
  - 1022
  - 1023
  pip._vendor.distlib.util.Cache.prefix_to_dir:
  - 1010
  - 1007
  pip._vendor.distlib.util.Configurator:
  - 1707
  pip._vendor.distlib.util.Configurator.__getitem__:
  - 1748
  - 1749
  pip._vendor.distlib.util.Configurator.__init__:
  - 1712
  - 1711
  pip._vendor.distlib.util.Configurator.configure_custom:
  - 1730
  - 1731
  - 1732
  - 1733
  - 1735
  - 1736
  - 1737
  - 1738
  - 1739
  - 1740
  - 1741
  - 1742
  - 1743
  pip._vendor.distlib.util.Configurator.configure_custom.convert:
  - 1717
  - 1718
  - 1719
  - 1720
  - 1721
  - 1724
  - 1725
  - 1727
  pip._vendor.distlib.util.Configurator.inc_convert:
  - 1753
  - 1754
  - 1755
  - 1756
  - 1757
  pip._vendor.distlib.util.EventMixin:
  - 1030
  pip._vendor.distlib.util.EventMixin.add:
  - 1038
  - 1048
  - 1049
  - 1052
  - 1053
  - 1055
  pip._vendor.distlib.util.EventMixin.get_subscribers:
  - 1074
  - 1070
  pip._vendor.distlib.util.EventMixin.publish:
  - 1088
  - 1090
  - 1092
  - 1094
  - 1095
  - 1077
  pip._vendor.distlib.util.EventMixin.remove:
  - 1065
  - 1058
  - 1067
  pip._vendor.distlib.util.ExportEntry.__eq__:
  - 723
  pip._vendor.distlib.util.ExportEntry.value:
  - 716
  pip._vendor.distlib.util.FileOperator:
  - 590
  pip._vendor.distlib.util.FileOperator.<lambda1>:
  - 590
  pip._vendor.distlib.util.FileOperator.__init__:
  - 502
  - 503
  pip._vendor.distlib.util.FileOperator._init_record:
  - 507
  - 508
  pip._vendor.distlib.util.FileOperator.byte_compile:
  - 610
  - 611
  - 612
  - 613
  - 614
  - 617
  - 618
  - 620
  - 624
  - 626
  pip._vendor.distlib.util.FileOperator.commit:
  - 669
  - 663
  pip._vendor.distlib.util.FileOperator.copy_file:
  - 544
  - 546
  - 548
  - 549
  - 535
  - 537
  - 538
  - 539
  - 541
  - 542
  pip._vendor.distlib.util.FileOperator.copy_stream:
  - 552
  - 553
  - 554
  - 555
  - 556
  - 557
  - 559
  - 561
  - 563
  - 564
  pip._vendor.distlib.util.FileOperator.ensure_dir:
  - 593
  - 594
  - 595
  - 596
  - 597
  - 598
  - 599
  - 600
  - 601
  - 602
  pip._vendor.distlib.util.FileOperator.ensure_removed:
  - 643
  - 644
  - 645
  - 646
  - 647
  - 648
  - 630
  - 631
  - 632
  - 633
  - 634
  - 635
  - 636
  - 637
  - 639
  pip._vendor.distlib.util.FileOperator.is_writable:
  - 656
  - 657
  - 653
  - 654
  pip._vendor.distlib.util.FileOperator.newer:
  - 529
  - 515
  - 532
  - 526
  pip._vendor.distlib.util.FileOperator.record_as_written:
  - 512
  - 511
  pip._vendor.distlib.util.FileOperator.rollback:
  - 673
  - 674
  - 675
  - 676
  - 680
  - 681
  - 682
  - 683
  - 685
  - 686
  - 687
  - 688
  pip._vendor.distlib.util.FileOperator.set_mode:
  - 579
  - 582
  - 583
  - 584
  - 586
  - 587
  - 588
  pip._vendor.distlib.util.FileOperator.write_binary_file:
  - 567
  - 568
  - 569
  - 570
  - 571
  - 572
  - 573
  pip._vendor.distlib.util.FileOperator.write_text_file:
  - 576
  pip._vendor.distlib.util.HTTPSConnection.connect:
  - 1504
  - 1505
  - 1508
  - 1509
  - 1511
  - 1512
  - 1514
  - 1515
  - 1490
  - 1492
  - 1494
  - 1496
  - 1497
  - 1499
  - 1500
  - 1502
  pip._vendor.distlib.util.HTTPSHandler.__init__:
  - 1521
  pip._vendor.distlib.util.HTTPSHandler._conn_maker:
  - 1536
  - 1526
  - 1535
  pip._vendor.distlib.util.HTTPSHandler.https_open:
  - 1545
  - 1543
  pip._vendor.distlib.util.Progress.ETA:
  - 1410
  - 1413
  - 1398
  - 1404
  - 1406
  pip._vendor.distlib.util.Progress.format_duration:
  - 1393
  - 1388
  pip._vendor.distlib.util.Progress.increment:
  - 1361
  pip._vendor.distlib.util.Progress.percentage:
  - 1378
  - 1380
  pip._vendor.distlib.util.Progress.speed:
  - 1417
  - 1421
  - 1422
  pip._vendor.distlib.util.Progress.start:
  - 1364
  pip._vendor.distlib.util.Progress.stop:
  - 1368
  - 1369
  pip._vendor.distlib.util.Progress.update:
  - 1353
  - 1354
  pip._vendor.distlib.util.PyPIRCFile.__init__:
  - 1833
  - 1834
  pip._vendor.distlib.util.PyPIRCFile.read:
  - 1841
  - 1844
  - 1845
  - 1846
  - 1847
  - 1849
  - 1851
  - 1852
  - 1854
  - 1856
  - 1859
  - 1861
  - 1864
  - 1868
  - 1869
  - 1876
  - 1879
  - 1882
  - 1885
  - 1886
  - 1890
  - 1891
  pip._vendor.distlib.util.PyPIRCFile.update:
  - 1900
  - 1902
  - 1903
  - 1904
  - 1905
  - 1906
  - 1907
  - 1908
  pip._vendor.distlib.util.SafeTransport.__init__:
  - 1592
  pip._vendor.distlib.util.SafeTransport.make_connection:
  - 1601
  - 1595
  - 1596
  - 1599
  pip._vendor.distlib.util.Sequencer.__init__:
  - 1108
  pip._vendor.distlib.util.Sequencer.add:
  - 1131
  - 1132
  pip._vendor.distlib.util.Sequencer.add_node:
  - 1111
  pip._vendor.distlib.util.Sequencer.dot:
  - 1231
  - 1233
  - 1234
  - 1235
  - 1236
  - 1237
  - 1238
  pip._vendor.distlib.util.Sequencer.get_steps:
  - 1152
  - 1156
  - 1157
  - 1159
  - 1160
  - 1166
  - 1167
  - 1168
  - 1170
  - 1171
  - 1172
  - 1173
  - 1174
  pip._vendor.distlib.util.Sequencer.remove:
  - 1142
  - 1143
  pip._vendor.distlib.util.Sequencer.remove_node:
  - 1120
  - 1122
  - 1123
  - 1125
  - 1126
  - 1114
  - 1115
  - 1116
  - 1117
  - 1118
  - 1119
  pip._vendor.distlib.util.Sequencer.strong_connections:
  - 1224
  - 1222
  - 1223
  pip._vendor.distlib.util.Sequencer.strong_connections.strongconnect:
  - 1216
  - 1218
  - 1220
  - 1192
  - 1199
  - 1200
  - 1202
  - 1203
  - 1204
  - 1207
  - 1210
  - 1214
  - 1215
  pip._vendor.distlib.util.ServerProxy.__init__:
  - 1609
  - 1612
  - 1614
  - 1615
  - 1616
  - 1620
  - 1622
  pip._vendor.distlib.util.SubprocessMixin:
  - 1762
  pip._vendor.distlib.util.SubprocessMixin.reader:
  - 1771
  - 1778
  - 1779
  - 1781
  - 1782
  - 1784
  - 1785
  - 1787
  - 1788
  - 1789
  pip._vendor.distlib.util.SubprocessMixin.run_command:
  - 1792
  - 1796
  - 1797
  - 1798
  - 1799
  - 1800
  - 1801
  - 1802
  - 1803
  - 1804
  - 1805
  - 1806
  pip._vendor.distlib.util.Transport.__init__:
  - 1576
  pip._vendor.distlib.util.Transport.make_connection:
  - 1579
  - 1580
  - 1582
  pip._vendor.distlib.util._csv_open:
  - 1632
  - 1639
  pip._vendor.distlib.util._get_external_data:
  - 960
  - 963
  - 965
  - 954
  - 955
  - 956
  - 957
  - 958
  pip._vendor.distlib.util._iglob:
  - 1472
  - 1473
  - 1449
  - 1450
  - 1451
  - 1453
  - 1454
  - 1455
  - 1457
  - 1458
  - 1459
  - 1461
  - 1462
  - 1464
  - 1468
  - 1469
  - 1470
  - 1471
  pip._vendor.distlib.util._load_pypirc:
  - 1912
  - 1915
  pip._vendor.distlib.util._store_pypirc:
  - 1919
  pip._vendor.distlib.util.cached_property.__get__:
  - 465
  - 466
  - 463
  pip._vendor.distlib.util.chdir:
  - 440
  - 442
  - 437
  - 439
  pip._vendor.distlib.util.convert_path:
  - 481
  - 483
  - 485
  - 487
  - 490
  - 492
  - 493
  - 495
  - 472
  pip._vendor.distlib.util.ensure_slash:
  - 831
  pip._vendor.distlib.util.extract_by_key:
  - 352
  - 354
  - 355
  - 351
  pip._vendor.distlib.util.get_cache_base:
  - 802
  - 773
  - 805
  - 807
  - 808
  - 809
  - 810
  - 787
  - 789
  - 790
  - 793
  - 796
  - 797
  - 798
  - 799
  pip._vendor.distlib.util.get_executable:
  - 329
  - 330
  pip._vendor.distlib.util.get_export_entry:
  - 768
  - 742
  - 743
  - 745
  - 749
  - 752
  - 753
  - 756
  - 759
  - 761
  - 762
  - 767
  pip._vendor.distlib.util.get_extras:
  - 928
  - 929
  - 930
  - 932
  - 933
  - 934
  - 935
  - 937
  - 938
  - 939
  - 921
  - 922
  - 923
  - 924
  - 925
  - 927
  pip._vendor.distlib.util.get_host_platform:
  - 1929
  - 1948
  - 1949
  - 1951
  - 1953
  - 1958
  - 1961
  - 1968
  - 1972
  - 1973
  - 1975
  - 1981
  - 1982
  - 1984
  - 1991
  - 1993
  - 1994
  - 1996
  - 1997
  - 1998
  - 1999
  - 2000
  - 2006
  - 2007
  pip._vendor.distlib.util.get_package_data:
  - 980
  - 981
  - 982
  pip._vendor.distlib.util.get_platform:
  - 2020
  - 2021
  - 2022
  - 2023
  - 2024
  pip._vendor.distlib.util.get_process_umask:
  - 852
  - 853
  pip._vendor.distlib.util.get_project_data:
  - 973
  - 974
  - 975
  pip._vendor.distlib.util.get_resources_dests:
  - 291
  - 292
  - 293
  - 294
  - 295
  - 296
  - 297
  - 298
  - 300
  - 301
  - 281
  pip._vendor.distlib.util.get_resources_dests.get_rel_path:
  - 288
  - 285
  - 286
  - 287
  pip._vendor.distlib.util.iglob:
  - 1442
  - 1445
  - 1438
  - 1439
  pip._vendor.distlib.util.in_venv:
  - 312
  - 307
  pip._vendor.distlib.util.is_string_sequence:
  - 860
  - 861
  pip._vendor.distlib.util.normalize_name:
  - 1811
  - 1813
  pip._vendor.distlib.util.parse_credentials:
  - 838
  - 839
  - 840
  - 843
  - 844
  - 845
  - 846
  - 847
  pip._vendor.distlib.util.parse_marker:
  - 144
  - 57
  pip._vendor.distlib.util.parse_marker.marker:
  - 134
  - 136
  - 137
  - 139
  - 140
  pip._vendor.distlib.util.parse_marker.marker_and:
  - 128
  - 129
  - 123
  - 125
  - 126
  pip._vendor.distlib.util.parse_marker.marker_expr:
  - 104
  - 105
  - 106
  - 108
  - 110
  - 112
  - 113
  - 115
  - 116
  - 117
  pip._vendor.distlib.util.parse_marker.marker_var:
  - 96
  - 98
  - 99
  - 68
  - 69
  - 70
  - 71
  - 72
  - 100
  - 76
  - 78
  - 83
  - 85
  - 86
  - 89
  - 90
  - 93
  - 94
  pip._vendor.distlib.util.parse_name_and_version:
  - 905
  - 913
  - 914
  - 916
  - 917
  pip._vendor.distlib.util.parse_requirement:
  - 257
  - 258
  - 260
  - 262
  - 264
  - 267
  - 270
  - 272
  - 148
  - 152
  - 153
  - 155
  - 156
  - 158
  - 159
  - 161
  - 162
  - 163
  - 166
  - 169
  - 170
  - 172
  - 173
  - 174
  - 176
  - 178
  - 179
  - 181
  - 182
  - 184
  - 185
  - 186
  - 188
  - 189
  - 194
  - 196
  - 233
  - 234
  - 236
  - 237
  - 241
  - 245
  - 246
  - 248
  - 249
  - 251
  - 252
  - 253
  pip._vendor.distlib.util.parse_requirement.get_versions:
  - 225
  - 226
  - 229
  - 200
  - 204
  - 206
  - 209
  - 210
  - 211
  - 212
  - 215
  - 216
  - 217
  - 218
  - 220
  - 223
  pip._vendor.distlib.util.path_to_cache_dir:
  - 814
  - 823
  - 824
  - 825
  - 826
  pip._vendor.distlib.util.proceed:
  - 337
  - 339
  - 341
  - 342
  - 343
  - 345
  pip._vendor.distlib.util.read_exports:
  - 386
  - 388
  - 390
  - 391
  - 392
  - 361
  - 393
  - 363
  - 396
  - 365
  - 366
  - 398
  - 368
  - 400
  - 370
  - 371
  - 373
  - 378
  pip._vendor.distlib.util.read_exports.read_stream:
  - 384
  - 381
  - 382
  pip._vendor.distlib.util.resolve:
  - 692
  - 695
  - 696
  - 699
  - 700
  - 701
  - 702
  pip._vendor.distlib.util.socket_timeout:
  - 449
  - 450
  - 452
  - 447
  pip._vendor.distlib.util.split_filename:
  - 875
  - 882
  - 883
  - 884
  - 885
  - 886
  - 887
  - 888
  - 889
  - 890
  - 892
  - 893
  - 894
  - 895
  pip._vendor.distlib.util.tempdir:
  - 432
  - 428
  - 430
  pip._vendor.distlib.util.unarchive:
  - 1280
  - 1281
  - 1283
  - 1284
  - 1285
  - 1286
  - 1287
  - 1288
  - 1293
  - 1294
  - 1295
  - 1310
  - 1313
  - 1314
  - 1258
  - 1259
  - 1261
  - 1262
  - 1264
  - 1267
  - 1270
  - 1276
  - 1277
  - 1278
  - 1279
  pip._vendor.distlib.util.unarchive.check_path:
  - 1252
  - 1253
  - 1254
  - 1255
  pip._vendor.distlib.util.unarchive.extraction_filter:
  - 1304
  - 1301
  pip._vendor.distlib.util.write_exports:
  - 416
  - 420
  - 421
  - 422
  - 423
  - 408
  - 410
  - 411
  - 412
  - 414
  - 415
  pip._vendor.distlib.util.zip_dir:
  - 1318
  - 1319
  - 1320
  - 1321
  - 1322
  - 1323
  - 1324
  - 1326
  - 1327
  pip._vendor.distlib.version:
  - 6
  - 391
  - 392
  - 393
  - 394
  - 395
  - 396
  - 397
  - 398
  - 399
  - 655
  - 401
  - 405
  - 22
  - 407
  - 406
  - 408
  - 409
  - 412
  - 179
  - 576
  - 738
  - 740
  - 741
  pip._vendor.distlib.version.LegacyMatcher:
  - 632
  - 635
  pip._vendor.distlib.version.LegacyMatcher._match_compatible:
  - 640
  - 641
  - 642
  - 645
  - 646
  - 647
  - 648
  - 638
  pip._vendor.distlib.version.LegacyVersion.is_prerelease:
  - 621
  - 622
  pip._vendor.distlib.version.LegacyVersion.parse:
  - 616
  pip._vendor.distlib.version.Matcher:
  - 84
  - 85
  - 86
  - 87
  - 88
  - 89
  - 91
  - 92
  pip._vendor.distlib.version.Matcher.__eq__:
  - 162
  pip._vendor.distlib.version.Matcher.__hash__:
  - 170
  pip._vendor.distlib.version.Matcher.__init__:
  - 101
  - 103
  - 104
  - 105
  - 108
  - 110
  - 112
  - 113
  - 114
  - 121
  - 125
  - 126
  - 127
  pip._vendor.distlib.version.Matcher.__ne__:
  - 166
  pip._vendor.distlib.version.Matcher._check_compatible:
  - 158
  pip._vendor.distlib.version.Matcher.exact_version:
  - 153
  pip._vendor.distlib.version.Matcher.match:
  - 130
  - 136
  - 137
  - 138
  - 139
  - 140
  - 141
  - 142
  - 146
  pip._vendor.distlib.version.Matcher.parse_requirement:
  - 98
  pip._vendor.distlib.version.NormalizedMatcher._adjust_local:
  - 328
  - 329
  - 327
  - 319
  pip._vendor.distlib.version.NormalizedMatcher._match_arbitrary:
  - 365
  pip._vendor.distlib.version.NormalizedMatcher._match_compatible:
  - 384
  - 386
  - 387
  - 376
  - 377
  - 379
  pip._vendor.distlib.version.NormalizedMatcher._match_eq:
  - 361
  - 357
  - 358
  pip._vendor.distlib.version.NormalizedMatcher._match_ge:
  - 353
  pip._vendor.distlib.version.NormalizedMatcher._match_gt:
  - 345
  - 346
  - 341
  - 342
  pip._vendor.distlib.version.NormalizedMatcher._match_le:
  - 349
  pip._vendor.distlib.version.NormalizedMatcher._match_lt:
  - 337
  - 338
  - 333
  - 334
  pip._vendor.distlib.version.NormalizedMatcher._match_ne:
  - 368
  - 369
  - 372
  pip._vendor.distlib.version.NormalizedVersion:
  - 257
  - 285
  pip._vendor.distlib.version.NormalizedVersion.is_prerelease:
  - 289
  pip._vendor.distlib.version.NormalizedVersion.parse:
  - 280
  - 281
  - 282
  - 275
  pip._vendor.distlib.version.SemanticVersion.parse:
  - 687
  pip._vendor.distlib.version.UnsupportedVersionError:
  - 26
  pip._vendor.distlib.version.Version.__eq__:
  - 45
  pip._vendor.distlib.version.Version.__ge__:
  - 62
  pip._vendor.distlib.version.Version.__gt__:
  - 56
  pip._vendor.distlib.version.Version.__hash__:
  - 66
  pip._vendor.distlib.version.Version.__init__:
  - 32
  - 33
  - 34
  - 35
  pip._vendor.distlib.version.Version.__le__:
  - 59
  pip._vendor.distlib.version.Version.__lt__:
  - 52
  pip._vendor.distlib.version.Version.__ne__:
  - 49
  pip._vendor.distlib.version.Version._check_compatible:
  - 41
  pip._vendor.distlib.version.VersionScheme.is_valid_constraint_list:
  - 721
  - 725
  - 727
  pip._vendor.distlib.version.VersionScheme.is_valid_matcher:
  - 714
  pip._vendor.distlib.version.VersionScheme.is_valid_version:
  - 706
  pip._vendor.distlib.version.VersionScheme.suggest:
  - 730
  - 733
  pip._vendor.distlib.version._legacy_key:
  - 609
  - 610
  - 611
  - 603
  - 604
  - 605
  - 607
  pip._vendor.distlib.version._legacy_key.get_parts:
  - 591
  - 592
  - 593
  - 594
  - 595
  - 598
  - 599
  pip._vendor.distlib.version._match_prefix:
  - 293
  - 294
  - 295
  - 297
  - 299
  pip._vendor.distlib.version._pep_440_key:
  - 185
  - 186
  - 187
  - 189
  - 190
  - 191
  - 194
  - 197
  - 202
  - 205
  - 208
  - 209
  - 212
  - 215
  - 216
  - 219
  - 222
  - 223
  - 227
  - 231
  - 232
  - 235
  - 236
  - 237
  - 239
  - 245
  - 247
  pip._vendor.distlib.version._semantic_key:
  - 675
  - 676
  - 678
  - 679
  - 681
  pip._vendor.distlib.version._semantic_key.make_tuple:
  - 672
  - 666
  - 669
  pip._vendor.distlib.version._suggest_normalized_version:
  - 512
  - 518
  - 523
  - 526
  - 529
  - 532
  - 535
  - 538
  - 544
  - 553
  - 560
  - 563
  - 566
  - 462
  - 479
  - 484
  - 487
  - 493
  - 496
  - 497
  - 502
  - 506
  - 509
  pip._vendor.distlib.version._suggest_semantic_version:
  - 416
  - 420
  - 421
  - 422
  - 423
  - 429
  - 430
  - 434
  - 435
  - 436
  - 437
  - 438
  - 439
  - 441
  - 443
  - 444
  - 445
  - 448
  - 449
  - 451
  - 456
  pip._vendor.distlib.version.get_scheme:
  - 749
  pip._vendor.distlib.version.is_semver:
  - 661
  pip._vendor.distlib.wheel:
  - 33
  - 37
  - 39
  - 41
  - 172
  - 46
  - 47
  - 52
  - 54
  - 55
  - 56
  - 1084
  - 77
  - 80
  - 91
  - 98
  - 99
  - 103
  - 104
  - 106
  - 108
  pip._vendor.distlib.wheel.<lambda2>:
  - 106
  pip._vendor.distlib.wheel.Mounter.add:
  - 143
  pip._vendor.distlib.wheel.Mounter.find_module:
  - 152
  pip._vendor.distlib.wheel.Mounter.load_module:
  - 162
  - 164
  - 166
  - 167
  - 159
  pip._vendor.distlib.wheel.Mounter.remove:
  - 146
  - 147
  - 148
  pip._vendor.distlib.wheel.Wheel:
  - 176
  pip._vendor.distlib.wheel.Wheel.__init__:
  - 193
  - 194
  - 199
  - 200
  - 201
  - 204
  - 208
  - 209
  - 210
  - 213
  - 214
  - 184
  - 220
  - 221
  - 222
  - 216
  pip._vendor.distlib.wheel.Wheel._get_dylib_cache:
  - 747
  - 749
  - 751
  pip._vendor.distlib.wheel.Wheel._get_extensions:
  - 768
  - 769
  - 770
  - 771
  - 772
  - 773
  - 776
  - 777
  - 779
  - 780
  - 782
  - 783
  - 784
  - 755
  - 758
  - 759
  - 761
  - 763
  - 764
  - 765
  - 766
  - 767
  pip._vendor.distlib.wheel.Wheel.build:
  - 392
  - 393
  - 394
  - 405
  - 406
  - 409
  - 410
  - 411
  - 412
  - 413
  - 414
  - 415
  - 416
  - 417
  - 418
  - 419
  - 420
  - 421
  - 427
  - 428
  - 431
  - 432
  - 433
  - 434
  - 439
  - 441
  - 443
  - 444
  - 445
  - 448
  - 449
  - 450
  - 451
  - 452
  - 453
  - 460
  - 461
  - 462
  - 463
  - 464
  - 465
  - 466
  - 479
  - 483
  - 485
  - 486
  - 373
  - 377
  - 380
  - 381
  pip._vendor.distlib.wheel.Wheel.build.sorter:
  - 474
  - 475
  pip._vendor.distlib.wheel.Wheel.build_zip:
  - 368
  - 369
  - 370
  - 367
  pip._vendor.distlib.wheel.Wheel.exists:
  - 243
  - 244
  pip._vendor.distlib.wheel.Wheel.filename:
  - 226
  - 229
  - 233
  - 234
  - 235
  - 237
  pip._vendor.distlib.wheel.Wheel.get_hash:
  - 339
  - 332
  - 340
  - 335
  pip._vendor.distlib.wheel.Wheel.get_wheel_metadata:
  - 288
  - 289
  - 290
  - 291
  - 292
  pip._vendor.distlib.wheel.Wheel.info:
  - 296
  - 297
  - 298
  pip._vendor.distlib.wheel.Wheel.install:
  - 523
  - 524
  - 525
  - 528
  - 533
  - 534
  - 535
  - 537
  - 539
  - 540
  - 541
  - 542
  - 543
  - 544
  - 545
  - 546
  - 548
  - 554
  - 555
  - 556
  - 560
  - 561
  - 562
  - 566
  - 574
  - 581
  - 583
  - 586
  - 587
  - 590
  - 593
  - 594
  - 595
  - 596
  - 597
  - 598
  - 602
  - 603
  - 605
  - 606
  - 608
  - 609
  - 610
  - 613
  - 615
  - 616
  - 617
  - 618
  - 623
  - 625
  - 627
  - 629
  - 630
  - 631
  - 632
  - 633
  - 637
  - 639
  - 642
  - 646
  - 649
  - 650
  - 651
  - 652
  - 654
  - 656
  - 657
  - 658
  - 660
  - 661
  - 671
  - 673
  - 675
  - 676
  - 678
  - 680
  - 682
  - 684
  - 685
  - 688
  - 693
  - 694
  - 695
  - 696
  - 697
  - 699
  - 701
  - 702
  - 703
  - 704
  - 705
  - 706
  - 710
  - 712
  - 713
  - 715
  - 717
  - 719
  - 720
  - 722
  - 723
  - 726
  - 730
  - 731
  - 732
  - 735
  - 739
  - 740
  - 743
  - 506
  pip._vendor.distlib.wheel.Wheel.is_compatible:
  - 793
  - 790
  pip._vendor.distlib.wheel.Wheel.is_mountable:
  - 796
  pip._vendor.distlib.wheel.Wheel.metadata:
  - 258
  - 259
  - 260
  - 270
  - 272
  - 273
  - 274
  - 275
  - 276
  - 280
  - 255
  pip._vendor.distlib.wheel.Wheel.mount:
  - 802
  - 803
  - 806
  - 809
  - 810
  - 812
  - 813
  - 815
  - 816
  - 817
  - 818
  - 819
  - 820
  pip._vendor.distlib.wheel.Wheel.process_shebang:
  - 320
  - 321
  - 324
  - 302
  - 303
  - 304
  - 307
  - 311
  - 312
  - 313
  - 319
  pip._vendor.distlib.wheel.Wheel.skip_entry:
  - 490
  - 503
  pip._vendor.distlib.wheel.Wheel.tags:
  - 248
  - 249
  - 250
  - 251
  pip._vendor.distlib.wheel.Wheel.unmount:
  - 832
  - 823
  - 824
  - 825
  - 827
  - 828
  - 829
  - 830
  - 831
  pip._vendor.distlib.wheel.Wheel.update:
  - 940
  - 943
  - 944
  - 945
  - 947
  - 949
  - 952
  - 953
  - 955
  - 958
  - 959
  - 963
  - 965
  - 966
  - 968
  - 969
  - 971
  - 973
  - 974
  - 977
  - 979
  - 982
  - 983
  - 984
  - 986
  - 987
  - 988
  - 989
  - 891
  pip._vendor.distlib.wheel.Wheel.update.get_version:
  - 912
  - 914
  - 910
  pip._vendor.distlib.wheel.Wheel.update.update_version:
  - 928
  - 930
  - 933
  - 934
  - 936
  - 937
  - 938
  - 920
  - 921
  - 922
  - 925
  - 927
  pip._vendor.distlib.wheel.Wheel.verify:
  - 835
  - 841
  - 842
  - 844
  - 846
  - 847
  - 848
  - 849
  - 855
  - 856
  - 857
  - 861
  - 863
  - 866
  - 870
  - 871
  - 875
  - 878
  - 881
  - 882
  - 883
  - 884
  - 885
  - 886
  pip._vendor.distlib.wheel.Wheel.write_record:
  - 344
  - 345
  - 346
  - 347
  - 348
  pip._vendor.distlib.wheel.Wheel.write_records:
  - 354
  - 355
  - 356
  - 357
  - 358
  - 359
  - 361
  - 362
  - 363
  - 364
  pip._vendor.distlib.wheel._derive_abi:
  - 65
  - 66
  - 67
  - 69
  - 70
  - 71
  - 72
  - 73
  - 74
  - 75
  - 61
  - 62
  - 63
  pip._vendor.distlib.wheel._get_glibc_version:
  - 995
  - 997
  - 998
  - 999
  - 1000
  pip._vendor.distlib.wheel._get_suffixes:
  - 117
  - 118
  pip._vendor.distlib.wheel._load_dynamic:
  - 128
  - 129
  - 131
  - 125
  - 126
  pip._vendor.distlib.wheel.compatible_tags:
  - 1024
  - 1025
  - 1026
  - 1027
  - 1028
  - 1030
  - 1031
  - 1032
  - 1033
  - 1034
  - 1035
  - 1036
  - 1037
  - 1038
  - 1039
  - 1041
  - 1043
  - 1044
  - 1048
  - 1049
  - 1050
  - 1052
  - 1053
  - 1054
  - 1055
  - 1056
  - 1057
  - 1059
  - 1060
  - 1062
  - 1063
  - 1065
  - 1066
  - 1070
  - 1071
  - 1072
  - 1073
  - 1076
  - 1077
  - 1078
  - 1079
  - 1081
  - 1005
  - 1010
  - 1011
  - 1014
  - 1015
  - 1016
  - 1017
  - 1018
  - 1019
  - 1020
  pip._vendor.distlib.wheel.is_compatible:
  - 1090
  - 1091
  - 1093
  - 1095
  - 1096
  pip._vendor.distro.__main__:
  - 3
  - 4
  pip._vendor.distro.distro:
  - 75
  - 76
  - 1355
  - 16
  - 118
  - 1398
  - 123
  - 1399
  pip._vendor.distro.distro.LinuxDistribution:
  - 646
  pip._vendor.distro.distro.LinuxDistribution.__init__:
  - 672
  - 771
  - 781
  - 756
  - 758
  - 761
  - 764
  - 765
  pip._vendor.distro.distro.LinuxDistribution.__repr__:
  - 797
  - 799
  pip._vendor.distro.distro.LinuxDistribution._debian_version:
  - 1217
  - 1218
  - 1220
  pip._vendor.distro.distro.LinuxDistribution._distro_release_info:
  - 1250
  - 1284
  - 1285
  - 1286
  - 1256
  - 1288
  - 1289
  - 1259
  - 1260
  - 1291
  - 1265
  - 1298
  - 1299
  - 1270
  - 1302
  - 1272
  - 1277
  pip._vendor.distro.distro.LinuxDistribution._lsb_release_info:
  - 1157
  - 1161
  - 1165
  - 1166
  - 1151
  pip._vendor.distro.distro.LinuxDistribution._os_release_info:
  - 1088
  - 1096
  - 1094
  - 1095
  pip._vendor.distro.distro.LinuxDistribution._oslevel_info:
  - 1209
  - 1212
  - 1206
  pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_content:
  - 1345
  - 1346
  - 1347
  - 1348
  - 1349
  - 1350
  - 1351
  - 1331
  - 1341
  - 1343
  pip._vendor.distro.distro.LinuxDistribution._parse_distro_release_file:
  - 1322
  - 1308
  - 1319
  pip._vendor.distro.distro.LinuxDistribution._parse_lsb_release_content:
  - 1184
  - 1185
  - 1189
  - 1170
  - 1183
  pip._vendor.distro.distro.LinuxDistribution._parse_os_release_content:
  - 1126
  - 1127
  - 1128
  - 1130
  - 1132
  - 1101
  - 1133
  - 1134
  - 1137
  - 1143
  - 1114
  - 1117
  - 1118
  pip._vendor.distro.distro.LinuxDistribution._parse_uname_content:
  - 1226
  - 1229
  - 1230
  - 1231
  - 1236
  - 1238
  pip._vendor.distro.distro.LinuxDistribution._to_str:
  - 1245
  - 1246
  pip._vendor.distro.distro.LinuxDistribution._uname_info:
  - 1202
  - 1201
  - 1194
  - 1198
  pip._vendor.distro.distro.LinuxDistribution.build_number:
  - 960
  - 955
  pip._vendor.distro.distro.LinuxDistribution.codename:
  - 971
  - 982
  - 983
  pip._vendor.distro.distro.LinuxDistribution.distro_release_attr:
  - 1075
  - 1069
  pip._vendor.distro.distro.LinuxDistribution.distro_release_info:
  - 1026
  pip._vendor.distro.distro.LinuxDistribution.id:
  - 839
  - 840
  - 841
  - 843
  - 844
  - 845
  - 847
  - 848
  - 849
  - 851
  - 852
  - 853
  - 830
  pip._vendor.distro.distro.LinuxDistribution.id.normalize:
  - 836
  - 837
  pip._vendor.distro.distro.LinuxDistribution.info:
  - 994
  - 995
  - 996
  - 997
  - 998
  - 999
  - 1000
  - 1002
  - 1003
  - 988
  pip._vendor.distro.distro.LinuxDistribution.like:
  - 968
  - 963
  pip._vendor.distro.distro.LinuxDistribution.linux_distribution:
  - 816
  - 825
  - 824
  - 826
  pip._vendor.distro.distro.LinuxDistribution.lsb_release_attr:
  - 1066
  - 1060
  pip._vendor.distro.distro.LinuxDistribution.lsb_release_info:
  - 1016
  pip._vendor.distro.distro.LinuxDistribution.major_version:
  - 944
  - 939
  pip._vendor.distro.distro.LinuxDistribution.minor_version:
  - 952
  - 947
  pip._vendor.distro.distro.LinuxDistribution.name:
  - 864
  - 865
  - 866
  - 867
  - 869
  - 870
  - 873
  - 874
  - 875
  - 876
  - 858
  pip._vendor.distro.distro.LinuxDistribution.os_release_attr:
  - 1057
  - 1051
  pip._vendor.distro.distro.LinuxDistribution.os_release_info:
  - 1007
  pip._vendor.distro.distro.LinuxDistribution.oslevel_info:
  - 1045
  pip._vendor.distro.distro.LinuxDistribution.uname_attr:
  - 1084
  - 1078
  pip._vendor.distro.distro.LinuxDistribution.uname_info:
  - 1036
  pip._vendor.distro.distro.LinuxDistribution.version:
  - 896
  - 898
  - 900
  - 901
  - 903
  - 905
  - 910
  - 911
  - 914
  - 915
  - 918
  - 919
  - 881
  - 887
  - 888
  - 889
  - 890
  - 893
  - 894
  pip._vendor.distro.distro.LinuxDistribution.version_parts:
  - 929
  - 930
  - 931
  - 932
  - 933
  - 934
  - 923
  pip._vendor.distro.distro.build_number:
  - 414
  - 423
  pip._vendor.distro.distro.cached_property:
  - 630
  pip._vendor.distro.distro.cached_property.__get__:
  - 641
  pip._vendor.distro.distro.codename:
  - 464
  - 444
  pip._vendor.distro.distro.distro_release_attr:
  - 605
  - 590
  pip._vendor.distro.distro.distro_release_info:
  - 539
  - 533
  pip._vendor.distro.distro.id:
  - 280
  - 201
  pip._vendor.distro.distro.info:
  - 468
  - 508
  pip._vendor.distro.distro.like:
  - 440
  - 427
  pip._vendor.distro.distro.linux_distribution:
  - 190
  - 197
  - 158
  pip._vendor.distro.distro.lsb_release_attr:
  - 570
  - 586
  pip._vendor.distro.distro.lsb_release_info:
  - 529
  - 522
  pip._vendor.distro.distro.main:
  - 1376
  - 1378
  - 1379
  - 1388
  - 1389
  - 1359
  - 1360
  - 1361
  - 1391
  - 1363
  - 1364
  - 1392
  - 1393
  - 1394
  - 1368
  - 1395
  pip._vendor.distro.distro.major_version:
  - 388
  - 397
  pip._vendor.distro.distro.minor_version:
  - 401
  - 410
  pip._vendor.distro.distro.name:
  - 284
  - 319
  pip._vendor.distro.distro.os_release_attr:
  - 566
  - 551
  pip._vendor.distro.distro.os_release_info:
  - 512
  - 518
  pip._vendor.distro.distro.uname_attr:
  - 609
  - 622
  pip._vendor.distro.distro.uname_info:
  - 547
  - 543
  pip._vendor.distro.distro.version:
  - 323
  - 367
  pip._vendor.distro.distro.version_parts:
  - 384
  - 371
  pip._vendor.idna.codec:
  - 6
  pip._vendor.idna.codec.Codec.decode:
  - 26
  - 20
  - 23
  pip._vendor.idna.codec.Codec.encode:
  - 17
  - 11
  - 14
  pip._vendor.idna.codec.IncrementalDecoder._buffer_decode:
  - 66
  - 69
  - 71
  - 72
  - 75
  - 78
  - 83
  - 84
  - 85
  - 87
  - 89
  - 90
  - 63
  pip._vendor.idna.codec.IncrementalEncoder._buffer_encode:
  - 33
  - 36
  - 38
  - 39
  - 42
  - 45
  - 50
  - 51
  - 52
  - 54
  - 57
  - 58
  - 30
  pip._vendor.idna.codec.getregentry:
  - 104
  - 106
  - 107
  pip._vendor.idna.compat.ToASCII:
  - 6
  pip._vendor.idna.compat.ToUnicode:
  - 9
  pip._vendor.idna.core:
  - 10
  pip._vendor.idna.core.IDNABidiError:
  - 18
  pip._vendor.idna.core.IDNAError:
  - 13
  pip._vendor.idna.core.InvalidCodepoint:
  - 23
  pip._vendor.idna.core.InvalidCodepointContext:
  - 28
  pip._vendor.idna.core._combining_class:
  - 33
  - 34
  - 35
  pip._vendor.idna.core._is_script:
  - 40
  pip._vendor.idna.core._punycode:
  - 43
  pip._vendor.idna.core._unot:
  - 46
  pip._vendor.idna.core.alabel:
  - 257
  - 258
  - 259
  - 265
  - 268
  - 269
  - 270
  - 273
  pip._vendor.idna.core.check_bidi:
  - 64
  - 65
  - 66
  - 69
  - 71
  - 75
  - 76
  - 78
  - 85
  - 86
  - 88
  - 90
  - 93
  - 95
  - 98
  - 99
  - 102
  - 106
  - 109
  - 111
  - 114
  pip._vendor.idna.core.check_hyphen_ok:
  - 129
  - 127
  pip._vendor.idna.core.check_initial_combiner:
  - 121
  pip._vendor.idna.core.check_label:
  - 225
  - 226
  - 227
  - 230
  - 231
  - 232
  - 234
  - 235
  - 236
  - 238
  - 240
  - 246
  - 247
  - 252
  pip._vendor.idna.core.check_nfc:
  - 135
  pip._vendor.idna.core.decode:
  - 384
  - 386
  - 387
  - 389
  - 392
  - 393
  - 394
  - 395
  - 398
  - 399
  - 400
  - 375
  - 376
  - 379
  - 380
  - 383
  pip._vendor.idna.core.encode:
  - 353
  - 354
  - 356
  - 359
  - 360
  - 361
  - 362
  - 365
  - 366
  - 367
  - 368
  - 341
  - 343
  - 346
  - 347
  - 350
  - 351
  pip._vendor.idna.core.ulabel:
  - 289
  - 290
  - 291
  - 292
  - 294
  - 297
  - 298
  - 301
  - 304
  - 280
  - 282
  - 284
  pip._vendor.idna.core.uts46_remap:
  - 320
  - 322
  - 326
  - 330
  - 337
  - 309
  - 313
  - 314
  - 317
  pip._vendor.idna.core.valid_contextj:
  - 161
  - 162
  - 163
  - 165
  - 170
  - 140
  - 172
  - 142
  - 173
  - 144
  - 145
  - 149
  - 150
  - 151
  - 153
  - 157
  pip._vendor.idna.core.valid_contexto:
  - 183
  - 185
  - 186
  - 187
  - 191
  - 192
  - 193
  - 196
  - 197
  - 198
  - 201
  - 202
  - 203
  - 205
  - 209
  - 210
  - 211
  - 215
  - 216
  - 217
  pip._vendor.idna.core.valid_label_length:
  - 50
  pip._vendor.idna.core.valid_string_length:
  - 56
  pip._vendor.idna.intranges:
  - 1
  pip._vendor.idna.intranges.intranges_contain:
  - 40
  - 41
  - 42
  - 45
  - 46
  - 47
  - 50
  - 51
  - 52
  pip._vendor.idna.intranges.intranges_from_list:
  - 12
  - 19
  - 22
  - 23
  - 24
  - 27
  - 30
  pip._vendor.idna.uts46data:
  - 7
  - 8517
  - 8518
  - 8519
  - 8520
  - 8521
  - 8522
  - 8523
  - 8524
  - 8525
  - 8526
  - 8527
  - 8528
  - 8529
  - 8530
  - 8531
  - 8532
  - 8533
  - 8534
  - 8535
  - 8536
  - 8537
  - 8538
  - 8539
  - 8540
  - 8541
  - 8542
  - 8543
  - 8544
  - 8545
  - 8546
  - 8547
  - 8548
  - 8549
  - 8550
  - 8551
  - 8552
  - 8553
  - 8554
  - 8555
  - 8556
  - 8557
  - 8558
  - 8559
  - 8560
  - 8561
  - 8562
  - 8563
  - 8564
  - 8565
  - 8566
  - 8567
  - 8568
  - 8569
  - 8570
  - 8571
  - 8572
  - 8573
  - 8574
  - 8575
  - 8576
  - 8577
  - 8578
  - 8579
  - 8580
  - 8581
  - 8582
  - 8583
  - 8584
  - 8585
  - 8586
  - 8587
  - 8588
  - 8589
  - 8590
  - 8591
  - 8592
  - 8593
  - 8594
  - 8595
  - 8596
  - 8597
  - 8598
  - 8599
  pip._vendor.msgpack:
  - 13
  pip._vendor.msgpack.exceptions.ExtraData:
  - 31
  pip._vendor.msgpack.exceptions.FormatError:
  - 19
  pip._vendor.msgpack.exceptions.StackError:
  - 23
  pip._vendor.msgpack.exceptions.UnpackException:
  - 2
  pip._vendor.msgpack.ext:
  - 10
  - 18
  pip._vendor.msgpack.ext.ExtType:
  - 22
  pip._vendor.msgpack.ext.ExtType.__new__:
  - 25
  - 27
  - 29
  - 31
  pip._vendor.msgpack.ext.Timestamp:
  - 35
  pip._vendor.msgpack.ext.Timestamp.__eq__:
  - 76
  - 77
  pip._vendor.msgpack.ext.Timestamp.__hash__:
  - 88
  pip._vendor.msgpack.ext.Timestamp.__init__:
  - 62
  - 58
  - 60
  - 46
  pip._vendor.msgpack.ext.Timestamp.__ne__:
  - 84
  - 85
  pip._vendor.msgpack.ext.Timestamp.__repr__:
  - 70
  - 71
  pip._vendor.msgpack.ext.Timestamp.from_bytes:
  - 102
  - 103
  - 105
  - 106
  - 109
  - 110
  - 115
  - 92
  pip._vendor.msgpack.ext.Timestamp.from_datetime:
  - 193
  - 187
  pip._vendor.msgpack.ext.Timestamp.from_unix:
  - 145
  - 146
  - 147
  - 140
  pip._vendor.msgpack.ext.Timestamp.from_unix_nano:
  - 164
  - 159
  pip._vendor.msgpack.ext.Timestamp.to_bytes:
  - 129
  - 132
  - 135
  - 118
  - 125
  - 127
  pip._vendor.msgpack.ext.Timestamp.to_datetime:
  - 181
  - 182
  - 175
  pip._vendor.msgpack.ext.Timestamp.to_unix:
  - 150
  pip._vendor.msgpack.ext.Timestamp.to_unix_nano:
  - 167
  pip._vendor.msgpack.fallback:
  - 1
  - 8
  - 40
  - 73
  - 137
  - 23
  pip._vendor.msgpack.fallback.Packer:
  - 663
  pip._vendor.msgpack.fallback.Packer.__init__:
  - 745
  - 746
  - 748
  - 750
  - 751
  pip._vendor.msgpack.fallback.Packer._pack:
  - 763
  - 769
  - 771
  - 772
  - 773
  - 774
  - 775
  - 776
  - 777
  - 778
  - 779
  - 780
  - 781
  - 782
  - 783
  - 784
  - 785
  - 786
  - 787
  - 788
  - 789
  - 790
  - 791
  - 792
  - 793
  - 794
  - 795
  - 796
  - 797
  - 798
  - 799
  - 803
  - 804
  - 805
  - 807
  - 808
  - 809
  - 810
  - 811
  - 812
  - 814
  - 815
  - 816
  - 818
  - 820
  - 821
  - 822
  - 823
  - 824
  - 825
  - 826
  - 827
  - 829
  - 833
  - 834
  - 835
  - 836
  - 837
  - 838
  - 839
  - 840
  - 841
  - 842
  - 843
  - 844
  - 845
  - 846
  - 847
  - 848
  - 849
  - 851
  - 852
  - 853
  - 855
  - 856
  - 857
  - 858
  - 859
  - 861
  - 862
  - 863
  - 866
  - 867
  - 871
  - 872
  - 876
  pip._vendor.msgpack.fallback.Packer._pack_array_header:
  - 947
  - 948
  - 949
  - 950
  - 951
  - 952
  pip._vendor.msgpack.fallback.Packer._pack_bin_header:
  - 983
  - 984
  - 985
  - 986
  - 987
  - 988
  - 989
  - 990
  pip._vendor.msgpack.fallback.Packer._pack_map_header:
  - 960
  - 961
  - 956
  - 957
  - 958
  - 959
  pip._vendor.msgpack.fallback.Packer._pack_map_pairs:
  - 968
  - 965
  - 966
  - 967
  pip._vendor.msgpack.fallback.Packer._pack_raw_header:
  - 971
  - 972
  - 973
  - 974
  - 975
  - 976
  - 977
  - 978
  pip._vendor.msgpack.fallback.Packer.bytes:
  - 995
  - 996
  pip._vendor.msgpack.fallback.Packer.getbuffer:
  - 1008
  - 1010
  - 1006
  - 1007
  pip._vendor.msgpack.fallback.Packer.pack:
  - 883
  - 885
  - 887
  - 888
  - 889
  pip._vendor.msgpack.fallback.Packer.pack_array_header:
  - 900
  - 902
  - 903
  - 904
  - 905
  pip._vendor.msgpack.fallback.Packer.pack_ext_type:
  - 918
  - 920
  - 922
  - 924
  - 925
  - 927
  - 928
  - 929
  - 930
  - 931
  - 932
  - 933
  - 934
  - 935
  - 936
  - 937
  - 938
  - 939
  - 940
  - 942
  - 943
  - 944
  pip._vendor.msgpack.fallback.Packer.pack_map_header:
  - 909
  - 911
  - 912
  - 913
  - 914
  pip._vendor.msgpack.fallback.Packer.pack_map_pairs:
  - 896
  - 893
  - 894
  - 895
  pip._vendor.msgpack.fallback.Packer.reset:
  - 1003
  - 999
  pip._vendor.msgpack.fallback.StringIO.__init__:
  - 57
  - 53
  - 54
  - 55
  pip._vendor.msgpack.fallback.StringIO.getvalue:
  - 67
  pip._vendor.msgpack.fallback.StringIO.write:
  - 64
  - 60
  - 61
  - 62
  - 63
  pip._vendor.msgpack.fallback.Unpacker:
  - 180
  pip._vendor.msgpack.fallback.Unpacker.__init__:
  - 295
  - 298
  - 301
  - 307
  - 320
  - 322
  - 324
  - 326
  - 328
  - 330
  - 334
  - 336
  - 337
  - 338
  - 341
  - 355
  - 357
  - 359
  - 361
  - 365
  pip._vendor.msgpack.fallback.Unpacker.__next__:
  - 625
  - 626
  - 629
  pip._vendor.msgpack.fallback.Unpacker._consume:
  - 384
  pip._vendor.msgpack.fallback.Unpacker._got_extradata:
  - 389
  pip._vendor.msgpack.fallback.Unpacker._read:
  - 401
  - 404
  pip._vendor.msgpack.fallback.Unpacker._read_header:
  - 512
  - 514
  - 515
  - 516
  - 520
  - 522
  - 523
  - 525
  - 526
  - 528
  - 532
  - 534
  - 535
  - 537
  - 445
  - 448
  - 450
  - 452
  - 455
  - 457
  - 458
  - 461
  - 465
  - 468
  - 470
  - 472
  - 474
  - 476
  - 478
  - 479
  - 480
  - 484
  - 486
  - 487
  - 489
  - 490
  - 492
  - 494
  - 495
  - 497
  - 498
  - 499
  - 503
  - 505
  - 509
  - 510
  pip._vendor.msgpack.fallback.Unpacker._reserve:
  - 419
  - 426
  - 429
  - 430
  - 431
  - 433
  - 435
  - 437
  - 408
  - 411
  - 414
  pip._vendor.msgpack.fallback.Unpacker._unpack:
  - 544
  - 546
  - 547
  - 550
  - 551
  - 555
  - 556
  - 557
  - 559
  - 561
  - 562
  - 563
  - 564
  - 565
  - 567
  - 568
  - 569
  - 570
  - 572
  - 573
  - 575
  - 576
  - 577
  - 578
  - 582
  - 583
  - 584
  - 588
  - 589
  - 590
  - 591
  - 592
  - 594
  - 596
  - 597
  - 598
  - 600
  - 602
  - 603
  - 604
  - 605
  - 606
  - 607
  - 608
  - 609
  - 610
  - 611
  - 612
  - 616
  pip._vendor.msgpack.fallback.Unpacker.feed:
  - 370
  - 371
  - 381
  - 375
  pip._vendor.msgpack.fallback.Unpacker.read_array_header:
  - 649
  - 650
  pip._vendor.msgpack.fallback.Unpacker.read_bytes:
  - 395
  - 396
  pip._vendor.msgpack.fallback.Unpacker.read_map_header:
  - 654
  - 655
  pip._vendor.msgpack.fallback.Unpacker.skip:
  - 637
  - 638
  pip._vendor.msgpack.fallback.Unpacker.unpack:
  - 642
  - 645
  pip._vendor.msgpack.fallback._check_type_strict:
  - 97
  - 98
  - 100
  pip._vendor.msgpack.fallback._get_data_from_buffer:
  - 104
  - 105
  pip._vendor.msgpack.fallback._is_recursionerror:
  - 29
  - 30
  - 31
  pip._vendor.msgpack.fallback._unpack_from:
  - 140
  - 141
  pip._vendor.msgpack.fallback.dict_iteritems:
  - 12
  - 20
  pip._vendor.msgpack.fallback.unpackb:
  - 129
  - 132
  - 111
  - 122
  - 123
  - 125
  pip._vendor.msgpack.pack:
  - 28
  - 29
  - 23
  pip._vendor.msgpack.packb:
  - 33
  - 38
  pip._vendor.msgpack.unpack:
  - 48
  - 49
  - 42
  pip._vendor.packaging._manylinux:
  - 222
  - 127
  pip._vendor.packaging._manylinux._ELFFileHeader._InvalidELFFileHeader:
  - 18
  pip._vendor.packaging._manylinux._ELFFileHeader.__init__:
  - 44
  - 45
  - 47
  - 48
  - 50
  - 51
  - 53
  - 54
  - 55
  - 56
  - 61
  - 62
  - 63
  - 64
  - 65
  - 66
  - 67
  - 68
  - 69
  - 70
  - 71
  - 72
  - 73
  pip._vendor.packaging._manylinux._ELFFileHeader.__init__.unpack:
  - 38
  - 39
  pip._vendor.packaging._manylinux._get_elf_header:
  - 78
  - 79
  pip._vendor.packaging._manylinux._get_glibc_version:
  - 224
  - 225
  - 227
  pip._vendor.packaging._manylinux._glibc_version_string:
  - 200
  - 199
  pip._vendor.packaging._manylinux._glibc_version_string_confstr:
  - 136
  - 145
  - 147
  pip._vendor.packaging._manylinux._glibc_version_string_ctypes:
  - 192
  - 193
  - 177
  - 155
  - 190
  pip._vendor.packaging._manylinux._have_compatible_abi:
  - 115
  - 116
  - 117
  - 118
  pip._vendor.packaging._manylinux._is_compatible:
  - 232
  - 233
  - 240
  - 241
  - 242
  - 243
  - 245
  - 246
  - 247
  - 248
  - 249
  - 250
  - 251
  - 252
  - 253
  pip._vendor.packaging._manylinux._is_linux_armhf:
  - 89
  - 90
  pip._vendor.packaging._manylinux._is_linux_i686:
  - 105
  - 106
  pip._vendor.packaging._manylinux._parse_glibc_version:
  - 204
  - 211
  - 212
  - 213
  - 219
  pip._vendor.packaging._manylinux.platform_tags:
  - 292
  - 293
  - 294
  - 295
  - 296
  - 298
  - 268
  - 300
  - 301
  - 271
  - 272
  - 274
  - 275
  - 283
  - 285
  - 286
  - 287
  pip._vendor.packaging._musllinux:
  - 1
  - 129
  - 130
  - 132
  - 133
  - 134
  - 135
  - 136
  - 86
  - 126
  pip._vendor.packaging._musllinux._get_musl_version:
  - 98
  - 100
  - 103
  - 104
  - 106
  - 107
  - 88
  pip._vendor.packaging._musllinux._parse_ld_musl_from_elf:
  - 64
  - 33
  - 65
  - 35
  - 48
  - 52
  - 55
  - 23
  - 56
  - 58
  - 28
  - 61
  - 30
  - 63
  pip._vendor.packaging._musllinux._parse_musl_version:
  - 77
  - 78
  - 80
  - 81
  - 83
  pip._vendor.packaging._musllinux._read_unpacked:
  - 19
  pip._vendor.packaging._musllinux.platform_tags:
  - 111
  - 119
  - 120
  - 122
  - 123
  pip._vendor.packaging._structures:
  - 32
  - 61
  pip._vendor.packaging._structures.InfinityType.__eq__:
  - 20
  pip._vendor.packaging._structures.InfinityType.__hash__:
  - 11
  pip._vendor.packaging._structures.NegativeInfinityType.__eq__:
  - 49
  pip._vendor.packaging._structures.NegativeInfinityType.__hash__:
  - 40
  pip._vendor.packaging.markers:
  - 128
  - 129
  - 131
  - 132
  - 134
  - 135
  - 136
  - 178
  - 179
  - 208
  - 85
  - 86
  - 87
  - 88
  - 89
  - 90
  - 91
  - 92
  - 93
  - 94
  - 95
  - 96
  - 97
  - 98
  - 99
  - 100
  - 101
  - 102
  - 112
  - 115
  - 118
  - 119
  - 121
  - 122
  - 124
  pip._vendor.packaging.markers.<lambda1>:
  - 112
  pip._vendor.packaging.markers.<lambda2>:
  - 119
  pip._vendor.packaging.markers.<lambda3>:
  - 122
  pip._vendor.packaging.markers.<lambda4>:
  - 129
  pip._vendor.packaging.markers.InvalidMarker:
  - 37
  pip._vendor.packaging.markers.Marker.__init__:
  - 278
  pip._vendor.packaging.markers.Marker.__str__:
  - 286
  pip._vendor.packaging.markers.Marker.evaluate:
  - 292
  - 300
  - 301
  - 302
  - 304
  pip._vendor.packaging.markers.Node.__str__:
  - 60
  pip._vendor.packaging.markers.Op.serialize:
  - 81
  pip._vendor.packaging.markers.UndefinedComparison:
  - 43
  pip._vendor.packaging.markers.UndefinedEnvironmentName:
  - 49
  pip._vendor.packaging.markers.Variable.serialize:
  - 71
  pip._vendor.packaging.markers._coerce_parse_result:
  - 142
  - 143
  pip._vendor.packaging.markers._eval_op:
  - 195
  - 197
  - 198
  - 201
  - 191
  pip._vendor.packaging.markers._evaluate_markers:
  - 225
  - 226
  - 228
  - 229
  - 230
  - 233
  - 234
  - 238
  - 240
  - 243
  - 244
  - 246
  pip._vendor.packaging.markers._format_marker:
  - 160
  - 161
  - 163
  - 165
  - 166
  - 167
  - 168
  - 170
  - 171
  - 172
  - 152
  - 158
  - 159
  pip._vendor.packaging.markers._get_env:
  - 212
  - 214
  pip._vendor.packaging.markers.default_environment:
  - 258
  - 264
  - 265
  - 266
  - 267
  - 268
  - 269
  - 270
  pip._vendor.packaging.markers.format_full_version:
  - 250
  - 252
  - 253
  pip._vendor.packaging.requirements:
  - 33
  - 35
  - 36
  - 37
  - 38
  - 39
  - 40
  - 41
  - 43
  - 44
  - 45
  - 47
  - 50
  - 53
  - 54
  - 56
  - 57
  - 60
  - 61
  - 63
  - 64
  - 66
  - 67
  - 69
  - 70
  - 71
  - 76
  - 77
  - 79
  - 84
  pip._vendor.packaging.requirements.<lambda3>:
  - 71
  pip._vendor.packaging.requirements.InvalidRequirement:
  - 28
  pip._vendor.packaging.requirements.Requirement:
  - 88
  pip._vendor.packaging.requirements.Requirement.__init__:
  - 102
  - 109
  - 110
  - 111
  - 112
  - 114
  - 121
  - 122
  pip._vendor.packaging.requirements.Requirement.__str__:
  - 128
  - 129
  - 130
  - 132
  - 133
  - 135
  - 136
  - 137
  - 138
  - 140
  - 141
  - 143
  pip._vendor.packaging.specifiers:
  - 29
  - 582
  pip._vendor.packaging.specifiers.BaseSpecifier.__eq__:
  - 55
  pip._vendor.packaging.specifiers.BaseSpecifier.__hash__:
  - 49
  pip._vendor.packaging.specifiers.BaseSpecifier.__str__:
  - 42
  pip._vendor.packaging.specifiers.BaseSpecifier.contains:
  - 76
  pip._vendor.packaging.specifiers.BaseSpecifier.filter:
  - 84
  pip._vendor.packaging.specifiers.BaseSpecifier.prereleases:
  - 69
  - 62
  pip._vendor.packaging.specifiers.InvalidSpecifier:
  - 34
  pip._vendor.packaging.specifiers.LegacySpecifier:
  - 241
  pip._vendor.packaging.specifiers.LegacySpecifier.__init__:
  - 253
  - 255
  pip._vendor.packaging.specifiers.LegacySpecifier._coerce_version:
  - 262
  - 263
  pip._vendor.packaging.specifiers.LegacySpecifier._compare_equal:
  - 267
  pip._vendor.packaging.specifiers.LegacySpecifier._compare_greater_than:
  - 284
  pip._vendor.packaging.specifiers.LegacySpecifier._compare_greater_than_equal:
  - 278
  pip._vendor.packaging.specifiers.LegacySpecifier._compare_less_than:
  - 281
  pip._vendor.packaging.specifiers.LegacySpecifier._compare_less_than_equal:
  - 273
  pip._vendor.packaging.specifiers.LegacySpecifier._compare_not_equal:
  - 270
  pip._vendor.packaging.specifiers.Specifier:
  - 394
  pip._vendor.packaging.specifiers.Specifier._compare_arbitrary:
  - 550
  pip._vendor.packaging.specifiers.Specifier._compare_compatible:
  - 425
  - 418
  - 419
  pip._vendor.packaging.specifiers.Specifier._compare_equal:
  - 448
  - 452
  - 459
  - 464
  - 433
  - 465
  - 435
  - 438
  - 443
  pip._vendor.packaging.specifiers.Specifier._compare_greater_than:
  - 522
  - 527
  - 534
  - 535
  - 540
  - 541
  pip._vendor.packaging.specifiers.Specifier._compare_greater_than_equal:
  - 489
  pip._vendor.packaging.specifiers.Specifier._compare_less_than:
  - 496
  - 509
  - 508
  - 501
  pip._vendor.packaging.specifiers.Specifier._compare_less_than_equal:
  - 479
  pip._vendor.packaging.specifiers.Specifier._compare_not_equal:
  - 471
  pip._vendor.packaging.specifiers.Specifier.prereleases:
  - 564
  - 557
  - 572
  - 567
  pip._vendor.packaging.specifiers.SpecifierSet.__and__:
  - 673
  - 661
  - 662
  - 663
  - 666
  - 667
  - 669
  - 671
  pip._vendor.packaging.specifiers.SpecifierSet.__contains__:
  - 720
  pip._vendor.packaging.specifiers.SpecifierSet.__eq__:
  - 684
  - 685
  - 686
  pip._vendor.packaging.specifiers.SpecifierSet.__hash__:
  - 658
  pip._vendor.packaging.specifiers.SpecifierSet.__init__:
  - 627
  - 631
  - 632
  - 634
  - 636
  - 639
  pip._vendor.packaging.specifiers.SpecifierSet.__iter__:
  - 695
  pip._vendor.packaging.specifiers.SpecifierSet.__len__:
  - 692
  pip._vendor.packaging.specifiers.SpecifierSet.__repr__:
  - 652
  pip._vendor.packaging.specifiers.SpecifierSet.__str__:
  - 655
  pip._vendor.packaging.specifiers.SpecifierSet.contains:
  - 742
  - 749
  - 727
  - 728
  - 733
  pip._vendor.packaging.specifiers.SpecifierSet.filter:
  - 778
  - 780
  - 781
  - 786
  - 758
  - 791
  - 792
  - 793
  - 795
  - 764
  - 765
  - 766
  - 799
  pip._vendor.packaging.specifiers.SpecifierSet.prereleases:
  - 713
  - 708
  - 702
  pip._vendor.packaging.specifiers._IndividualSpecifier.__contains__:
  - 166
  pip._vendor.packaging.specifiers._IndividualSpecifier.__eq__:
  - 128
  - 130
  - 133
  pip._vendor.packaging.specifiers._IndividualSpecifier.__hash__:
  - 125
  pip._vendor.packaging.specifiers._IndividualSpecifier.__init__:
  - 96
  - 97
  - 101
  - 102
  pip._vendor.packaging.specifiers._IndividualSpecifier.__repr__:
  - 115
  pip._vendor.packaging.specifiers._IndividualSpecifier.__str__:
  - 118
  pip._vendor.packaging.specifiers._IndividualSpecifier._canonical_spec:
  - 122
  pip._vendor.packaging.specifiers._IndividualSpecifier._coerce_version:
  - 145
  - 146
  pip._vendor.packaging.specifiers._IndividualSpecifier._get_operator:
  - 139
  pip._vendor.packaging.specifiers._IndividualSpecifier.contains:
  - 173
  - 178
  - 183
  - 188
  - 189
  pip._vendor.packaging.specifiers._IndividualSpecifier.filter:
  - 224
  - 202
  - 203
  - 205
  - 209
  - 212
  - 217
  - 222
  - 223
  pip._vendor.packaging.specifiers._is_not_suffix:
  - 597
  - 598
  pip._vendor.packaging.specifiers._pad_version:
  - 610
  - 611
  - 614
  - 615
  - 617
  - 606
  - 607
  pip._vendor.packaging.specifiers._pad_version.<lambda1>:
  - 606
  pip._vendor.packaging.specifiers._pad_version.<lambda2>:
  - 607
  pip._vendor.packaging.specifiers._require_version_compare:
  - 290
  pip._vendor.packaging.specifiers._require_version_compare.wrapped:
  - 292
  - 294
  pip._vendor.packaging.specifiers._version_split:
  - 587
  - 588
  - 589
  - 590
  - 592
  pip._vendor.packaging.tags:
  - 25
  pip._vendor.packaging.tags.Tag:
  - 43
  pip._vendor.packaging.tags.Tag.__eq__:
  - 76
  pip._vendor.packaging.tags.Tag.__init__:
  - 61
  - 53
  - 54
  - 55
  pip._vendor.packaging.tags.Tag.__repr__:
  - 93
  pip._vendor.packaging.tags._abi3_applies:
  - 131
  - 126
  pip._vendor.packaging.tags._cpython_abis:
  - 160
  - 161
  - 163
  - 135
  - 137
  - 139
  - 140
  - 145
  - 147
  - 148
  - 149
  - 151
  - 152
  - 153
  - 157
  pip._vendor.packaging.tags._generic_abi:
  - 228
  - 229
  - 230
  pip._vendor.packaging.tags._generic_platforms:
  - 431
  pip._vendor.packaging.tags._get_config_var:
  - 113
  - 114
  - 115
  pip._vendor.packaging.tags._linux_platforms:
  - 418
  - 419
  - 420
  - 422
  - 424
  - 425
  - 426
  - 427
  pip._vendor.packaging.tags._mac_arch:
  - 304
  - 307
  pip._vendor.packaging.tags._mac_binary_formats:
  - 320
  - 321
  - 323
  - 325
  - 327
  - 329
  - 331
  - 332
  - 334
  - 336
  - 337
  - 339
  - 340
  - 315
  - 316
  - 318
  pip._vendor.packaging.tags._normalize_string:
  - 122
  pip._vendor.packaging.tags._py_interpreter_range:
  - 264
  - 270
  - 271
  - 272
  - 273
  - 274
  - 275
  pip._vendor.packaging.tags._version_nodot:
  - 467
  pip._vendor.packaging.tags.compatible_tags:
  - 291
  - 293
  - 294
  - 295
  - 296
  - 297
  - 298
  - 299
  - 300
  - 283
  pip._vendor.packaging.tags.cpython_tags:
  - 177
  - 192
  - 195
  - 197
  - 198
  - 199
  - 202
  - 204
  - 206
  - 210
  - 211
  - 212
  - 213
  - 214
  - 215
  - 216
  - 218
  - 219
  - 220
  - 221
  - 222
  - 224
  pip._vendor.packaging.tags.generic_tags:
  - 256
  - 257
  - 258
  - 259
  - 260
  - 240
  - 248
  - 249
  - 250
  - 251
  - 252
  - 253
  - 254
  - 255
  pip._vendor.packaging.tags.interpreter_name:
  - 451
  - 447
  pip._vendor.packaging.tags.interpreter_version:
  - 455
  - 458
  - 459
  - 460
  - 462
  pip._vendor.packaging.tags.mac_platforms:
  - 384
  - 388
  - 396
  - 397
  - 399
  - 400
  - 401
  - 407
  - 410
  - 348
  - 356
  - 357
  - 358
  - 361
  - 362
  - 366
  - 369
  - 371
  - 372
  - 373
  - 377
  - 380
  - 382
  - 383
  pip._vendor.packaging.tags.parse_tag:
  - 97
  - 103
  - 104
  - 105
  - 106
  - 107
  - 108
  - 109
  pip._vendor.packaging.tags.platform_tags:
  - 435
  - 438
  - 439
  - 440
  - 441
  - 443
  pip._vendor.packaging.tags.sys_tags:
  - 480
  - 482
  - 484
  - 485
  - 487
  - 471
  - 478
  - 479
  pip._vendor.packaging.utils:
  - 27
  - 12
  - 29
  pip._vendor.packaging.utils.InvalidSdistFilename:
  - 22
  pip._vendor.packaging.utils.InvalidWheelFilename:
  - 16
  pip._vendor.packaging.utils.canonicalize_name:
  - 34
  - 35
  pip._vendor.packaging.utils.canonicalize_version:
  - 64
  - 67
  - 68
  - 39
  - 71
  - 72
  - 43
  - 75
  - 45
  - 76
  - 78
  - 55
  - 56
  - 60
  - 63
  pip._vendor.packaging.utils.parse_sdist_filename:
  - 130
  - 131
  - 134
  - 135
  - 118
  - 119
  - 120
  - 121
  pip._vendor.packaging.utils.parse_wheel_filename:
  - 96
  - 99
  - 101
  - 102
  - 103
  - 105
  - 106
  - 110
  - 113
  - 84
  - 90
  - 91
  pip._vendor.packaging.version:
  - 168
  - 37
  - 429
  pip._vendor.packaging.version.InvalidVersion:
  - 55
  pip._vendor.packaging.version.LegacyVersion.__init__:
  - 108
  - 109
  - 111
  pip._vendor.packaging.version.Version:
  - 259
  pip._vendor.packaging.version.Version.__init__:
  - 264
  - 265
  - 269
  - 270
  - 271
  - 272
  - 273
  - 274
  - 276
  - 277
  - 281
  pip._vendor.packaging.version.Version.__str__:
  - 297
  - 298
  - 301
  - 304
  - 305
  - 308
  - 309
  - 312
  - 313
  - 316
  - 317
  - 319
  pip._vendor.packaging.version.Version.base_version:
  - 360
  - 361
  - 364
  - 366
  pip._vendor.packaging.version.Version.local:
  - 346
  - 347
  pip._vendor.packaging.version.Version.major:
  - 382
  pip._vendor.packaging.version.Version.micro:
  - 390
  pip._vendor.packaging.version.Version.minor:
  - 386
  pip._vendor.packaging.version.Version.public:
  - 353
  pip._vendor.packaging.version._BaseVersion.__eq__:
  - 82
  pip._vendor.packaging.version._BaseVersion.__ge__:
  - 88
  pip._vendor.packaging.version._BaseVersion.__gt__:
  - 94
  pip._vendor.packaging.version._BaseVersion.__hash__:
  - 64
  pip._vendor.packaging.version._BaseVersion.__le__:
  - 76
  pip._vendor.packaging.version._BaseVersion.__lt__:
  - 70
  pip._vendor.packaging.version._BaseVersion.__ne__:
  - 100
  pip._vendor.packaging.version._cmpkey:
  - 483
  - 489
  - 458
  - 459
  - 466
  - 500
  - 501
  - 470
  - 476
  pip._vendor.packaging.version._legacy_cmpkey:
  - 207
  - 208
  - 210
  - 212
  - 216
  - 218
  - 220
  pip._vendor.packaging.version._parse_letter_version:
  - 418
  - 419
  - 424
  - 397
  - 400
  - 404
  - 409
  - 411
  - 413
  - 415
  pip._vendor.packaging.version._parse_local_version:
  - 433
  - 436
  - 437
  - 438
  - 439
  pip._vendor.packaging.version._parse_version_parts:
  - 193
  - 180
  - 181
  - 183
  - 186
  - 188
  - 190
  pip._vendor.packaging.version.parse:
  - 49
  - 43
  - 51
  pip._vendor.pkg_resources:
  - 1
  - 2060
  - 1677
  - 2467
  - 2468
  - 179
  - 53
  - 2231
  - 1976
  - 2232
  - 2234
  - 2107
  - 2236
  - 2237
  - 2114
  - 455
  - 456
  - 75
  - 1741
  - 88
  - 89
  - 90
  - 91
  - 92
  - 2397
  - 94
  - 2398
  - 2400
  - 1761
  - 2401
  - 3297
  - 2408
  - 118
  - 379
  - 126
  pip._vendor.pkg_resources.ContextualVersionConflict:
  - 332
  pip._vendor.pkg_resources.DefaultProvider:
  - 1712
  pip._vendor.pkg_resources.DefaultProvider._get:
  - 1728
  - 1727
  pip._vendor.pkg_resources.DefaultProvider._has:
  - 1715
  pip._vendor.pkg_resources.DefaultProvider._isdir:
  - 1718
  pip._vendor.pkg_resources.DefaultProvider._listdir:
  - 1721
  pip._vendor.pkg_resources.DefaultProvider._register:
  - 1736
  - 1737
  - 1738
  pip._vendor.pkg_resources.DefaultProvider.get_resource_stream:
  - 1724
  pip._vendor.pkg_resources.DistInfoDistribution:
  - 3088
  - 3094
  pip._vendor.pkg_resources.DistInfoDistribution._compute_dependencies:
  - 3115
  - 3120
  - 3121
  - 3128
  - 3129
  - 3131
  - 3132
  - 3133
  pip._vendor.pkg_resources.DistInfoDistribution._compute_dependencies.reqs_for_extra:
  - 3124
  - 3125
  - 3126
  pip._vendor.pkg_resources.DistInfoDistribution._dep_map:
  - 3111
  pip._vendor.pkg_resources.DistInfoDistribution._parsed_pkg_info:
  - 3098
  - 3102
  - 3103
  pip._vendor.pkg_resources.Distribution:
  - 2630
  pip._vendor.pkg_resources.Distribution.__dir__:
  - 2906
  - 2907
  - 2908
  pip._vendor.pkg_resources.Distribution.__eq__:
  - 2705
  pip._vendor.pkg_resources.Distribution.__getattr__:
  - 2900
  - 2901
  - 2903
  pip._vendor.pkg_resources.Distribution.__hash__:
  - 2690
  pip._vendor.pkg_resources.Distribution.__init__:
  - 2644
  - 2645
  - 2646
  pip._vendor.pkg_resources.Distribution.__repr__:
  - 2889
  - 2886
  pip._vendor.pkg_resources.Distribution.__str__:
  - 2893
  pip._vendor.pkg_resources.Distribution._build_dep_map:
  - 2816
  - 2817
  - 2815
  pip._vendor.pkg_resources.Distribution._dep_map:
  - 2789
  - 2782
  pip._vendor.pkg_resources.Distribution._filter_extras:
  - 2794
  - 2799
  - 2801
  - 2802
  - 2804
  - 2806
  - 2808
  - 2810
  pip._vendor.pkg_resources.Distribution._forgiving_parsed_version:
  - 2744
  - 2761
  - 2746
  - 2749
  pip._vendor.pkg_resources.Distribution._get_metadata:
  - 2852
  - 2853
  - 2854
  pip._vendor.pkg_resources.Distribution._get_metadata_path_for_display:
  - 2842
  - 2835
  pip._vendor.pkg_resources.Distribution._get_version:
  - 2857
  - 2858
  pip._vendor.pkg_resources.Distribution.activate:
  - 2863
  - 2864
  - 2866
  - 2867
  - 2868
  - 2869
  - 2870
  - 2871
  pip._vendor.pkg_resources.Distribution.as_requirement:
  - 2924
  - 2918
  - 2919
  pip._vendor.pkg_resources.Distribution.check_version_conflict:
  - 3019
  - 3023
  - 3024
  - 3025
  - 3026
  - 3032
  - 3034
  - 3035
  - 3036
  - 3039
  pip._vendor.pkg_resources.Distribution.clone:
  - 3056
  - 3058
  - 3059
  - 3060
  - 3061
  pip._vendor.pkg_resources.Distribution.egg_name:
  - 2881
  - 2874
  - 2876
  - 2877
  pip._vendor.pkg_resources.Distribution.from_filename:
  - 2913
  - 2914
  pip._vendor.pkg_resources.Distribution.from_location:
  - 2656
  - 2657
  - 2658
  - 2660
  - 2661
  - 2662
  - 2665
  pip._vendor.pkg_resources.Distribution.get_entry_info:
  - 2946
  - 2947
  pip._vendor.pkg_resources.Distribution.get_entry_map:
  - 2934
  - 2938
  - 2939
  - 2941
  - 2942
  pip._vendor.pkg_resources.Distribution.has_version:
  - 3048
  - 3046
  pip._vendor.pkg_resources.Distribution.insert_on:
  - 2976
  - 3008
  - 2978
  - 2979
  - 2980
  - 2951
  - 2986
  - 2989
  - 2991
  - 2992
  - 2993
  - 2994
  - 2971
  - 2974
  - 2975
  pip._vendor.pkg_resources.Distribution.key:
  - 2722
  pip._vendor.pkg_resources.Distribution.load_entry_point:
  - 2928
  - 2929
  - 2931
  - 2927
  pip._vendor.pkg_resources.Distribution.parsed_version:
  - 2729
  - 2732
  - 2733
  - 2727
  pip._vendor.pkg_resources.Distribution.requires:
  - 2824
  - 2825
  - 2827
  - 2821
  pip._vendor.pkg_resources.Distribution.version:
  - 2770
  - 2771
  - 2772
  - 2773
  pip._vendor.pkg_resources.DistributionNotFound:
  - 345
  pip._vendor.pkg_resources.DistributionNotFound.__str__:
  - 370
  pip._vendor.pkg_resources.DistributionNotFound.report:
  - 367
  pip._vendor.pkg_resources.DistributionNotFound.requirers_str:
  - 362
  - 364
  pip._vendor.pkg_resources.EggInfoDistribution._reload_version:
  - 3081
  - 3082
  - 3070
  pip._vendor.pkg_resources.EggMetadata:
  - 2046
  pip._vendor.pkg_resources.EggMetadata.__init__:
  - 2049
  - 2053
  - 2054
  - 2057
  pip._vendor.pkg_resources.EggProvider:
  - 1692
  pip._vendor.pkg_resources.EggProvider.__init__:
  - 1696
  - 1695
  pip._vendor.pkg_resources.EggProvider._set_egg:
  - 1706
  - 1707
  pip._vendor.pkg_resources.EggProvider._setup_prefix:
  - 1701
  - 1702
  - 1703
  pip._vendor.pkg_resources.EmptyProvider:
  - 1745
  - 1749
  pip._vendor.pkg_resources.EntryPoint:
  - 2483
  - 2543
  pip._vendor.pkg_resources.EntryPoint.__init__:
  - 2490
  - 2491
  - 2486
  pip._vendor.pkg_resources.EntryPoint.__repr__:
  - 2503
  pip._vendor.pkg_resources.EntryPoint.__str__:
  - 2496
  - 2497
  - 2498
  - 2499
  pip._vendor.pkg_resources.EntryPoint._parse_extras:
  - 2576
  - 2577
  - 2574
  pip._vendor.pkg_resources.EntryPoint.load:
  - 2506
  - 2509
  - 2510
  - 2516
  - 2517
  - 2518
  pip._vendor.pkg_resources.EntryPoint.parse:
  - 2563
  - 2564
  - 2567
  - 2568
  - 2569
  - 2570
  - 2554
  pip._vendor.pkg_resources.EntryPoint.parse_group:
  - 2583
  - 2584
  - 2587
  - 2588
  - 2589
  pip._vendor.pkg_resources.EntryPoint.parse_map:
  - 2596
  - 2597
  - 2598
  - 2600
  - 2602
  - 2603
  - 2604
  - 2607
  - 2608
  - 2610
  pip._vendor.pkg_resources.EntryPoint.require:
  - 2531
  - 2540
  - 2541
  - 2539
  pip._vendor.pkg_resources.EntryPoint.resolve:
  - 2521
  - 2524
  - 2526
  pip._vendor.pkg_resources.Environment:
  - 1032
  pip._vendor.pkg_resources.Environment.__add__:
  - 1168
  - 1169
  - 1170
  pip._vendor.pkg_resources.Environment.__getitem__:
  - 1099
  - 1092
  - 1100
  pip._vendor.pkg_resources.Environment.__iadd__:
  - 1156
  - 1157
  - 1158
  - 1159
  - 1160
  - 1161
  - 1162
  pip._vendor.pkg_resources.Environment.__init__:
  - 1056
  - 1037
  pip._vendor.pkg_resources.Environment.__iter__:
  - 1152
  - 1153
  - 1150
  - 1151
  pip._vendor.pkg_resources.Environment.add:
  - 1103
  - 1104
  - 1105
  - 1106
  - 1107
  - 1108
  pip._vendor.pkg_resources.Environment.best_match:
  - 1124
  - 1126
  - 1129
  - 1131
  - 1132
  - 1135
  - 1111
  pip._vendor.pkg_resources.Environment.can_add:
  - 1059
  - 1070
  pip._vendor.pkg_resources.Environment.obtain:
  - 1138
  - 1147
  - 1146
  pip._vendor.pkg_resources.Environment.remove:
  - 1073
  - 1074
  pip._vendor.pkg_resources.Environment.scan:
  - 1088
  - 1089
  - 1077
  - 1084
  - 1087
  pip._vendor.pkg_resources.ExtractionError:
  - 1180
  pip._vendor.pkg_resources.FileMetadata:
  - 1980
  pip._vendor.pkg_resources.FileMetadata._warn_on_replacement:
  - 2011
  - 2013
  - 2014
  pip._vendor.pkg_resources.FileMetadata.get_metadata:
  - 2001
  - 2004
  - 2005
  - 2006
  pip._vendor.pkg_resources.FileMetadata.get_metadata_lines:
  - 2017
  pip._vendor.pkg_resources.FileMetadata.has_metadata:
  - 1998
  pip._vendor.pkg_resources.IMetadataProvider.get_metadata:
  - 554
  pip._vendor.pkg_resources.IMetadataProvider.get_metadata_lines:
  - 557
  pip._vendor.pkg_resources.IMetadataProvider.has_metadata:
  - 551
  pip._vendor.pkg_resources.IMetadataProvider.metadata_isdir:
  - 563
  pip._vendor.pkg_resources.IMetadataProvider.metadata_listdir:
  - 566
  pip._vendor.pkg_resources.IMetadataProvider.run_script:
  - 569
  pip._vendor.pkg_resources.IResourceProvider:
  - 573
  pip._vendor.pkg_resources.IResourceProvider.get_resource_filename:
  - 576
  pip._vendor.pkg_resources.IResourceProvider.get_resource_stream:
  - 581
  pip._vendor.pkg_resources.IResourceProvider.get_resource_string:
  - 586
  pip._vendor.pkg_resources.IResourceProvider.has_resource:
  - 591
  pip._vendor.pkg_resources.IResourceProvider.resource_isdir:
  - 594
  pip._vendor.pkg_resources.IResourceProvider.resource_listdir:
  - 597
  pip._vendor.pkg_resources.MemoizedZipManifests:
  - 1792
  - 1796
  pip._vendor.pkg_resources.MemoizedZipManifests.load:
  - 1799
  - 1802
  - 1803
  - 1805
  - 1806
  - 1807
  pip._vendor.pkg_resources.NoDists:
  - 2158
  pip._vendor.pkg_resources.NoDists.__call__:
  - 2170
  pip._vendor.pkg_resources.NullProvider:
  - 1483
  pip._vendor.pkg_resources.NullProvider.__init__:
  - 1490
  - 1491
  pip._vendor.pkg_resources.NullProvider._fn:
  - 1592
  - 1590
  - 1591
  pip._vendor.pkg_resources.NullProvider._get:
  - 1670
  - 1671
  pip._vendor.pkg_resources.NullProvider._get_metadata_path:
  - 1506
  pip._vendor.pkg_resources.NullProvider._validate_resource_path:
  - 1664
  - 1649
  - 1650
  - 1651
  - 1653
  - 1659
  - 1597
  pip._vendor.pkg_resources.NullProvider.get_metadata:
  - 1516
  - 1518
  - 1519
  - 1521
  - 1525
  pip._vendor.pkg_resources.NullProvider.get_metadata_lines:
  - 1529
  pip._vendor.pkg_resources.NullProvider.get_resource_filename:
  - 1494
  pip._vendor.pkg_resources.NullProvider.get_resource_stream:
  - 1497
  pip._vendor.pkg_resources.NullProvider.get_resource_string:
  - 1500
  pip._vendor.pkg_resources.NullProvider.has_metadata:
  - 1512
  - 1513
  - 1509
  pip._vendor.pkg_resources.NullProvider.has_resource:
  - 1503
  pip._vendor.pkg_resources.NullProvider.metadata_isdir:
  - 1535
  pip._vendor.pkg_resources.NullProvider.metadata_listdir:
  - 1541
  - 1542
  pip._vendor.pkg_resources.NullProvider.resource_isdir:
  - 1532
  pip._vendor.pkg_resources.NullProvider.resource_listdir:
  - 1538
  pip._vendor.pkg_resources.NullProvider.run_script:
  - 1568
  - 1571
  - 1572
  - 1547
  - 1553
  - 1554
  - 1555
  - 1557
  - 1558
  - 1559
  - 1560
  - 1561
  - 1566
  pip._vendor.pkg_resources.PEP440Warning:
  - 130
  pip._vendor.pkg_resources.PathMetadata:
  - 2021
  pip._vendor.pkg_resources.PkgResourcesDeprecationWarning:
  - 3319
  pip._vendor.pkg_resources.Requirement.__contains__:
  - 3196
  - 3197
  - 3205
  pip._vendor.pkg_resources.Requirement.__eq__:
  - 3190
  pip._vendor.pkg_resources.Requirement.__init__:
  - 3173
  - 3174
  - 3176
  - 3177
  - 3179
  - 3184
  - 3185
  - 3187
  pip._vendor.pkg_resources.Requirement.__repr__:
  - 3211
  pip._vendor.pkg_resources.Requirement.parse:
  - 3215
  pip._vendor.pkg_resources.RequirementParseError:
  - 3168
  pip._vendor.pkg_resources.ResolutionError:
  - 293
  pip._vendor.pkg_resources.ResolutionError.__repr__:
  - 296
  pip._vendor.pkg_resources.ResourceManager:
  - 1196
  pip._vendor.pkg_resources.ResourceManager._warn_unsafe_extraction_path:
  - 1312
  - 1313
  - 1290
  - 1298
  - 1303
  - 1304
  - 1305
  pip._vendor.pkg_resources.ResourceManager.cleanup_resources:
  - 1360
  pip._vendor.pkg_resources.ResourceManager.extraction_error:
  - 1257
  - 1234
  - 1236
  - 1237
  - 1239
  pip._vendor.pkg_resources.ResourceManager.get_cache_path:
  - 1281
  - 1283
  - 1264
  - 1276
  - 1277
  - 1279
  pip._vendor.pkg_resources.ResourceManager.postprocess:
  - 1330
  - 1316
  - 1333
  - 1332
  pip._vendor.pkg_resources.ResourceManager.resource_exists:
  - 1204
  - 1205
  pip._vendor.pkg_resources.ResourceManager.resource_filename:
  - 1212
  - 1213
  pip._vendor.pkg_resources.ResourceManager.resource_isdir:
  - 1208
  - 1209
  pip._vendor.pkg_resources.ResourceManager.resource_listdir:
  - 1230
  - 1231
  pip._vendor.pkg_resources.ResourceManager.resource_stream:
  - 1218
  - 1219
  pip._vendor.pkg_resources.ResourceManager.resource_string:
  - 1224
  - 1225
  pip._vendor.pkg_resources.ResourceManager.set_extraction_path:
  - 1336
  - 1354
  pip._vendor.pkg_resources.UnknownExtra:
  - 374
  pip._vendor.pkg_resources.VersionConflict:
  - 300
  pip._vendor.pkg_resources.VersionConflict.report:
  - 318
  pip._vendor.pkg_resources.VersionConflict.with_context:
  - 328
  - 321
  - 325
  pip._vendor.pkg_resources.WorkingSet:
  - 601
  pip._vendor.pkg_resources.WorkingSet.__contains__:
  - 675
  - 676
  pip._vendor.pkg_resources.WorkingSet.__getstate__:
  - 996
  - 997
  - 998
  pip._vendor.pkg_resources.WorkingSet.__init__:
  - 611
  - 604
  - 614
  - 615
  pip._vendor.pkg_resources.WorkingSet.__iter__:
  - 736
  - 737
  - 739
  - 725
  - 731
  - 732
  pip._vendor.pkg_resources.WorkingSet.__setstate__:
  - 1005
  - 1006
  - 1007
  pip._vendor.pkg_resources.WorkingSet._added_new:
  - 990
  - 991
  pip._vendor.pkg_resources.WorkingSet._build_from_requirements:
  - 644
  - 645
  - 646
  - 647
  - 648
  - 651
  - 652
  - 653
  - 639
  pip._vendor.pkg_resources.WorkingSet._build_master:
  - 633
  - 619
  - 622
  - 631
  pip._vendor.pkg_resources.WorkingSet._resolve_dist:
  - 864
  - 865
  - 868
  - 869
  - 871
  - 872
  - 850
  - 851
  - 853
  - 854
  - 856
  - 857
  - 858
  - 863
  pip._vendor.pkg_resources.WorkingSet.add:
  - 768
  - 769
  - 770
  - 771
  - 742
  - 753
  - 754
  - 756
  - 758
  - 759
  - 760
  - 765
  - 767
  pip._vendor.pkg_resources.WorkingSet.add_entry:
  - 672
  - 660
  - 669
  - 670
  - 671
  pip._vendor.pkg_resources.WorkingSet.find:
  - 679
  - 688
  - 690
  - 691
  - 693
  - 695
  - 697
  pip._vendor.pkg_resources.WorkingSet.find_plugins:
  - 928
  - 930
  - 931
  - 935
  - 940
  - 879
  - 913
  - 915
  - 948
  - 949
  - 920
  - 921
  - 954
  - 955
  - 926
  pip._vendor.pkg_resources.WorkingSet.iter_entry_points:
  - 712
  - 703
  pip._vendor.pkg_resources.WorkingSet.require:
  - 960
  - 970
  - 971
  - 968
  pip._vendor.pkg_resources.WorkingSet.resolve:
  - 834
  - 835
  - 806
  - 838
  - 839
  - 813
  - 781
  - 817
  - 821
  - 822
  - 826
  - 829
  pip._vendor.pkg_resources.WorkingSet.run_script:
  - 720
  - 722
  - 717
  - 718
  pip._vendor.pkg_resources.WorkingSet.subscribe:
  - 976
  - 981
  - 983
  - 984
  - 986
  - 987
  pip._vendor.pkg_resources.ZipManifests:
  - 1765
  pip._vendor.pkg_resources.ZipManifests.build:
  - 1771
  - 1778
  - 1781
  - 1782
  - 1784
  - 1786
  pip._vendor.pkg_resources.ZipProvider:
  - 1816
  - 1813
  pip._vendor.pkg_resources.ZipProvider.__init__:
  - 1819
  pip._vendor.pkg_resources.ZipProvider._eager_to_zip:
  - 1970
  pip._vendor.pkg_resources.ZipProvider._extract_resource:
  - 1868
  - 1869
  - 1870
  - 1872
  - 1874
  - 1876
  - 1881
  - 1883
  - 1886
  - 1888
  - 1890
  - 1891
  - 1892
  - 1893
  - 1896
  - 1899
  - 1900
  - 1905
  - 1906
  - 1907
  - 1913
  pip._vendor.pkg_resources.ZipProvider._get_date_and_size:
  - 1863
  pip._vendor.pkg_resources.ZipProvider._get_eager_resources:
  - 1936
  - 1937
  - 1938
  - 1934
  pip._vendor.pkg_resources.ZipProvider._has:
  - 1960
  - 1961
  pip._vendor.pkg_resources.ZipProvider._index:
  - 1952
  - 1955
  - 1947
  - 1948
  - 1950
  - 1951
  pip._vendor.pkg_resources.ZipProvider._is_current:
  - 1921
  - 1922
  - 1924
  - 1925
  - 1928
  - 1929
  - 1930
  - 1918
  pip._vendor.pkg_resources.ZipProvider._isdir:
  - 1964
  pip._vendor.pkg_resources.ZipProvider._listdir:
  - 1967
  pip._vendor.pkg_resources.ZipProvider._parts:
  - 1836
  - 1837
  pip._vendor.pkg_resources.ZipProvider._resource_to_zip:
  - 1973
  pip._vendor.pkg_resources.ZipProvider._zipinfo_name:
  - 1825
  - 1826
  - 1828
  - 1829
  pip._vendor.pkg_resources.ZipProvider.get_resource_filename:
  - 1845
  - 1850
  - 1851
  - 1852
  - 1853
  - 1854
  - 1855
  pip._vendor.pkg_resources.ZipProvider.zipinfo:
  - 1842
  pip._vendor.pkg_resources._ReqExtras:
  - 1012
  pip._vendor.pkg_resources._ReqExtras.markers_pass:
  - 1017
  - 1026
  - 1028
  - 1025
  pip._vendor.pkg_resources.__getstate__:
  - 149
  - 150
  - 151
  pip._vendor.pkg_resources.__setstate__:
  - 156
  - 157
  - 158
  pip._vendor.pkg_resources._always_object:
  - 3224
  - 3220
  pip._vendor.pkg_resources._bypass_ensure_directory:
  - 3244
  - 3245
  - 3247
  - 3248
  - 3249
  - 3251
  pip._vendor.pkg_resources._call_aside:
  - 3302
  pip._vendor.pkg_resources._cygwin_patch:
  - 2424
  - 2417
  pip._vendor.pkg_resources._declare_state:
  - 144
  - 143
  pip._vendor.pkg_resources._find_adapter:
  - 3232
  - 3233
  - 3230
  - 3231
  pip._vendor.pkg_resources._forgiving_version:
  - 1417
  - 1418
  - 1419
  - 1421
  - 1425
  - 1405
  pip._vendor.pkg_resources._handle_ns:
  - 2259
  - 2261
  - 2262
  - 2267
  - 2270
  - 2271
  - 2272
  - 2276
  - 2278
  - 2279
  - 2280
  - 2282
  - 2283
  - 2285
  - 2286
  - 2287
  - 2289
  - 2290
  - 2291
  pip._vendor.pkg_resources._initialize:
  - 3308
  - 3309
  - 3311
  - 3312
  - 3313
  - 3314
  pip._vendor.pkg_resources._initialize_master_working_set:
  - 3360
  - 3329
  - 3361
  - 3340
  - 3341
  - 3353
  - 3354
  - 3355
  pip._vendor.pkg_resources._initialize_master_working_set.<lambda1>:
  - 3355
  pip._vendor.pkg_resources._is_egg_path:
  - 2436
  - 2439
  pip._vendor.pkg_resources._is_unpacked_egg:
  - 2451
  - 2454
  - 2455
  pip._vendor.pkg_resources._is_zip_egg:
  - 2444
  - 2445
  - 2446
  pip._vendor.pkg_resources._macos_arch:
  - 427
  pip._vendor.pkg_resources._macos_vers:
  - 416
  - 417
  - 418
  - 419
  - 422
  - 411
  - 412
  - 414
  pip._vendor.pkg_resources._mkstemp:
  - 3287
  pip._vendor.pkg_resources._normalize_cached:
  - 2431
  pip._vendor.pkg_resources._parents:
  - 1688
  - 1681
  - 1686
  pip._vendor.pkg_resources._rebuild_mod_path:
  - 2320
  - 2321
  - 2323
  - 2296
  - 2300
  pip._vendor.pkg_resources._rebuild_mod_path.position_in_sys_path:
  - 2312
  - 2315
  - 2316
  - 2318
  pip._vendor.pkg_resources._rebuild_mod_path.safe_sys_path_index:
  - 2307
  - 2309
  - 2303
  pip._vendor.pkg_resources._safe_segment:
  - 1432
  - 1433
  - 1430
  - 1431
  pip._vendor.pkg_resources._set_parent_ns:
  - 2464
  - 2460
  - 2461
  - 2462
  - 2463
  pip._vendor.pkg_resources._sget_dict:
  - 163
  pip._vendor.pkg_resources._sget_object:
  - 172
  pip._vendor.pkg_resources._sset_dict:
  - 168
  - 167
  pip._vendor.pkg_resources._sset_object:
  - 176
  pip._vendor.pkg_resources._version_from_file:
  - 2624
  - 2625
  - 2626
  - 2615
  - 2623
  pip._vendor.pkg_resources._version_from_file.is_version_line:
  - 2621
  pip._vendor.pkg_resources.compatible_platforms:
  - 482
  - 483
  - 484
  - 485
  - 486
  - 462
  - 497
  - 468
  - 501
  - 473
  - 474
  - 475
  - 478
  pip._vendor.pkg_resources.declare_namespace:
  - 2369
  - 2339
  - 2341
  - 2343
  - 2347
  - 2349
  - 2350
  - 2351
  - 2352
  - 2360
  - 2361
  - 2330
  - 2363
  - 2366
  pip._vendor.pkg_resources.dist_factory:
  - 2150
  - 2152
  - 2153
  - 2139
  - 2140
  - 2141
  - 2142
  - 2143
  pip._vendor.pkg_resources.distributions_from_metadata:
  - 2190
  - 2191
  - 2192
  - 2195
  - 2197
  - 2198
  - 2199
  pip._vendor.pkg_resources.ensure_directory:
  - 3240
  - 3238
  - 3239
  pip._vendor.pkg_resources.evaluate_marker:
  - 1476
  - 1468
  - 1477
  pip._vendor.pkg_resources.file_ns_handler:
  - 2385
  - 2387
  - 2388
  - 2389
  - 2390
  pip._vendor.pkg_resources.find_distributions:
  - 2074
  - 2075
  - 2076
  - 2077
  pip._vendor.pkg_resources.find_eggs_in_zip:
  - 2081
  - 2084
  - 2088
  - 2089
  - 2090
  - 2091
  - 2094
  - 2095
  - 2096
  - 2097
  - 2098
  - 2099
  - 2100
  - 2101
  - 2102
  - 2104
  pip._vendor.pkg_resources.find_on_path:
  - 2118
  - 2119
  - 2121
  - 2122
  - 2124
  - 2128
  - 2131
  - 2132
  - 2133
  - 2134
  - 2135
  pip._vendor.pkg_resources.fixup_namespace_packages:
  - 2373
  - 2374
  - 2376
  - 2377
  - 2378
  - 2379
  - 2381
  pip._vendor.pkg_resources.get_build_platform:
  - 431
  - 438
  - 439
  - 441
  - 442
  - 444
  - 445
  - 446
  pip._vendor.pkg_resources.get_default_cache:
  - 1379
  - 1374
  pip._vendor.pkg_resources.get_distribution:
  - 524
  - 525
  - 526
  - 527
  - 528
  - 529
  pip._vendor.pkg_resources.get_entry_info:
  - 545
  - 546
  pip._vendor.pkg_resources.get_entry_map:
  - 540
  - 541
  pip._vendor.pkg_resources.get_provider:
  - 398
  - 399
  - 400
  - 404
  - 406
  - 407
  pip._vendor.pkg_resources.get_supported_platform:
  - 195
  - 196
  - 197
  - 199
  - 183
  pip._vendor.pkg_resources.invalid_marker:
  - 1459
  - 1454
  pip._vendor.pkg_resources.issue_warning:
  - 3155
  - 3147
  - 3151
  pip._vendor.pkg_resources.load_entry_point:
  - 536
  - 535
  pip._vendor.pkg_resources.non_empty_lines:
  - 2208
  - 2211
  - 2212
  - 2213
  - 2214
  - 2215
  pip._vendor.pkg_resources.normalize_path:
  - 2412
  - 2413
  pip._vendor.pkg_resources.parse_requirements:
  - 3164
  - 3159
  pip._vendor.pkg_resources.register_finder:
  - 2064
  pip._vendor.pkg_resources.register_loader_type:
  - 388
  pip._vendor.pkg_resources.register_namespace_handler:
  - 2241
  pip._vendor.pkg_resources.resolve_egg_link:
  - 2219
  - 2223
  - 2225
  - 2227
  - 2228
  pip._vendor.pkg_resources.run_script:
  - 512
  - 514
  - 516
  - 511
  pip._vendor.pkg_resources.safe_extra:
  - 1442
  - 1437
  pip._vendor.pkg_resources.safe_listdir:
  - 2184
  - 2178
  - 2174
  pip._vendor.pkg_resources.safe_name:
  - 1385
  - 1389
  pip._vendor.pkg_resources.safe_version:
  - 1400
  - 1393
  - 1398
  - 1401
  pip._vendor.pkg_resources.split_sections:
  - 3266
  - 3267
  - 3268
  - 3269
  - 3270
  - 3271
  - 3276
  - 3279
  - 3257
  pip._vendor.pkg_resources.to_filename:
  - 1450
  - 1446
  pip._vendor.platformdirs:
  - 1
  - 18
  - 46
  - 15
  pip._vendor.platformdirs.__main__:
  - 1
  - 52
  - 53
  pip._vendor.platformdirs.__main__.main:
  - 32
  - 33
  - 34
  - 36
  - 37
  - 38
  - 39
  - 41
  - 42
  - 43
  - 44
  - 46
  - 47
  - 48
  - 49
  - 25
  - 29
  - 31
  pip._vendor.platformdirs._set_platform_dir_class:
  - 32
  - 33
  - 38
  - 25
  - 27
  pip._vendor.platformdirs.android:
  - 128
  - 1
  - 160
  - 192
  - 107
  - 144
  - 176
  pip._vendor.platformdirs.android.Android:
  - 14
  pip._vendor.platformdirs.android.Android.site_cache_dir:
  - 51
  pip._vendor.platformdirs.android.Android.site_config_dir:
  - 41
  pip._vendor.platformdirs.android.Android.site_data_dir:
  - 28
  pip._vendor.platformdirs.android.Android.user_cache_dir:
  - 46
  - 47
  pip._vendor.platformdirs.android.Android.user_config_dir:
  - 33
  - 37
  pip._vendor.platformdirs.android.Android.user_data_dir:
  - 24
  - 23
  pip._vendor.platformdirs.android.Android.user_documents_dir:
  - 72
  - 73
  pip._vendor.platformdirs.android.Android.user_downloads_dir:
  - 77
  - 78
  pip._vendor.platformdirs.android.Android.user_log_dir:
  - 66
  - 67
  - 61
  pip._vendor.platformdirs.android.Android.user_music_dir:
  - 92
  - 93
  pip._vendor.platformdirs.android.Android.user_pictures_dir:
  - 82
  - 83
  pip._vendor.platformdirs.android.Android.user_runtime_dir:
  - 97
  - 102
  - 103
  pip._vendor.platformdirs.android.Android.user_state_dir:
  - 56
  pip._vendor.platformdirs.android.Android.user_videos_dir:
  - 88
  - 87
  pip._vendor.platformdirs.android._android_documents_folder:
  - 136
  - 137
  - 130
  - 135
  pip._vendor.platformdirs.android._android_downloads_folder:
  - 152
  - 153
  - 146
  - 151
  pip._vendor.platformdirs.android._android_folder:
  - 109
  - 114
  - 115
  - 118
  - 119
  - 120
  - 121
  pip._vendor.platformdirs.android._android_music_folder:
  - 200
  - 201
  - 194
  - 199
  pip._vendor.platformdirs.android._android_pictures_folder:
  - 168
  - 169
  - 162
  - 167
  pip._vendor.platformdirs.android._android_videos_folder:
  - 184
  - 185
  - 178
  - 183
  pip._vendor.platformdirs.api:
  - 1
  - 12
  - 9
  pip._vendor.platformdirs.api.PlatformDirsABC:
  - 19
  pip._vendor.platformdirs.api.PlatformDirsABC.__init__:
  - 66
  - 44
  - 49
  - 54
  - 60
  - 31
  pip._vendor.platformdirs.api.PlatformDirsABC._append_app_name_and_version:
  - 72
  - 73
  - 74
  - 75
  - 76
  - 77
  - 78
  pip._vendor.platformdirs.api.PlatformDirsABC._optionally_create_directory:
  - 82
  - 83
  pip._vendor.platformdirs.api.PlatformDirsABC.site_cache_dir:
  - 113
  pip._vendor.platformdirs.api.PlatformDirsABC.site_cache_path:
  - 182
  - 183
  pip._vendor.platformdirs.api.PlatformDirsABC.site_config_dir:
  - 103
  pip._vendor.platformdirs.api.PlatformDirsABC.site_config_path:
  - 172
  - 173
  pip._vendor.platformdirs.api.PlatformDirsABC.site_data_dir:
  - 93
  pip._vendor.platformdirs.api.PlatformDirsABC.site_data_path:
  - 162
  - 163
  pip._vendor.platformdirs.api.PlatformDirsABC.user_cache_dir:
  - 108
  pip._vendor.platformdirs.api.PlatformDirsABC.user_cache_path:
  - 177
  - 178
  pip._vendor.platformdirs.api.PlatformDirsABC.user_config_dir:
  - 98
  pip._vendor.platformdirs.api.PlatformDirsABC.user_config_path:
  - 168
  - 167
  pip._vendor.platformdirs.api.PlatformDirsABC.user_data_dir:
  - 88
  pip._vendor.platformdirs.api.PlatformDirsABC.user_data_path:
  - 157
  - 158
  pip._vendor.platformdirs.api.PlatformDirsABC.user_documents_dir:
  - 128
  pip._vendor.platformdirs.api.PlatformDirsABC.user_documents_path:
  - 197
  - 198
  pip._vendor.platformdirs.api.PlatformDirsABC.user_downloads_dir:
  - 133
  pip._vendor.platformdirs.api.PlatformDirsABC.user_downloads_path:
  - 202
  - 203
  pip._vendor.platformdirs.api.PlatformDirsABC.user_log_dir:
  - 123
  pip._vendor.platformdirs.api.PlatformDirsABC.user_log_path:
  - 192
  - 193
  pip._vendor.platformdirs.api.PlatformDirsABC.user_music_dir:
  - 148
  pip._vendor.platformdirs.api.PlatformDirsABC.user_music_path:
  - 217
  - 218
  pip._vendor.platformdirs.api.PlatformDirsABC.user_pictures_dir:
  - 138
  pip._vendor.platformdirs.api.PlatformDirsABC.user_pictures_path:
  - 208
  - 207
  pip._vendor.platformdirs.api.PlatformDirsABC.user_runtime_dir:
  - 153
  pip._vendor.platformdirs.api.PlatformDirsABC.user_runtime_path:
  - 222
  - 223
  pip._vendor.platformdirs.api.PlatformDirsABC.user_state_dir:
  - 118
  pip._vendor.platformdirs.api.PlatformDirsABC.user_state_path:
  - 187
  - 188
  pip._vendor.platformdirs.api.PlatformDirsABC.user_videos_dir:
  - 143
  pip._vendor.platformdirs.api.PlatformDirsABC.user_videos_path:
  - 212
  - 213
  pip._vendor.platformdirs.macos:
  - 1
  pip._vendor.platformdirs.macos.MacOS:
  - 10
  pip._vendor.platformdirs.macos.MacOS.site_cache_dir:
  - 45
  - 46
  pip._vendor.platformdirs.macos.MacOS.site_config_dir:
  - 35
  pip._vendor.platformdirs.macos.MacOS.site_data_dir:
  - 25
  - 26
  pip._vendor.platformdirs.macos.MacOS.user_cache_dir:
  - 40
  - 41
  pip._vendor.platformdirs.macos.MacOS.user_config_dir:
  - 30
  pip._vendor.platformdirs.macos.MacOS.user_data_dir:
  - 20
  - 21
  pip._vendor.platformdirs.macos.MacOS.user_documents_dir:
  - 60
  - 61
  pip._vendor.platformdirs.macos.MacOS.user_downloads_dir:
  - 65
  - 66
  pip._vendor.platformdirs.macos.MacOS.user_log_dir:
  - 56
  - 55
  pip._vendor.platformdirs.macos.MacOS.user_music_dir:
  - 80
  - 81
  pip._vendor.platformdirs.macos.MacOS.user_pictures_dir:
  - 70
  - 71
  pip._vendor.platformdirs.macos.MacOS.user_runtime_dir:
  - 85
  - 86
  pip._vendor.platformdirs.macos.MacOS.user_state_dir:
  - 50
  pip._vendor.platformdirs.macos.MacOS.user_videos_dir:
  - 75
  - 76
  pip._vendor.platformdirs.site_cache_dir:
  - 177
  - 185
  pip._vendor.platformdirs.site_cache_path:
  - 394
  - 402
  pip._vendor.platformdirs.site_config_dir:
  - 129
  - 137
  pip._vendor.platformdirs.site_config_path:
  - 370
  - 378
  pip._vendor.platformdirs.site_data_dir:
  - 89
  - 81
  pip._vendor.platformdirs.site_data_path:
  - 322
  - 330
  pip._vendor.platformdirs.unix:
  - 1
  - 11
  pip._vendor.platformdirs.unix.Unix:
  - 22
  pip._vendor.platformdirs.unix.Unix._first_item_as_path_if_multipath:
  - 185
  - 187
  - 188
  pip._vendor.platformdirs.unix.Unix._with_multi_path:
  - 59
  - 60
  - 62
  - 63
  pip._vendor.platformdirs.unix.Unix.site_cache_dir:
  - 102
  - 103
  pip._vendor.platformdirs.unix.Unix.site_cache_path:
  - 181
  - 182
  pip._vendor.platformdirs.unix.Unix.site_config_dir:
  - 84
  - 85
  - 78
  - 87
  pip._vendor.platformdirs.unix.Unix.site_config_path:
  - 176
  - 177
  pip._vendor.platformdirs.unix.Unix.site_data_dir:
  - 56
  - 53
  - 54
  - 47
  pip._vendor.platformdirs.unix.Unix.site_data_path:
  - 171
  - 172
  pip._vendor.platformdirs.unix.Unix.user_cache_dir:
  - 96
  - 97
  - 98
  - 91
  - 95
  pip._vendor.platformdirs.unix.Unix.user_config_dir:
  - 67
  - 71
  - 72
  - 73
  - 74
  pip._vendor.platformdirs.unix.Unix.user_data_dir:
  - 36
  - 40
  - 41
  - 42
  - 43
  pip._vendor.platformdirs.unix.Unix.user_documents_dir:
  - 126
  - 127
  pip._vendor.platformdirs.unix.Unix.user_downloads_dir:
  - 131
  - 132
  pip._vendor.platformdirs.unix.Unix.user_log_dir:
  - 120
  - 121
  - 118
  pip._vendor.platformdirs.unix.Unix.user_music_dir:
  - 146
  - 147
  pip._vendor.platformdirs.unix.Unix.user_pictures_dir:
  - 136
  - 137
  pip._vendor.platformdirs.unix.Unix.user_runtime_dir:
  - 160
  - 161
  - 162
  - 163
  - 164
  - 166
  - 167
  - 151
  - 159
  pip._vendor.platformdirs.unix.Unix.user_state_dir:
  - 107
  - 111
  - 112
  - 113
  - 114
  pip._vendor.platformdirs.unix.Unix.user_videos_dir:
  - 141
  - 142
  pip._vendor.platformdirs.unix._get_user_dirs_folder:
  - 202
  - 203
  - 204
  - 205
  - 207
  - 209
  - 211
  - 214
  - 216
  pip._vendor.platformdirs.unix._get_user_media_dir:
  - 192
  - 193
  - 194
  - 195
  - 196
  pip._vendor.platformdirs.user_cache_dir:
  - 153
  - 161
  pip._vendor.platformdirs.user_cache_path:
  - 426
  - 418
  pip._vendor.platformdirs.user_config_dir:
  - 105
  - 113
  pip._vendor.platformdirs.user_config_path:
  - 346
  - 354
  pip._vendor.platformdirs.user_data_dir:
  - 65
  - 57
  pip._vendor.platformdirs.user_data_path:
  - 298
  - 306
  pip._vendor.platformdirs.user_documents_dir:
  - 243
  - 244
  pip._vendor.platformdirs.user_documents_path:
  - 484
  - 485
  pip._vendor.platformdirs.user_downloads_dir:
  - 248
  - 249
  pip._vendor.platformdirs.user_downloads_path:
  - 489
  - 490
  pip._vendor.platformdirs.user_log_dir:
  - 225
  - 233
  pip._vendor.platformdirs.user_log_path:
  - 474
  - 466
  pip._vendor.platformdirs.user_music_dir:
  - 264
  - 263
  pip._vendor.platformdirs.user_music_path:
  - 504
  - 505
  pip._vendor.platformdirs.user_pictures_dir:
  - 253
  - 254
  pip._vendor.platformdirs.user_pictures_path:
  - 494
  - 495
  pip._vendor.platformdirs.user_runtime_dir:
  - 274
  - 282
  pip._vendor.platformdirs.user_runtime_path:
  - 523
  - 515
  pip._vendor.platformdirs.user_state_dir:
  - 201
  - 209
  pip._vendor.platformdirs.user_state_path:
  - 450
  - 442
  pip._vendor.platformdirs.user_videos_dir:
  - 258
  - 259
  pip._vendor.platformdirs.user_videos_path:
  - 499
  - 500
  pip._vendor.platformdirs.windows:
  - 1
  - 251
  - 12
  pip._vendor.platformdirs.windows.Windows:
  - 17
  pip._vendor.platformdirs.windows.Windows._append_parts:
  - 42
  - 43
  - 45
  - 46
  - 47
  - 48
  - 49
  - 50
  - 51
  - 52
  pip._vendor.platformdirs.windows.Windows.site_cache_dir:
  - 82
  - 83
  - 84
  pip._vendor.platformdirs.windows.Windows.site_config_dir:
  - 68
  pip._vendor.platformdirs.windows.Windows.site_data_dir:
  - 57
  - 58
  - 59
  pip._vendor.platformdirs.windows.Windows.user_cache_dir:
  - 73
  - 77
  - 78
  pip._vendor.platformdirs.windows.Windows.user_config_dir:
  - 63
  pip._vendor.platformdirs.windows.Windows.user_data_dir:
  - 37
  - 38
  - 31
  pip._vendor.platformdirs.windows.Windows.user_documents_dir:
  - 102
  - 103
  pip._vendor.platformdirs.windows.Windows.user_downloads_dir:
  - 107
  - 108
  pip._vendor.platformdirs.windows.Windows.user_log_dir:
  - 96
  - 97
  - 93
  - 95
  pip._vendor.platformdirs.windows.Windows.user_music_dir:
  - 122
  - 123
  pip._vendor.platformdirs.windows.Windows.user_pictures_dir:
  - 112
  - 113
  pip._vendor.platformdirs.windows.Windows.user_runtime_dir:
  - 131
  - 132
  - 127
  pip._vendor.platformdirs.windows.Windows.user_state_dir:
  - 88
  pip._vendor.platformdirs.windows.Windows.user_videos_dir:
  - 117
  - 118
  pip._vendor.platformdirs.windows._pick_get_win_folder:
  - 241
  pip._vendor.platformdirs.windows.get_win_folder_from_env_vars:
  - 136
  - 137
  - 138
  - 141
  - 146
  - 149
  - 150
  pip._vendor.platformdirs.windows.get_win_folder_from_registry:
  - 192
  - 195
  - 199
  - 200
  - 201
  - 176
  - 182
  pip._vendor.platformdirs.windows.get_win_folder_if_csidl_name_not_env_var:
  - 161
  - 162
  - 164
  - 165
  - 167
  - 168
  - 170
  - 171
  - 157
  - 158
  - 159
  pip._vendor.platformdirs.windows.get_win_folder_via_ctypes:
  - 224
  - 225
  - 226
  - 229
  - 230
  - 231
  - 234
  - 235
  - 205
  - 210
  - 220
  pip._vendor.pygments:
  - 1
  pip._vendor.pygments.__main__:
  - 1
  - 17
  - 15
  pip._vendor.pygments.cmdline:
  - 1
  pip._vendor.pygments.cmdline.HelpFormatter.__init__:
  - 521
  - 524
  - 519
  pip._vendor.pygments.cmdline._parse_filters:
  - 56
  - 58
  - 59
  - 60
  - 61
  - 63
  pip._vendor.pygments.cmdline._parse_options:
  - 35
  - 37
  - 38
  - 40
  - 41
  - 42
  - 44
  - 45
  - 46
  pip._vendor.pygments.cmdline._print_help:
  - 69
  - 70
  - 71
  - 72
  - 73
  - 74
  - 75
  - 76
  - 77
  - 78
  - 79
  - 80
  - 83
  pip._vendor.pygments.cmdline._print_list:
  - 128
  - 129
  - 130
  - 132
  - 133
  - 134
  - 135
  - 88
  - 89
  - 90
  - 91
  - 94
  - 95
  - 96
  - 97
  - 98
  - 99
  - 100
  - 102
  - 103
  - 104
  - 105
  - 108
  - 109
  - 110
  - 111
  - 112
  - 113
  - 114
  - 115
  - 117
  - 118
  - 119
  - 120
  - 122
  - 123
  - 124
  - 125
  - 127
  pip._vendor.pygments.cmdline._print_list_as_json:
  - 162
  - 164
  - 165
  - 167
  - 171
  - 141
  - 173
  - 143
  - 174
  - 176
  - 180
  - 151
  - 153
  - 154
  pip._vendor.pygments.cmdline.main:
  - 640
  - 645
  - 646
  - 647
  - 648
  - 650
  - 652
  - 654
  - 655
  - 529
  - 658
  - 659
  - 660
  - 533
  - 662
  - 663
  - 536
  - 537
  - 538
  - 664
  - 665
  - 666
  - 542
  - 546
  - 550
  - 556
  - 561
  - 566
  - 570
  - 574
  - 575
  - 579
  - 586
  - 595
  - 600
  - 602
  - 603
  - 608
  - 613
  - 618
  - 622
  - 626
  - 629
  - 632
  - 637
  pip._vendor.pygments.cmdline.main_inner:
  - 513
  - 514
  - 183
  - 184
  - 187
  - 188
  - 196
  - 197
  - 198
  - 199
  - 200
  - 202
  - 203
  - 205
  - 206
  - 210
  - 211
  - 213
  - 214
  - 215
  - 217
  - 219
  - 220
  - 221
  - 223
  - 227
  - 228
  - 229
  - 232
  - 233
  - 235
  - 238
  - 241
  - 243
  - 250
  - 251
  - 254
  - 255
  - 256
  - 259
  - 263
  - 264
  - 266
  - 270
  - 276
  - 278
  - 279
  - 281
  - 282
  - 287
  - 289
  - 292
  - 296
  - 297
  - 301
  - 304
  - 311
  - 313
  - 317
  - 318
  - 320
  - 325
  - 326
  - 329
  - 331
  - 335
  - 337
  - 343
  - 344
  - 345
  - 351
  - 352
  - 354
  - 356
  - 357
  - 360
  - 362
  - 364
  - 366
  - 368
  - 370
  - 373
  - 376
  - 379
  - 380
  - 381
  - 383
  - 385
  - 387
  - 390
  - 391
  - 396
  - 398
  - 400
  - 406
  - 408
  - 412
  - 414
  - 416
  - 419
  - 420
  - 423
  - 425
  - 429
  - 431
  - 434
  - 435
  - 437
  - 439
  - 442
  - 444
  - 447
  - 448
  - 449
  - 450
  - 451
  - 453
  - 457
  - 458
  - 463
  - 466
  - 469
  - 476
  - 482
  - 483
  - 486
  - 489
  - 492
  - 494
  - 495
  - 501
  - 502
  - 504
  - 505
  - 506
  - 507
  - 508
  pip._vendor.pygments.cmdline.main_inner.is_only_option:
  - 193
  pip._vendor.pygments.console:
  - 1
  - 30
  pip._vendor.pygments.console.ansiformat:
  - 64
  - 65
  - 67
  - 68
  - 69
  - 70
  - 49
  - 58
  - 59
  - 61
  - 62
  pip._vendor.pygments.filter:
  - 1
  pip._vendor.pygments.filter.Filter:
  - 42
  pip._vendor.pygments.filter.FunctionFilter:
  - 55
  pip._vendor.pygments.filter.FunctionFilter.__init__:
  - 64
  - 67
  pip._vendor.pygments.filter.FunctionFilter.filter:
  - 71
  pip._vendor.pygments.filter.apply_filters:
  - 21
  - 20
  - 13
  pip._vendor.pygments.filter.apply_filters._apply:
  - 19
  pip._vendor.pygments.filter.simplefilter:
  - 26
  - 34
  pip._vendor.pygments.filters:
  - 1
  pip._vendor.pygments.filters.CodeTagFilter:
  - 66
  pip._vendor.pygments.filters.CodeTagFilter.__init__:
  - 80
  - 82
  - 83
  - 79
  pip._vendor.pygments.filters.CodeTagFilter.filter:
  - 88
  - 89
  - 92
  - 94
  pip._vendor.pygments.filters.GobbleFilter:
  - 869
  pip._vendor.pygments.filters.GobbleFilter.__init__:
  - 883
  - 884
  pip._vendor.pygments.filters.GobbleFilter.filter:
  - 897
  - 898
  - 899
  - 900
  - 901
  - 903
  - 904
  - 895
  pip._vendor.pygments.filters.GobbleFilter.gobble:
  - 890
  - 887
  pip._vendor.pygments.filters.KeywordCaseFilter:
  - 688
  pip._vendor.pygments.filters.KeywordCaseFilter.__init__:
  - 705
  - 702
  - 703
  pip._vendor.pygments.filters.KeywordCaseFilter.filter:
  - 712
  - 708
  - 709
  - 710
  pip._vendor.pygments.filters.NameHighlightFilter:
  - 716
  pip._vendor.pygments.filters.NameHighlightFilter.__init__:
  - 740
  - 741
  - 742
  - 743
  - 744
  pip._vendor.pygments.filters.NameHighlightFilter.filter:
  - 753
  - 749
  - 750
  - 751
  pip._vendor.pygments.filters.RaiseOnErrorTokenFilter:
  - 761
  pip._vendor.pygments.filters.RaiseOnErrorTokenFilter.__init__:
  - 777
  - 773
  - 774
  pip._vendor.pygments.filters.RaiseOnErrorTokenFilter.filter:
  - 784
  - 786
  - 783
  pip._vendor.pygments.filters.SymbolFilter:
  - 98
  pip._vendor.pygments.filters.SymbolFilter.__init__:
  - 674
  - 675
  pip._vendor.pygments.filters.SymbolFilter.filter:
  - 680
  - 681
  - 682
  - 684
  pip._vendor.pygments.filters.TokenMergeFilter:
  - 908
  pip._vendor.pygments.filters.TokenMergeFilter.__init__:
  - 914
  pip._vendor.pygments.filters.TokenMergeFilter.filter:
  - 928
  - 919
  - 920
  - 923
  - 924
  - 927
  pip._vendor.pygments.filters.VisibleWhitespaceFilter:
  - 790
  pip._vendor.pygments.filters.VisibleWhitespaceFilter.__init__:
  - 832
  - 834
  - 820
  - 821
  - 824
  - 825
  - 826
  - 828
  - 829
  - 830
  pip._vendor.pygments.filters.VisibleWhitespaceFilter.filter:
  - 864
  - 865
  - 837
  - 841
  - 852
  - 853
  - 858
  - 859
  - 860
  - 861
  - 862
  - 863
  pip._vendor.pygments.filters.VisibleWhitespaceFilter.filter.replacefunc:
  - 848
  - 844
  - 846
  pip._vendor.pygments.filters._replace_special:
  - 55
  - 56
  - 57
  - 58
  - 59
  - 61
  - 62
  pip._vendor.pygments.filters.find_filter_class:
  - 24
  - 26
  - 27
  - 23
  pip._vendor.pygments.filters.get_all_filters:
  - 48
  - 49
  - 46
  - 47
  pip._vendor.pygments.filters.get_filter_by_name:
  - 40
  - 33
  - 38
  - 39
  pip._vendor.pygments.format:
  - 64
  - 65
  - 67
  - 71
  - 53
  - 62
  - 63
  pip._vendor.pygments.formatter:
  - 1
  pip._vendor.pygments.formatter.Formatter:
  - 26
  pip._vendor.pygments.formatter.Formatter.__init__:
  - 96
  - 84
  - 89
  - 90
  - 91
  - 92
  - 93
  pip._vendor.pygments.formatter.Formatter.format:
  - 123
  - 121
  - 115
  - 124
  pip._vendor.pygments.formatter.Formatter.get_style_defs:
  - 100
  pip._vendor.pygments.formatter._lookup_style:
  - 20
  - 21
  pip._vendor.pygments.formatters:
  - 1
  - 155
  - 156
  - 22
  pip._vendor.pygments.formatters._automodule:
  - 142
  pip._vendor.pygments.formatters._automodule.__getattr__:
  - 145
  - 146
  - 147
  - 149
  pip._vendor.pygments.formatters._fn_matches:
  - 32
  - 33
  - 29
  - 30
  - 31
  pip._vendor.pygments.formatters._load_formatters:
  - 40
  - 37
  - 38
  - 39
  pip._vendor.pygments.formatters.bbcode:
  - 1
  pip._vendor.pygments.formatters.bbcode.BBCodeFormatter:
  - 19
  pip._vendor.pygments.formatters.bbcode.BBCodeFormatter.__init__:
  - 57
  - 52
  - 53
  - 54
  pip._vendor.pygments.formatters.bbcode.BBCodeFormatter._make_styles:
  - 65
  - 68
  - 71
  - 60
  - 62
  pip._vendor.pygments.formatters.bbcode.BBCodeFormatter.format_unencoded:
  - 99
  - 101
  - 103
  - 104
  - 105
  - 106
  - 107
  - 108
  - 79
  - 80
  - 81
  - 82
  - 87
  - 90
  - 93
  - 95
  pip._vendor.pygments.formatters.find_formatter_class:
  - 65
  - 66
  - 56
  - 60
  - 61
  - 62
  - 63
  pip._vendor.pygments.formatters.get_all_formatters:
  - 45
  - 47
  - 48
  - 49
  - 50
  - 51
  - 52
  pip._vendor.pygments.formatters.get_formatter_by_name:
  - 81
  - 79
  - 78
  - 71
  pip._vendor.pygments.formatters.get_formatter_for_filename:
  - 128
  - 129
  - 130
  - 131
  - 132
  - 133
  - 134
  - 135
  - 136
  - 137
  - 120
  - 127
  pip._vendor.pygments.formatters.groff:
  - 1
  pip._vendor.pygments.formatters.groff.GroffFormatter:
  - 19
  pip._vendor.pygments.formatters.groff.GroffFormatter.__init__:
  - 46
  - 48
  - 49
  - 51
  - 55
  pip._vendor.pygments.formatters.groff.GroffFormatter._define_colors:
  - 82
  - 83
  - 84
  - 85
  - 87
  - 88
  pip._vendor.pygments.formatters.groff.GroffFormatter._escape_chars:
  - 128
  - 129
  - 133
  - 120
  - 127
  pip._vendor.pygments.formatters.groff.GroffFormatter._make_styles:
  - 65
  - 68
  - 71
  - 74
  - 63
  pip._vendor.pygments.formatters.groff.GroffFormatter._wrap_line:
  - 97
  - 101
  - 102
  - 106
  - 109
  pip._vendor.pygments.formatters.groff.GroffFormatter._write_lineno:
  - 93
  pip._vendor.pygments.formatters.groff.GroffFormatter.format_unencoded:
  - 160
  - 162
  - 163
  - 164
  - 167
  - 170
  - 139
  - 141
  - 143
  - 144
  - 146
  - 151
  - 152
  - 153
  - 155
  - 156
  - 157
  - 158
  pip._vendor.pygments.formatters.html:
  - 32
  - 1
  - 33
  - 34
  - 30
  - 31
  pip._vendor.pygments.formatters.html.HtmlFormatter:
  - 825
  - 114
  pip._vendor.pygments.formatters.html.HtmlFormatter.__init__:
  - 411
  - 412
  - 413
  - 414
  - 415
  - 416
  - 417
  - 418
  - 419
  - 420
  - 421
  - 422
  - 423
  - 424
  - 426
  - 428
  - 429
  - 432
  - 434
  - 435
  - 437
  - 442
  - 443
  - 444
  - 445
  - 446
  - 447
  - 448
  - 449
  - 450
  - 451
  - 453
  - 457
  pip._vendor.pygments.formatters.html.HtmlFormatter._create_stylesheet:
  - 486
  - 487
  - 489
  - 490
  - 491
  - 493
  - 495
  - 497
  - 498
  - 499
  - 500
  - 501
  - 505
  pip._vendor.pygments.formatters.html.HtmlFormatter._decodeifneeded:
  - 609
  - 610
  - 611
  - 612
  pip._vendor.pygments.formatters.html.HtmlFormatter._format_lines:
  - 898
  - 899
  - 904
  - 905
  - 906
  - 831
  - 841
  - 845
  - 846
  - 847
  - 848
  - 854
  - 855
  - 861
  - 863
  - 864
  - 865
  - 866
  - 867
  - 869
  - 877
  - 878
  - 881
  - 882
  - 885
  - 886
  - 888
  - 889
  - 891
  - 893
  - 894
  - 895
  pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_class:
  - 460
  - 462
  - 463
  pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_classes:
  - 472
  - 468
  - 469
  pip._vendor.pygments.formatters.html.HtmlFormatter._get_css_inline_styles:
  - 480
  - 476
  - 477
  pip._vendor.pygments.formatters.html.HtmlFormatter._highlight_lines:
  - 928
  - 931
  - 933
  - 935
  - 916
  - 922
  - 923
  - 924
  - 925
  - 926
  pip._vendor.pygments.formatters.html.HtmlFormatter._lookup_ctag:
  - 909
  - 910
  pip._vendor.pygments.formatters.html.HtmlFormatter._translate_parts:
  - 827
  - 828
  pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_code:
  - 821
  - 822
  - 823
  pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_div:
  - 800
  - 801
  - 791
  - 793
  - 794
  - 795
  - 796
  - 798
  pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_full:
  - 643
  - 644
  - 616
  - 617
  - 648
  - 649
  - 650
  - 653
  - 654
  - 623
  - 626
  - 629
  - 635
  - 636
  - 637
  pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_inlinelinenos:
  - 739
  - 744
  - 745
  - 750
  - 755
  - 726
  - 760
  - 761
  - 730
  - 764
  - 735
  pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_lineanchors:
  - 777
  - 771
  - 772
  - 775
  pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_linespans:
  - 785
  - 787
  - 782
  - 783
  pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_pre:
  - 805
  - 806
  - 807
  - 808
  - 809
  - 811
  - 812
  - 816
  - 817
  - 818
  pip._vendor.pygments.formatters.html.HtmlFormatter._wrap_tablelinenos:
  - 657
  - 659
  - 660
  - 662
  - 665
  - 674
  - 678
  - 680
  - 685
  - 686
  - 691
  - 696
  - 699
  - 701
  - 706
  - 715
  - 718
  - 719
  - 720
  - 721
  pip._vendor.pygments.formatters.html.HtmlFormatter.format_unencoded:
  - 953
  - 966
  - 970
  - 971
  - 973
  - 974
  - 976
  - 977
  - 978
  - 979
  - 980
  - 981
  - 982
  - 983
  - 984
  - 985
  - 986
  - 988
  - 989
  pip._vendor.pygments.formatters.html.HtmlFormatter.get_background_style_defs:
  - 545
  - 547
  - 549
  - 551
  - 554
  - 555
  - 556
  - 539
  pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix:
  - 578
  - 573
  - 575
  pip._vendor.pygments.formatters.html.HtmlFormatter.get_css_prefix.prefix:
  - 584
  - 585
  - 586
  - 581
  pip._vendor.pygments.formatters.html.HtmlFormatter.get_style_defs:
  - 515
  - 516
  - 517
  - 519
  - 508
  pip._vendor.pygments.formatters.html.HtmlFormatter.get_token_style_defs:
  - 529
  - 522
  - 532
  - 526
  pip._vendor.pygments.formatters.html.HtmlFormatter.wrap:
  - 946
  - 945
  - 938
  - 948
  pip._vendor.pygments.formatters.html._get_ttype_class:
  - 58
  - 51
  - 52
  pip._vendor.pygments.formatters.html.escape_html:
  - 40
  - 39
  pip._vendor.pygments.formatters.html.webify:
  - 44
  pip._vendor.pygments.formatters.img:
  - 1
  pip._vendor.pygments.formatters.img.BmpImageFormatter:
  - 635
  pip._vendor.pygments.formatters.img.FontManager:
  - 62
  pip._vendor.pygments.formatters.img.FontManager.__init__:
  - 71
  - 72
  - 74
  - 75
  - 76
  - 78
  - 80
  - 82
  pip._vendor.pygments.formatters.img.FontManager._create_mac:
  - 128
  - 129
  - 131
  - 132
  - 133
  - 134
  - 139
  - 140
  - 141
  - 142
  - 143
  - 124
  - 126
  - 127
  pip._vendor.pygments.formatters.img.FontManager._create_nix:
  - 99
  - 100
  - 101
  - 102
  - 107
  - 108
  - 109
  - 110
  - 111
  pip._vendor.pygments.formatters.img.FontManager._create_win:
  - 172
  - 174
  - 176
  - 177
  - 178
  - 179
  - 180
  - 181
  - 183
  - 191
  pip._vendor.pygments.formatters.img.FontManager._get_mac_font_path:
  - 120
  pip._vendor.pygments.formatters.img.FontManager._get_nix_font_path:
  - 85
  - 87
  - 88
  - 89
  - 90
  - 91
  - 93
  - 94
  pip._vendor.pygments.formatters.img.FontManager._lookup_win:
  - 152
  - 153
  - 156
  pip._vendor.pygments.formatters.img.FontManager.get_char_size:
  - 209
  - 206
  pip._vendor.pygments.formatters.img.FontManager.get_font:
  - 225
  - 227
  - 229
  - 222
  pip._vendor.pygments.formatters.img.FontManager.get_text_size:
  - 216
  - 217
  - 219
  - 212
  pip._vendor.pygments.formatters.img.FontNotFound:
  - 58
  pip._vendor.pygments.formatters.img.GifImageFormatter:
  - 607
  pip._vendor.pygments.formatters.img.ImageFormatter:
  - 236
  pip._vendor.pygments.formatters.img.ImageFormatter.__init__:
  - 385
  - 387
  - 388
  - 389
  - 391
  - 392
  - 393
  - 399
  - 400
  - 402
  - 405
  - 354
  - 357
  - 360
  - 363
  - 364
  - 369
  - 372
  - 373
  - 375
  - 376
  - 377
  - 379
  - 380
  - 381
  - 383
  pip._vendor.pygments.formatters.img.ImageFormatter._create_drawables:
  - 514
  - 515
  - 517
  - 518
  - 519
  - 520
  - 521
  - 523
  - 524
  - 525
  - 527
  - 529
  - 530
  - 531
  - 532
  - 502
  - 507
  pip._vendor.pygments.formatters.img.ImageFormatter._draw_line_numbers:
  - 545
  - 547
  - 549
  - 550
  - 542
  pip._vendor.pygments.formatters.img.ImageFormatter._draw_linenumber:
  - 483
  - 486
  - 487
  - 488
  - 489
  pip._vendor.pygments.formatters.img.ImageFormatter._draw_text:
  - 496
  - 499
  pip._vendor.pygments.formatters.img.ImageFormatter._get_char_width:
  - 426
  pip._vendor.pygments.formatters.img.ImageFormatter._get_char_x:
  - 432
  pip._vendor.pygments.formatters.img.ImageFormatter._get_image_size:
  - 480
  - 476
  - 479
  pip._vendor.pygments.formatters.img.ImageFormatter._get_line_height:
  - 414
  pip._vendor.pygments.formatters.img.ImageFormatter._get_line_y:
  - 420
  - 423
  pip._vendor.pygments.formatters.img.ImageFormatter._get_linenumber_pos:
  - 444
  - 447
  pip._vendor.pygments.formatters.img.ImageFormatter._get_style_font:
  - 473
  - 470
  pip._vendor.pygments.formatters.img.ImageFormatter._get_text_bg_color:
  - 460
  - 463
  pip._vendor.pygments.formatters.img.ImageFormatter._get_text_color:
  - 450
  - 453
  pip._vendor.pygments.formatters.img.ImageFormatter._get_text_pos:
  - 441
  - 438
  pip._vendor.pygments.formatters.img.ImageFormatter._paint_line_number_bg:
  - 553
  - 556
  - 558
  - 560
  - 563
  - 565
  - 566
  pip._vendor.pygments.formatters.img.ImageFormatter.format:
  - 577
  - 578
  - 579
  - 581
  - 584
  - 585
  - 587
  - 589
  - 591
  - 592
  - 593
  - 595
  - 596
  - 597
  - 598
  - 599
  - 600
  - 570
  pip._vendor.pygments.formatters.img.JpgImageFormatter:
  - 621
  pip._vendor.pygments.formatters.img.PilNotAvailable:
  - 54
  pip._vendor.pygments.formatters.irc:
  - 1
  pip._vendor.pygments.formatters.irc.IRCFormatter:
  - 98
  pip._vendor.pygments.formatters.irc.IRCFormatter.__init__:
  - 123
  - 124
  - 126
  - 127
  pip._vendor.pygments.formatters.irc.IRCFormatter._write_lineno:
  - 131
  - 133
  pip._vendor.pygments.formatters.irc.IRCFormatter.format_unencoded:
  - 136
  - 138
  - 139
  - 142
  - 143
  - 145
  - 146
  - 147
  - 148
  - 149
  - 150
  - 151
  - 152
  - 154
  pip._vendor.pygments.formatters.irc.ircformat:
  - 77
  - 80
  - 83
  - 84
  - 87
  - 90
  - 91
  pip._vendor.pygments.formatters.latex:
  - 1
  pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer:
  - 441
  pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.__init__:
  - 455
  pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._filter_to:
  - 489
  - 492
  - 493
  - 494
  - 495
  - 497
  - 499
  - 502
  - 503
  pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_escape_tokens:
  - 512
  - 513
  - 514
  - 515
  - 516
  - 517
  - 519
  - 520
  - 506
  - 509
  - 510
  - 511
  pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens:
  - 480
  - 482
  - 483
  - 484
  - 486
  - 477
  - 478
  - 479
  pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed:
  - 463
  - 464
  - 465
  - 466
  - 470
  - 471
  - 472
  - 473
  - 474
  pip._vendor.pygments.formatters.latex.LatexFormatter:
  - 148
  pip._vendor.pygments.formatters.latex.LatexFormatter.__init__:
  - 257
  - 258
  - 259
  - 260
  - 261
  - 262
  - 263
  - 264
  - 265
  - 266
  - 267
  - 268
  - 269
  - 270
  - 275
  - 277
  pip._vendor.pygments.formatters.latex.LatexFormatter._create_stylesheet:
  - 320
  - 291
  - 292
  - 294
  - 296
  - 298
  - 300
  - 302
  - 304
  - 306
  - 308
  - 309
  - 312
  - 313
  - 314
  - 317
  - 318
  pip._vendor.pygments.formatters.latex.LatexFormatter._create_stylesheet.rgbcolor:
  - 285
  - 286
  pip._vendor.pygments.formatters.latex.LatexFormatter.format_unencoded:
  - 387
  - 388
  - 389
  - 390
  - 391
  - 393
  - 395
  - 397
  - 398
  - 399
  - 403
  - 406
  - 408
  - 409
  - 410
  - 411
  - 412
  - 413
  - 414
  - 415
  - 416
  - 418
  - 420
  - 421
  - 423
  - 426
  - 430
  - 431
  - 432
  - 436
  - 437
  - 341
  - 343
  - 345
  - 346
  - 347
  - 349
  - 352
  - 353
  - 355
  - 356
  - 357
  - 359
  - 360
  - 361
  - 364
  - 365
  - 369
  - 370
  - 374
  - 376
  - 378
  - 379
  - 380
  - 382
  - 383
  pip._vendor.pygments.formatters.latex.LatexFormatter.get_style_defs:
  - 331
  - 332
  - 325
  - 334
  pip._vendor.pygments.formatters.latex._get_ttype_name:
  - 136
  - 137
  - 143
  pip._vendor.pygments.formatters.latex.escape_tex:
  - 23
  pip._vendor.pygments.formatters.load_formatter_from_file:
  - 102
  - 103
  - 105
  - 110
  - 85
  pip._vendor.pygments.formatters.other:
  - 1
  pip._vendor.pygments.formatters.other.NullFormatter:
  - 20
  pip._vendor.pygments.formatters.other.NullFormatter.format:
  - 33
  - 29
  - 30
  - 31
  pip._vendor.pygments.formatters.other.RawTokenFormatter:
  - 37
  pip._vendor.pygments.formatters.other.RawTokenFormatter.__init__:
  - 68
  - 70
  - 71
  - 73
  - 75
  - 63
  pip._vendor.pygments.formatters.other.RawTokenFormatter.format:
  - 106
  - 107
  - 109
  - 110
  - 112
  - 82
  - 114
  - 115
  - 116
  - 86
  - 88
  - 92
  - 94
  pip._vendor.pygments.formatters.other.RawTokenFormatter.format.flush:
  - 100
  - 101
  pip._vendor.pygments.formatters.other.RawTokenFormatter.format.write:
  - 97
  pip._vendor.pygments.formatters.other.TestcaseFormatter:
  - 131
  pip._vendor.pygments.formatters.other.TestcaseFormatter.__init__:
  - 140
  - 141
  pip._vendor.pygments.formatters.other.TestcaseFormatter.format:
  - 160
  - 161
  - 148
  - 149
  - 150
  - 152
  - 153
  - 155
  - 156
  - 158
  - 159
  pip._vendor.pygments.formatters.pangomarkup:
  - 1
  - 18
  - 19
  pip._vendor.pygments.formatters.pangomarkup.PangoMarkupFormatter:
  - 29
  pip._vendor.pygments.formatters.pangomarkup.PangoMarkupFormatter.__init__:
  - 40
  - 44
  - 47
  - 50
  - 53
  - 56
  pip._vendor.pygments.formatters.pangomarkup.PangoMarkupFormatter.format_unencoded:
  - 65
  - 67
  - 70
  - 71
  - 73
  - 75
  - 76
  - 79
  - 81
  - 83
  pip._vendor.pygments.formatters.pangomarkup.escape_special_chars:
  - 24
  - 25
  pip._vendor.pygments.formatters.rtf:
  - 1
  pip._vendor.pygments.formatters.rtf.RtfFormatter:
  - 19
  pip._vendor.pygments.formatters.rtf.RtfFormatter.__init__:
  - 64
  - 51
  - 62
  - 63
  pip._vendor.pygments.formatters.rtf.RtfFormatter._escape:
  - 67
  pip._vendor.pygments.formatters.rtf.RtfFormatter._escape_text:
  - 73
  - 77
  - 80
  - 81
  - 82
  - 84
  - 85
  - 87
  - 88
  - 91
  - 93
  pip._vendor.pygments.formatters.rtf.RtfFormatter.format_unencoded:
  - 128
  - 129
  - 130
  - 131
  - 132
  - 133
  - 134
  - 135
  - 136
  - 137
  - 139
  - 140
  - 141
  - 142
  - 143
  - 144
  - 146
  - 97
  - 100
  - 106
  - 107
  - 108
  - 110
  - 111
  - 112
  - 113
  - 116
  - 117
  - 118
  - 121
  - 122
  - 124
  - 126
  - 127
  pip._vendor.pygments.formatters.svg:
  - 1
  pip._vendor.pygments.formatters.svg.SvgFormatter:
  - 30
  pip._vendor.pygments.formatters.svg.SvgFormatter.__init__:
  - 96
  - 97
  - 98
  - 99
  - 100
  - 102
  - 105
  - 106
  - 107
  - 108
  - 109
  - 110
  - 111
  - 94
  - 95
  pip._vendor.pygments.formatters.svg.SvgFormatter._get_style:
  - 174
  - 177
  - 179
  - 181
  - 183
  - 185
  pip._vendor.pygments.formatters.svg.SvgFormatter.format_unencoded:
  - 128
  - 129
  - 132
  - 133
  - 138
  - 141
  - 142
  - 143
  - 148
  - 149
  - 150
  - 153
  - 154
  - 155
  - 156
  - 157
  - 158
  - 160
  - 161
  - 162
  - 166
  - 167
  - 168
  - 170
  - 171
  - 115
  - 123
  - 124
  - 125
  pip._vendor.pygments.formatters.svg.escape_html:
  - 19
  - 20
  pip._vendor.pygments.formatters.terminal:
  - 1
  pip._vendor.pygments.formatters.terminal.TerminalFormatter:
  - 57
  pip._vendor.pygments.formatters.terminal.TerminalFormatter.__init__:
  - 88
  - 84
  - 85
  - 87
  pip._vendor.pygments.formatters.terminal.TerminalFormatter._get_color:
  - 105
  - 102
  pip._vendor.pygments.formatters.terminal.TerminalFormatter._write_lineno:
  - 96
  pip._vendor.pygments.formatters.terminal.TerminalFormatter.format:
  - 92
  pip._vendor.pygments.formatters.terminal.TerminalFormatter.format_unencoded:
  - 109
  - 110
  - 112
  - 113
  - 115
  - 116
  - 117
  - 119
  - 120
  - 121
  - 122
  - 124
  - 126
  - 127
  pip._vendor.pygments.formatters.terminal256:
  - 1
  pip._vendor.pygments.formatters.terminal256.EscapeSequence.color_string:
  - 64
  - 65
  - 66
  - 67
  - 68
  - 69
  - 70
  - 71
  - 49
  - 50
  - 51
  - 52
  - 55
  - 57
  - 58
  - 59
  - 60
  - 62
  pip._vendor.pygments.formatters.terminal256.EscapeSequence.escape:
  - 43
  - 44
  pip._vendor.pygments.formatters.terminal256.EscapeSequence.reset_string:
  - 89
  - 90
  - 91
  - 92
  - 93
  - 94
  - 95
  pip._vendor.pygments.formatters.terminal256.EscapeSequence.true_color_string:
  - 75
  - 76
  - 77
  - 78
  - 79
  - 80
  - 81
  - 82
  - 83
  - 84
  - 85
  pip._vendor.pygments.formatters.terminal256.Terminal256Formatter:
  - 99
  pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.__init__:
  - 136
  - 146
  - 147
  - 149
  pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._build_color_table:
  - 155
  - 156
  - 157
  - 158
  - 159
  - 160
  - 161
  - 162
  - 163
  - 164
  - 165
  - 166
  - 167
  - 168
  - 169
  - 170
  - 176
  - 180
  - 184
  - 186
  pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._closest_color:
  - 192
  - 200
  pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._color_index:
  - 206
  - 207
  - 211
  - 213
  - 220
  pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._setup_styles:
  - 225
  - 226
  - 228
  - 229
  - 230
  - 231
  - 232
  - 233
  - 234
  - 235
  - 236
  - 238
  - 240
  - 242
  - 243
  pip._vendor.pygments.formatters.terminal256.Terminal256Formatter._write_lineno:
  - 247
  pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format:
  - 250
  pip._vendor.pygments.formatters.terminal256.Terminal256Formatter.format_unencoded:
  - 256
  - 288
  - 289
  - 261
  - 265
  - 266
  - 267
  - 268
  - 269
  - 270
  - 272
  - 274
  - 275
  - 285
  - 253
  - 254
  - 286
  pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter:
  - 294
  pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._color_tuple:
  - 316
  pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter._setup_styles:
  - 325
  - 326
  - 327
  - 328
  - 329
  - 330
  - 331
  - 333
  - 335
  - 337
  - 338
  pip._vendor.pygments.highlight:
  - 82
  - 78
  pip._vendor.pygments.lex:
  - 42
  - 36
  - 46
  pip._vendor.pygments.lexer:
  - 1
  - 34
  - 322
  - 397
  - 26
  pip._vendor.pygments.lexer.DelegatingLexer:
  - 270
  pip._vendor.pygments.lexer.DelegatingLexer.__init__:
  - 280
  - 281
  - 283
  pip._vendor.pygments.lexer.DelegatingLexer.get_tokens_unprocessed:
  - 289
  - 290
  - 291
  - 292
  - 296
  - 297
  - 298
  - 299
  - 300
  pip._vendor.pygments.lexer.ExtendedRegexLexer:
  - 760
  pip._vendor.pygments.lexer.ExtendedRegexLexer.get_tokens_unprocessed:
  - 770
  - 771
  - 778
  - 779
  - 780
  - 781
  - 782
  - 783
  - 784
  - 786
  - 787
  - 791
  - 793
  - 794
  - 795
  - 796
  - 797
  - 798
  - 799
  - 801
  - 802
  - 804
  - 808
  - 809
  - 765
  pip._vendor.pygments.lexer.Lexer:
  - 50
  pip._vendor.pygments.lexer.Lexer.__init__:
  - 132
  - 151
  - 152
  - 153
  - 154
  - 155
  - 156
  - 158
  - 159
  pip._vendor.pygments.lexer.Lexer.__repr__:
  - 162
  pip._vendor.pygments.lexer.Lexer.add_filter:
  - 169
  - 172
  - 173
  - 174
  pip._vendor.pygments.lexer.Lexer.analyse_text:
  - 177
  pip._vendor.pygments.lexer.Lexer.get_tokens:
  - 194
  - 207
  - 208
  - 209
  - 210
  - 219
  - 220
  - 221
  - 224
  - 225
  - 226
  - 230
  - 231
  - 232
  - 234
  - 235
  - 238
  - 239
  - 240
  - 241
  - 242
  - 243
  - 244
  - 245
  - 246
  - 252
  - 253
  - 254
  pip._vendor.pygments.lexer.Lexer.get_tokens.streamer:
  - 250
  - 251
  pip._vendor.pygments.lexer.Lexer.get_tokens_unprocessed:
  - 258
  pip._vendor.pygments.lexer.LexerContext:
  - 744
  pip._vendor.pygments.lexer.LexerContext.__init__:
  - 751
  pip._vendor.pygments.lexer.LexerMeta:
  - 38
  pip._vendor.pygments.lexer.LexerMeta.__new__:
  - 44
  - 45
  - 46
  pip._vendor.pygments.lexer.ProfilingRegexLexer:
  - 918
  pip._vendor.pygments.lexer.ProfilingRegexLexer.get_tokens_unprocessed:
  - 928
  - 930
  - 931
  - 933
  - 935
  - 936
  - 937
  - 938
  - 939
  - 940
  - 941
  - 942
  - 943
  - 925
  - 926
  - 927
  pip._vendor.pygments.lexer.ProfilingRegexLexerMeta:
  - 896
  pip._vendor.pygments.lexer.ProfilingRegexLexerMeta._process_regex:
  - 904
  - 899
  - 900
  pip._vendor.pygments.lexer.ProfilingRegexLexerMeta._process_regex.match_func:
  - 907
  - 908
  - 909
  - 910
  pip._vendor.pygments.lexer.RegexLexer:
  - 647
  pip._vendor.pygments.lexer.RegexLexer.get_tokens_unprocessed:
  - 682
  - 689
  - 692
  - 693
  - 694
  - 695
  - 696
  - 697
  - 699
  - 700
  - 701
  - 703
  - 704
  - 705
  - 706
  - 707
  - 708
  - 709
  - 711
  - 712
  - 716
  - 720
  - 721
  pip._vendor.pygments.lexer.RegexLexerMeta:
  - 479
  pip._vendor.pygments.lexer.RegexLexerMeta.__call__:
  - 641
  - 643
  - 633
  - 634
  - 637
  pip._vendor.pygments.lexer.RegexLexerMeta._process_new_state:
  - 515
  - 517
  - 521
  - 523
  - 497
  - 498
  - 500
  - 502
  - 504
  - 506
  - 507
  - 510
  pip._vendor.pygments.lexer.RegexLexerMeta._process_regex:
  - 488
  - 485
  - 486
  - 487
  pip._vendor.pygments.lexer.RegexLexerMeta._process_state:
  - 544
  - 546
  - 551
  - 552
  - 553
  - 556
  - 559
  - 532
  - 533
  - 564
  - 535
  - 566
  - 569
  - 539
  - 540
  - 572
  - 543
  pip._vendor.pygments.lexer.RegexLexerMeta._process_token:
  - 491
  - 492
  pip._vendor.pygments.lexer.RegexLexerMeta.get_tokendefs:
  - 609
  - 615
  - 584
  - 616
  - 624
  - 597
  - 598
  - 600
  - 601
  - 602
  pip._vendor.pygments.lexer.RegexLexerMeta.process_tokendef:
  - 576
  - 579
  - 580
  pip._vendor.pygments.lexer._PseudoMatch:
  - 339
  pip._vendor.pygments.lexer._PseudoMatch.end:
  - 351
  pip._vendor.pygments.lexer._PseudoMatch.group:
  - 354
  pip._vendor.pygments.lexer._This:
  - 392
  pip._vendor.pygments.lexer._inherit:
  - 316
  pip._vendor.pygments.lexer.bygroups:
  - 366
  pip._vendor.pygments.lexer.bygroups.callback:
  - 384
  - 385
  - 386
  - 387
  - 370
  - 371
  - 373
  - 374
  - 375
  - 376
  - 378
  - 379
  - 380
  - 381
  - 382
  - 383
  pip._vendor.pygments.lexer.combined:
  - 326
  pip._vendor.pygments.lexer.combined.__new__:
  - 331
  pip._vendor.pygments.lexer.default:
  - 451
  pip._vendor.pygments.lexer.do_insertions:
  - 832
  - 845
  - 847
  - 850
  - 858
  - 860
  - 863
  - 865
  - 866
  - 867
  - 868
  - 869
  - 870
  - 873
  - 877
  - 878
  - 879
  - 885
  - 886
  - 887
  - 889
  pip._vendor.pygments.lexer.include:
  - 309
  pip._vendor.pygments.lexer.using:
  - 416
  - 421
  - 401
  - 414
  - 415
  pip._vendor.pygments.lexer.using.callback:
  - 425
  - 427
  - 428
  - 431
  - 432
  - 433
  - 434
  - 435
  - 439
  - 440
  - 442
  - 443
  - 444
  - 445
  - 446
  pip._vendor.pygments.lexer.words:
  - 463
  pip._vendor.pygments.lexer.words.get:
  - 475
  pip._vendor.pygments.lexers:
  - 360
  - 1
  - 28
  - 359
  pip._vendor.pygments.lexers._automodule:
  - 344
  pip._vendor.pygments.lexers._automodule.__getattr__:
  - 353
  - 354
  - 347
  - 348
  - 349
  - 351
  pip._vendor.pygments.lexers._fn_matches:
  - 35
  - 36
  - 37
  - 38
  - 39
  pip._vendor.pygments.lexers._iter_lexerclasses:
  - 256
  - 257
  - 258
  - 251
  - 252
  - 254
  - 255
  pip._vendor.pygments.lexers._load_lexers:
  - 43
  - 44
  - 45
  - 46
  pip._vendor.pygments.lexers.find_lexer_class:
  - 65
  - 69
  - 72
  - 73
  - 74
  - 77
  - 78
  pip._vendor.pygments.lexers.find_lexer_class_by_name:
  - 97
  - 98
  - 99
  - 100
  - 103
  - 104
  - 83
  - 94
  pip._vendor.pygments.lexers.find_lexer_class_for_filename:
  - 192
  - 170
  - 206
  - 207
  - 178
  - 179
  - 180
  - 181
  - 182
  - 183
  - 184
  - 185
  - 186
  - 187
  - 188
  - 190
  pip._vendor.pygments.lexers.find_lexer_class_for_filename.get_rating:
  - 202
  - 203
  pip._vendor.pygments.lexers.get_all_lexers:
  - 51
  - 57
  - 58
  - 59
  - 60
  - 61
  pip._vendor.pygments.lexers.get_lexer_by_name:
  - 128
  - 129
  - 130
  - 110
  - 118
  - 122
  - 123
  - 124
  - 125
  - 126
  pip._vendor.pygments.lexers.get_lexer_for_filename:
  - 225
  - 226
  - 228
  - 213
  pip._vendor.pygments.lexers.get_lexer_for_mimetype:
  - 232
  - 239
  - 240
  - 241
  - 242
  - 243
  - 244
  - 245
  - 246
  pip._vendor.pygments.lexers.guess_lexer:
  - 320
  - 323
  - 325
  - 327
  - 332
  - 333
  - 334
  - 335
  - 336
  - 305
  - 338
  - 340
  - 315
  - 316
  - 317
  - 318
  pip._vendor.pygments.lexers.guess_lexer_for_filename:
  - 262
  - 269
  - 271
  - 272
  - 273
  - 274
  - 275
  - 277
  - 278
  - 279
  - 281
  - 283
  - 284
  - 286
  - 287
  - 288
  - 289
  - 290
  - 299
  - 301
  pip._vendor.pygments.lexers.load_lexer_from_file:
  - 160
  - 135
  - 152
  - 153
  - 155
  pip._vendor.pygments.lexers.python:
  - 1
  pip._vendor.pygments.lexers.python.CythonLexer:
  - 902
  - 940
  - 942
  - 826
  - 954
  - 956
  - 957
  - 960
  - 963
  - 841
  - 842
  - 850
  - 853
  - 855
  - 856
  - 857
  - 985
  - 859
  - 860
  - 861
  - 862
  - 863
  - 864
  - 990
  - 994
  - 995
  - 869
  - 870
  - 871
  - 872
  - 873
  - 874
  - 999
  - 1000
  - 877
  - 886
  pip._vendor.pygments.lexers.python.DgLexer:
  - 1030
  - 1031
  - 1032
  - 1033
  - 1006
  - 1039
  - 1046
  pip._vendor.pygments.lexers.python.NumPyLexer:
  - 1105
  pip._vendor.pygments.lexers.python.NumPyLexer.analyse_text:
  - 1196
  pip._vendor.pygments.lexers.python.NumPyLexer.get_tokens_unprocessed:
  - 1187
  - 1188
  - 1189
  - 1190
  - 1192
  pip._vendor.pygments.lexers.python.Python2Lexer:
  - 516
  - 534
  - 418
  - 556
  - 450
  - 452
  - 581
  - 583
  - 461
  - 462
  - 463
  - 464
  - 593
  - 466
  - 468
  - 469
  - 470
  - 471
  - 473
  - 475
  - 477
  - 605
  - 479
  - 480
  - 481
  - 482
  - 483
  - 484
  - 485
  - 486
  - 487
  - 488
  - 489
  - 611
  - 612
  - 492
  - 616
  - 621
  - 625
  - 500
  - 630
  pip._vendor.pygments.lexers.python.Python2Lexer.analyse_text:
  - 636
  pip._vendor.pygments.lexers.python.Python2TracebackLexer:
  - 805
  - 807
  - 809
  - 778
  - 811
  - 813
  - 815
  - 819
  - 820
  - 798
  pip._vendor.pygments.lexers.python.PythonConsoleLexer:
  - 675
  pip._vendor.pygments.lexers.python.PythonConsoleLexer.__init__:
  - 704
  - 718
  - 703
  pip._vendor.pygments.lexers.python.PythonConsoleLexer.__init__._ReplaceInnerCode.__init__:
  - 717
  pip._vendor.pygments.lexers.python.PythonLexer:
  - 27
  - 105
  - 107
  - 112
  - 113
  - 114
  - 115
  - 116
  - 118
  - 120
  - 125
  - 126
  - 128
  - 129
  - 131
  - 132
  - 134
  - 135
  - 137
  - 138
  - 139
  - 140
  - 141
  - 142
  - 143
  - 144
  - 147
  - 149
  - 151
  - 153
  - 155
  - 156
  - 157
  - 158
  - 159
  - 160
  - 161
  - 162
  - 164
  - 165
  - 166
  - 167
  - 168
  - 169
  - 170
  - 171
  - 174
  - 178
  - 179
  - 180
  - 181
  - 182
  - 196
  - 202
  - 206
  - 210
  - 213
  - 219
  - 227
  - 228
  - 232
  - 233
  - 236
  - 249
  - 277
  - 302
  - 325
  - 327
  - 333
  - 336
  - 337
  - 340
  - 346
  - 353
  - 354
  - 361
  - 363
  - 364
  - 365
  - 366
  - 370
  - 375
  - 380
  - 385
  - 389
  - 394
  - 399
  - 404
  pip._vendor.pygments.lexers.python.PythonLexer.analyse_text:
  - 410
  pip._vendor.pygments.lexers.python.PythonTracebackLexer:
  - 769
  - 749
  - 751
  - 721
  - 753
  - 755
  - 757
  - 759
  - 760
  - 767
  pip._vendor.pygments.lexers.python._PythonConsoleLexerBase:
  - 643
  - 650
  - 653
  - 660
  - 662
  - 663
  - 669
  pip._vendor.pygments.modeline:
  - 16
  - 1
  pip._vendor.pygments.modeline.get_filetype_from_buffer:
  - 32
  - 33
  - 34
  - 35
  - 37
  - 38
  - 39
  - 40
  - 29
  pip._vendor.pygments.modeline.get_filetype_from_line:
  - 24
  - 25
  - 23
  pip._vendor.pygments.plugin:
  - 1
  pip._vendor.pygments.plugin.find_plugin_filters:
  - 88
  - 87
  pip._vendor.pygments.plugin.find_plugin_formatters:
  - 77
  - 78
  pip._vendor.pygments.plugin.find_plugin_lexers:
  - 72
  - 73
  pip._vendor.pygments.plugin.find_plugin_styles:
  - 82
  - 83
  pip._vendor.pygments.plugin.iter_entry_points:
  - 64
  - 68
  - 59
  - 60
  - 61
  pip._vendor.pygments.regexopt:
  - 1
  - 18
  - 19
  pip._vendor.pygments.regexopt.make_charset:
  - 23
  pip._vendor.pygments.regexopt.make_charset.<lambda1>:
  - 23
  pip._vendor.pygments.regexopt.regex_opt:
  - 91
  - 90
  - 83
  pip._vendor.pygments.regexopt.regex_opt_inner:
  - 27
  - 30
  - 34
  - 36
  - 37
  - 39
  - 41
  - 45
  - 46
  - 47
  - 49
  - 50
  - 51
  - 53
  - 54
  - 56
  - 57
  - 58
  - 59
  - 62
  - 63
  - 67
  - 68
  - 69
  - 72
  - 73
  - 77
  - 78
  pip._vendor.pygments.scanner:
  - 1
  pip._vendor.pygments.scanner.EndOfText:
  - 21
  pip._vendor.pygments.scanner.Scanner:
  - 28
  - 52
  pip._vendor.pygments.scanner.Scanner.__init__:
  - 41
  - 36
  pip._vendor.pygments.scanner.Scanner.check:
  - 64
  - 55
  - 60
  - 62
  - 63
  pip._vendor.pygments.scanner.Scanner.eos:
  - 50
  pip._vendor.pygments.scanner.Scanner.get_char:
  - 96
  - 97
  pip._vendor.pygments.scanner.Scanner.scan:
  - 73
  - 82
  - 84
  - 85
  - 87
  - 88
  - 90
  - 91
  - 92
  pip._vendor.pygments.scanner.Scanner.test:
  - 67
  - 70
  pip._vendor.pygments.sphinxext:
  - 1
  pip._vendor.pygments.sphinxext.PygmentsDoc:
  - 59
  pip._vendor.pygments.sphinxext.PygmentsDoc.document_filters:
  - 207
  - 208
  - 210
  - 211
  - 212
  - 213
  pip._vendor.pygments.sphinxext.PygmentsDoc.document_formatters:
  - 192
  - 193
  - 195
  - 196
  - 198
  - 199
  - 201
  - 189
  - 191
  pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers:
  - 153
  - 155
  - 156
  - 157
  - 158
  - 159
  - 161
  - 162
  - 163
  - 165
  - 166
  - 167
  - 169
  - 171
  - 172
  - 175
  - 176
  - 178
  - 179
  - 180
  - 181
  - 183
  pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview:
  - 135
  - 104
  - 105
  - 136
  - 137
  - 108
  - 138
  - 139
  - 144
  - 146
  - 116
  - 89
  pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.<lambda1>:
  - 104
  pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.format_link:
  - 100
  pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.write_row:
  - 128
  - 120
  - 122
  - 123
  - 124
  - 126
  pip._vendor.pygments.sphinxext.PygmentsDoc.document_lexers_overview.write_seperator:
  - 131
  - 133
  pip._vendor.pygments.sphinxext.PygmentsDoc.run:
  - 70
  - 71
  - 72
  - 73
  - 74
  - 75
  - 76
  - 77
  - 78
  - 81
  - 82
  - 83
  - 84
  - 85
  pip._vendor.pygments.sphinxext.setup:
  - 217
  pip._vendor.pygments.style:
  - 1
  - 55
  pip._vendor.pygments.style.StyleMeta.__iter__:
  - 163
  - 164
  pip._vendor.pygments.style.StyleMeta.__len__:
  - 167
  pip._vendor.pygments.style.StyleMeta.__new__:
  - 61
  - 62
  - 63
  - 83
  - 84
  - 85
  - 87
  - 88
  - 89
  - 91
  - 96
  - 97
  - 99
  - 101
  - 103
  - 105
  - 107
  - 109
  - 111
  - 112
  - 113
  - 114
  - 115
  - 117
  - 119
  - 122
  pip._vendor.pygments.style.StyleMeta.__new__.colorformat:
  - 67
  - 69
  - 71
  - 73
  - 75
  - 77
  pip._vendor.pygments.style.StyleMeta.list_styles:
  - 157
  pip._vendor.pygments.style.StyleMeta.style_for_token:
  - 130
  - 132
  - 136
  - 138
  - 144
  - 145
  - 146
  - 149
  - 150
  - 151
  pip._vendor.pygments.styles:
  - 1
  pip._vendor.pygments.styles.get_all_styles:
  - 100
  - 101
  - 102
  - 103
  pip._vendor.pygments.styles.get_style_by_name:
  - 69
  - 76
  - 77
  - 80
  - 81
  - 86
  - 89
  - 94
  pip._vendor.pygments.token:
  - 1
  - 55
  pip._vendor.pygments.token._TokenType.__contains__:
  - 30
  - 31
  pip._vendor.pygments.token._TokenType.__getattr__:
  - 35
  - 36
  - 37
  - 38
  - 39
  pip._vendor.pygments.token._TokenType.__init__:
  - 26
  pip._vendor.pygments.token._TokenType.__repr__:
  - 44
  pip._vendor.pygments.token._TokenType.split:
  - 19
  - 21
  pip._vendor.pygments.token.is_token_subtype:
  - 86
  pip._vendor.pygments.token.string_to_tokentype:
  - 110
  - 112
  - 115
  - 116
  - 95
  pip._vendor.pygments.unistring:
  - 128
  - 1
  - 131
  - 134
  - 135
  - 136
  - 137
  - 139
  - 140
  - 142
  - 143
  - 144
  - 146
  - 147
  - 148
  - 149
  - 151
  - 153
  - 110
  - 115
  - 116
  - 118
  - 119
  - 121
  - 122
  - 123
  - 124
  pip._vendor.pygments.unistring._handle_runs:
  - 96
  - 97
  - 100
  - 102
  - 103
  - 104
  - 105
  - 107
  - 95
  pip._vendor.pygments.unistring.allexcept:
  - 88
  - 89
  - 90
  pip._vendor.pygments.unistring.combine:
  - 83
  pip._vendor.pygments.util:
  - 1
  - 15
  - 16
  - 25
  - 27
  pip._vendor.pygments.util.ClassNotFound:
  - 31
  pip._vendor.pygments.util.Future:
  - 272
  pip._vendor.pygments.util.OptionError:
  - 35
  pip._vendor.pygments.util.UnclosingTextIOWrapper.close:
  - 330
  pip._vendor.pygments.util.docstring_headline:
  - 117
  - 120
  - 121
  - 122
  - 125
  pip._vendor.pygments.util.doctype_matches:
  - 196
  - 197
  - 199
  - 200
  - 191
  pip._vendor.pygments.util.duplicates_removed:
  - 256
  - 262
  - 263
  - 264
  - 266
  - 267
  pip._vendor.pygments.util.format_lines:
  - 237
  - 241
  - 242
  - 244
  - 245
  - 247
  - 249
  - 250
  - 251
  - 252
  pip._vendor.pygments.util.get_bool_opt:
  - 66
  - 67
  - 69
  - 70
  - 71
  - 75
  - 77
  - 55
  pip._vendor.pygments.util.get_choice_opt:
  - 41
  - 45
  - 46
  - 47
  - 48
  pip._vendor.pygments.util.get_int_opt:
  - 89
  - 86
  - 87
  pip._vendor.pygments.util.get_list_opt:
  - 100
  - 105
  - 106
  - 107
  - 108
  - 109
  pip._vendor.pygments.util.guess_decode:
  - 289
  - 294
  - 295
  - 298
  - 282
  pip._vendor.pygments.util.guess_decode_from_terminal:
  - 311
  - 316
  - 309
  - 303
  pip._vendor.pygments.util.html_doctype_matches:
  - 204
  - 205
  pip._vendor.pygments.util.looks_like_xml:
  - 212
  - 213
  - 215
  - 219
  - 220
  - 222
  pip._vendor.pygments.util.make_analysator:
  - 129
  - 142
  pip._vendor.pygments.util.make_analysator.text_analyse:
  - 138
  - 132
  - 135
  pip._vendor.pygments.util.shebang_matches:
  - 173
  - 174
  - 175
  - 177
  - 146
  - 178
  - 180
  - 181
  - 184
  - 185
  pip._vendor.pygments.util.surrogatepair:
  - 228
  pip._vendor.pygments.util.terminal_encoding:
  - 320
  - 321
  - 324
  pip._vendor.pyparsing:
  - 123
  - 147
  - 149
  - 151
  pip._vendor.pyparsing.actions:
  - 202
  - 205
  - 208
  - 211
  - 214
  - 157
  pip._vendor.pyparsing.actions.OnlyOnce:
  - 8
  pip._vendor.pyparsing.actions.OnlyOnce.__call__:
  - 19
  - 20
  pip._vendor.pyparsing.actions.OnlyOnce.__init__:
  - 15
  pip._vendor.pyparsing.actions.OnlyOnce.reset:
  - 26
  pip._vendor.pyparsing.actions.matchOnlyAtCol:
  - 215
  pip._vendor.pyparsing.actions.match_only_at_col:
  - 34
  pip._vendor.pyparsing.actions.match_only_at_col.verify_col:
  - 40
  pip._vendor.pyparsing.actions.removeQuotes:
  - 206
  pip._vendor.pyparsing.actions.remove_quotes:
  - 64
  pip._vendor.pyparsing.actions.replaceWith:
  - 203
  pip._vendor.pyparsing.actions.replace_with:
  - 60
  - 47
  pip._vendor.pyparsing.actions.withAttribute:
  - 209
  pip._vendor.pyparsing.actions.withClass:
  - 212
  pip._vendor.pyparsing.actions.with_attribute:
  - 81
  - 137
  - 140
  pip._vendor.pyparsing.actions.with_attribute.pa:
  - 144
  - 145
  - 147
  pip._vendor.pyparsing.actions.with_class:
  - 161
  - 197
  pip._vendor.pyparsing.common:
  - 431
  pip._vendor.pyparsing.common.pyparsing_common:
  - 9
  - 154
  - 155
  - 410
  - 159
  - 160
  - 415
  - 417
  - 419
  - 164
  - 165
  - 421
  - 423
  - 168
  - 425
  - 170
  - 427
  - 173
  - 177
  - 306
  - 179
  - 180
  - 309
  - 182
  - 311
  - 184
  - 185
  - 314
  - 187
  - 188
  - 316
  - 190
  - 191
  - 317
  - 319
  - 194
  - 198
  - 201
  - 205
  - 209
  - 210
  - 340
  - 213
  - 341
  - 342
  - 343
  - 217
  - 344
  - 219
  - 220
  - 345
  - 222
  - 351
  - 352
  - 225
  - 354
  - 227
  - 228
  - 356
  - 357
  - 231
  - 232
  - 359
  - 234
  - 360
  - 236
  - 237
  - 363
  - 239
  - 240
  - 241
  - 245
  - 247
  - 250
  pip._vendor.pyparsing.common.pyparsing_common.<lambda2>:
  - 237
  pip._vendor.pyparsing.common.pyparsing_common.<lambda3>:
  - 356
  pip._vendor.pyparsing.common.pyparsing_common.<lambda4>:
  - 359
  pip._vendor.pyparsing.common.pyparsing_common.convert_to_date:
  - 254
  pip._vendor.pyparsing.common.pyparsing_common.convert_to_date.cvt_fn:
  - 273
  pip._vendor.pyparsing.common.pyparsing_common.convert_to_datetime:
  - 281
  pip._vendor.pyparsing.common.pyparsing_common.convert_to_datetime.cvt_fn:
  - 300
  pip._vendor.pyparsing.common.pyparsing_common.strip_html_tags:
  - 337
  - 323
  pip._vendor.pyparsing.core:
  - 264
  - 6049
  - 6050
  - 5925
  - 5926
  - 5927
  - 5928
  - 5929
  - 6053
  - 5931
  - 5932
  - 6054
  - 5934
  - 5935
  - 6057
  - 5937
  - 5938
  - 6058
  - 6061
  - 5941
  - 6066
  - 5943
  - 6067
  - 5945
  - 5946
  - 5947
  - 5948
  - 6070
  - 6071
  - 6073
  - 6076
  - 6081
  - 6084
  - 6085
  - 6090
  - 80
  - 214
  - 215
  - 6104
  - 217
  - 6107
  - 6110
  - 6113
  pip._vendor.pyparsing.core.<lambda2>:
  - 5935
  pip._vendor.pyparsing.core.<lambda3>:
  - 5938
  pip._vendor.pyparsing.core.And:
  - 3902
  pip._vendor.pyparsing.core.And._ErrorStop.__init__:
  - 3921
  - 3922
  pip._vendor.pyparsing.core.And.__iadd__:
  - 4043
  - 4044
  - 4045
  - 4047
  pip._vendor.pyparsing.core.And.__init__:
  - 3936
  - 3937
  - 3939
  - 3945
  - 3947
  - 3948
  - 3949
  - 3950
  - 3951
  - 3930
  - 3931
  - 3933
  - 3934
  - 3935
  pip._vendor.pyparsing.core.And._checkRecursion:
  - 4051
  - 4052
  - 4053
  pip._vendor.pyparsing.core.And._generateDefaultName:
  - 4057
  - 4059
  pip._vendor.pyparsing.core.And.parseImpl:
  - 4038
  - 4016
  - 4020
  - 4022
  - 4025
  - 4027
  pip._vendor.pyparsing.core.And.streamline:
  - 3968
  - 3971
  - 3972
  - 3973
  - 3975
  - 3976
  - 3978
  - 3984
  - 3989
  - 3992
  - 3994
  - 3996
  - 3997
  - 3998
  - 3999
  - 4004
  - 4005
  - 4006
  - 4008
  - 4010
  - 3964
  - 3965
  - 3966
  pip._vendor.pyparsing.core.And.streamline.<lambda1>:
  - 4000
  - 3999
  pip._vendor.pyparsing.core.AtLineStart:
  - 4710
  pip._vendor.pyparsing.core.AtLineStart.__init__:
  - 4733
  pip._vendor.pyparsing.core.AtLineStart.parseImpl:
  - 4737
  - 4739
  pip._vendor.pyparsing.core.AtStringStart:
  - 4689
  pip._vendor.pyparsing.core.AtStringStart.__init__:
  - 4700
  pip._vendor.pyparsing.core.AtStringStart.parseImpl:
  - 4704
  - 4706
  pip._vendor.pyparsing.core.CaselessKeyword:
  - 2625
  pip._vendor.pyparsing.core.CaselessKeyword.__init__:
  - 2646
  pip._vendor.pyparsing.core.CaselessLiteral:
  - 2598
  pip._vendor.pyparsing.core.CaselessLiteral.__init__:
  - 2613
  pip._vendor.pyparsing.core.CaselessLiteral.parseImpl:
  - 2619
  pip._vendor.pyparsing.core.Char:
  - 2992
  pip._vendor.pyparsing.core.Char.__init__:
  - 3008
  pip._vendor.pyparsing.core.CharsNotIn:
  - 3374
  pip._vendor.pyparsing.core.CharsNotIn.__init__:
  - 3403
  - 3406
  - 3408
  - 3416
  - 3421
  pip._vendor.pyparsing.core.CharsNotIn._generateDefaultName:
  - 3430
  - 3431
  pip._vendor.pyparsing.core.CharsNotIn.parseImpl:
  - 3443
  - 3438
  - 3447
  pip._vendor.pyparsing.core.CloseMatch:
  - 2650
  pip._vendor.pyparsing.core.CloseMatch.__init__:
  - 2693
  pip._vendor.pyparsing.core.CloseMatch._generateDefaultName:
  - 2702
  pip._vendor.pyparsing.core.CloseMatch.parseImpl:
  - 2720
  - 2722
  - 2723
  - 2724
  - 2706
  - 2707
  - 2709
  - 2715
  - 2716
  - 2719
  pip._vendor.pyparsing.core.Combine:
  - 5644
  pip._vendor.pyparsing.core.Combine.__init__:
  - 5673
  - 5674
  - 5670
  pip._vendor.pyparsing.core.Combine.ignore:
  - 5681
  - 5682
  - 5684
  pip._vendor.pyparsing.core.Combine.postParse:
  - 5688
  - 5690
  - 5691
  - 5694
  pip._vendor.pyparsing.core.DelimitedList.__init__:
  - 5120
  - 5121
  - 5123
  - 5124
  - 5128
  - 5099
  - 5131
  - 5132
  - 5141
  - 5142
  - 5144
  - 5145
  - 5147
  - 5116
  - 5117
  - 5118
  pip._vendor.pyparsing.core.DelimitedList._generateDefaultName:
  - 5150
  pip._vendor.pyparsing.core.Diagnostics:
  - 139
  pip._vendor.pyparsing.core.Dict:
  - 5738
  pip._vendor.pyparsing.core.Dict.__init__:
  - 5780
  pip._vendor.pyparsing.core.Dict.postParse:
  - 5793
  - 5794
  - 5796
  - 5797
  - 5801
  - 5803
  - 5811
  - 5812
  - 5814
  - 5818
  - 5816
  - 5785
  - 5786
  - 5819
  - 5790
  - 5791
  pip._vendor.pyparsing.core.Each:
  - 4341
  pip._vendor.pyparsing.core.Each.__iand__:
  - 4409
  - 4410
  - 4411
  - 4413
  pip._vendor.pyparsing.core.Each.__init__:
  - 4400
  - 4401
  - 4399
  pip._vendor.pyparsing.core.Each._generateDefaultName:
  - 4511
  pip._vendor.pyparsing.core.Each.parseImpl:
  - 4480
  - 4484
  - 4485
  - 4486
  - 4487
  - 4488
  - 4492
  - 4493
  - 4501
  - 4503
  - 4504
  - 4505
  - 4424
  - 4425
  - 4426
  - 4428
  - 4432
  - 4436
  - 4438
  - 4441
  - 4443
  - 4446
  - 4462
  - 4463
  - 4464
  - 4466
  - 4470
  - 4471
  - 4473
  - 4475
  - 4476
  - 4477
  - 4478
  - 4479
  pip._vendor.pyparsing.core.Each.parseImpl.<lambda2>:
  - 4488
  pip._vendor.pyparsing.core.Each.streamline:
  - 4416
  - 4417
  - 4418
  pip._vendor.pyparsing.core.Empty:
  - 2453
  pip._vendor.pyparsing.core.Empty.__init__:
  - 2458
  pip._vendor.pyparsing.core.FollowedBy:
  - 4743
  pip._vendor.pyparsing.core.FollowedBy.__init__:
  - 4766
  pip._vendor.pyparsing.core.FollowedBy.parseImpl:
  - 4772
  pip._vendor.pyparsing.core.Forward:
  - 5369
  - 5628
  - 5625
  pip._vendor.pyparsing.core.Forward.__del__:
  - 5452
  - 5447
  pip._vendor.pyparsing.core.Forward.__ilshift__:
  - 5425
  pip._vendor.pyparsing.core.Forward.__init__:
  - 5398
  - 5399
  pip._vendor.pyparsing.core.Forward.__lshift__:
  - 5408
  - 5415
  - 5420
  - 5421
  - 5403
  - 5405
  - 5406
  pip._vendor.pyparsing.core.Forward.__or__:
  - 5432
  - 5442
  - 5438
  - 5431
  pip._vendor.pyparsing.core.Forward._generateDefaultName:
  - 5592
  - 5591
  pip._vendor.pyparsing.core.Forward._setResultsName:
  - 5607
  - 5612
  - 5613
  - 5614
  - 5616
  - 5621
  pip._vendor.pyparsing.core.Forward.copy:
  - 5600
  - 5602
  - 5599
  pip._vendor.pyparsing.core.Forward.ignoreWhitespace:
  - 5629
  pip._vendor.pyparsing.core.Forward.leaveWhitespace:
  - 5626
  pip._vendor.pyparsing.core.Forward.parseImpl:
  - 5510
  - 5512
  - 5520
  - 5524
  - 5528
  - 5531
  - 5535
  - 5536
  - 5541
  - 5543
  - 5546
  - 5548
  - 5460
  - 5473
  - 5474
  - 5475
  - 5480
  - 5484
  - 5485
  pip._vendor.pyparsing.core.Forward.streamline:
  - 5563
  - 5565
  - 5566
  pip._vendor.pyparsing.core.Forward.validate:
  - 5570
  - 5575
  - 5578
  - 5580
  - 5581
  - 5582
  pip._vendor.pyparsing.core.GoToColumn:
  - 3538
  pip._vendor.pyparsing.core.GoToColumn.__init__:
  - 3543
  pip._vendor.pyparsing.core.GoToColumn.parseImpl:
  - 3560
  - 3561
  pip._vendor.pyparsing.core.GoToColumn.preParse:
  - 3553
  - 3554
  - 3547
  - 3548
  - 3549
  - 3550
  pip._vendor.pyparsing.core.Group:
  - 5701
  pip._vendor.pyparsing.core.Group.__init__:
  - 5722
  pip._vendor.pyparsing.core.Group.postParse:
  - 5728
  - 5729
  - 5730
  - 5731
  - 5727
  pip._vendor.pyparsing.core.IndentedBlock:
  - 4625
  pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__:
  - 4632
  - 4634
  pip._vendor.pyparsing.core.IndentedBlock._Indent.__init__.<lambda1>:
  - 4634
  pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__:
  - 4640
  - 4638
  pip._vendor.pyparsing.core.IndentedBlock._IndentGreater.__init__.<lambda1>:
  - 4640
  pip._vendor.pyparsing.core.IndentedBlock.__init__:
  - 4645
  pip._vendor.pyparsing.core.IndentedBlock.parseImpl:
  - 4672
  - 4674
  - 4675
  - 4677
  - 4679
  - 4682
  - 4683
  - 4655
  - 4659
  - 4661
  - 4662
  - 4664
  - 4665
  - 4666
  - 4667
  - 4670
  pip._vendor.pyparsing.core.Keyword:
  - 2480
  pip._vendor.pyparsing.core.Keyword.__init__:
  - 2528
  - 2532
  - 2533
  - 2534
  - 2535
  - 2517
  - 2519
  - 2523
  pip._vendor.pyparsing.core.Keyword._generateDefaultName:
  - 2538
  pip._vendor.pyparsing.core.Keyword.parseImpl:
  - 2562
  - 2565
  - 2567
  - 2568
  - 2569
  - 2543
  - 2544
  - 2545
  - 2546
  - 2547
  - 2548
  pip._vendor.pyparsing.core.Keyword.set_default_keyword_chars:
  - 2589
  pip._vendor.pyparsing.core.LineEnd:
  - 3616
  pip._vendor.pyparsing.core.LineEnd.__init__:
  - 3621
  - 3622
  - 3623
  pip._vendor.pyparsing.core.LineEnd.parseImpl:
  - 3632
  - 3627
  - 3628
  pip._vendor.pyparsing.core.LineStart:
  - 3569
  pip._vendor.pyparsing.core.LineStart.__init__:
  - 3592
  - 3593
  - 3594
  - 3595
  - 3596
  pip._vendor.pyparsing.core.LineStart.parseImpl:
  - 3610
  pip._vendor.pyparsing.core.LineStart.preParse:
  - 3600
  - 3603
  - 3604
  - 3606
  pip._vendor.pyparsing.core.Literal:
  - 2400
  pip._vendor.pyparsing.core.Literal.__init__:
  - 2432
  - 2435
  pip._vendor.pyparsing.core.Literal.__new__:
  - 2417
  - 2419
  - 2420
  - 2421
  - 2422
  - 2425
  pip._vendor.pyparsing.core.Literal._generateDefaultName:
  - 2442
  pip._vendor.pyparsing.core.Literal.parseImpl:
  - 2445
  pip._vendor.pyparsing.core.Located:
  - 4861
  pip._vendor.pyparsing.core.Located.parseImpl:
  - 4890
  - 4891
  - 4895
  pip._vendor.pyparsing.core.MatchFirst:
  - 4225
  pip._vendor.pyparsing.core.MatchFirst.__init__:
  - 4243
  - 4244
  - 4245
  - 4246
  pip._vendor.pyparsing.core.MatchFirst.__ior__:
  - 4304
  - 4305
  - 4306
  - 4308
  pip._vendor.pyparsing.core.MatchFirst._generateDefaultName:
  - 4311
  pip._vendor.pyparsing.core.MatchFirst._setResultsName:
  - 4320
  - 4325
  - 4326
  - 4332
  - 4337
  - 4314
  - 4319
  pip._vendor.pyparsing.core.MatchFirst.parseImpl:
  - 4288
  - 4290
  - 4292
  - 4295
  - 4270
  - 4272
  - 4282
  - 4286
  - 4287
  pip._vendor.pyparsing.core.MatchFirst.streamline:
  - 4256
  - 4257
  - 4258
  - 4259
  - 4251
  - 4254
  - 4255
  pip._vendor.pyparsing.core.NoMatch:
  - 2385
  pip._vendor.pyparsing.core.NoMatch.__init__:
  - 2390
  pip._vendor.pyparsing.core.NotAny:
  - 4903
  pip._vendor.pyparsing.core.NotAny.__init__:
  - 4928
  - 4934
  pip._vendor.pyparsing.core.NotAny._generateDefaultName:
  - 4942
  pip._vendor.pyparsing.core.NotAny.parseImpl:
  - 4937
  pip._vendor.pyparsing.core.OneOrMore:
  - 5023
  pip._vendor.pyparsing.core.OneOrMore._generateDefaultName:
  - 5051
  pip._vendor.pyparsing.core.Opt:
  - 5201
  - 5162
  pip._vendor.pyparsing.core.Opt.__init__:
  - 5206
  pip._vendor.pyparsing.core.Opt._generateDefaultName:
  - 5228
  - 5230
  pip._vendor.pyparsing.core.Opt.parseImpl:
  - 5217
  - 5218
  - 5219
  - 5214
  pip._vendor.pyparsing.core.Or:
  - 4065
  pip._vendor.pyparsing.core.Or.__init__:
  - 4083
  - 4084
  - 4085
  - 4086
  pip._vendor.pyparsing.core.Or.__ixor__:
  - 4192
  - 4188
  - 4189
  - 4190
  pip._vendor.pyparsing.core.Or._generateDefaultName:
  - 4195
  pip._vendor.pyparsing.core.Or._setResultsName:
  - 4198
  - 4203
  - 4204
  - 4209
  - 4210
  - 4216
  - 4221
  pip._vendor.pyparsing.core.Or.parseImpl:
  - 4107
  - 4108
  - 4109
  - 4111
  - 4115
  - 4119
  - 4121
  - 4125
  - 4126
  - 4127
  - 4129
  - 4132
  - 4134
  - 4137
  - 4139
  - 4143
  - 4146
  - 4147
  - 4152
  - 4155
  - 4159
  - 4162
  - 4165
  - 4168
  - 4169
  - 4170
  - 4171
  - 4172
  - 4176
  - 4179
  pip._vendor.pyparsing.core.Or.parseImpl.<lambda2>:
  - 4172
  pip._vendor.pyparsing.core.Or.streamline:
  - 4096
  - 4091
  - 4092
  - 4093
  - 4094
  - 4095
  pip._vendor.pyparsing.core.ParseElementEnhance:
  - 4616
  - 4515
  - 4619
  pip._vendor.pyparsing.core.ParseElementEnhance.__init__:
  - 4520
  - 4521
  - 4522
  - 4523
  - 4524
  - 4525
  - 4526
  - 4528
  - 4529
  - 4531
  - 4534
  - 4540
  pip._vendor.pyparsing.core.ParseElementEnhance._checkRecursion:
  - 4592
  - 4595
  - 4596
  pip._vendor.pyparsing.core.ParseElementEnhance._generateDefaultName:
  - 4612
  pip._vendor.pyparsing.core.ParseElementEnhance.ignore:
  - 4576
  - 4577
  - 4578
  - 4580
  - 4581
  - 4582
  - 4574
  - 4575
  pip._vendor.pyparsing.core.ParseElementEnhance.ignoreWhitespace:
  - 4620
  pip._vendor.pyparsing.core.ParseElementEnhance.ignore_whitespace:
  - 4565
  - 4567
  - 4568
  - 4569
  - 4570
  pip._vendor.pyparsing.core.ParseElementEnhance.leaveWhitespace:
  - 4617
  pip._vendor.pyparsing.core.ParseElementEnhance.leave_whitespace:
  - 4556
  - 4558
  - 4559
  - 4560
  - 4561
  pip._vendor.pyparsing.core.ParseElementEnhance.parseImpl:
  - 4546
  - 4548
  pip._vendor.pyparsing.core.ParseElementEnhance.streamline:
  - 4586
  - 4587
  - 4588
  pip._vendor.pyparsing.core.ParseElementEnhance.validate:
  - 4608
  - 4609
  - 4599
  - 4604
  - 4607
  pip._vendor.pyparsing.core.ParseExpression:
  - 3896
  - 3729
  - 3893
  pip._vendor.pyparsing.core.ParseExpression.__init__:
  - 3744
  - 3746
  - 3748
  - 3751
  - 3754
  - 3734
  - 3736
  - 3737
  - 3739
  - 3740
  - 3741
  - 3743
  pip._vendor.pyparsing.core.ParseExpression._generateDefaultName:
  - 3805
  pip._vendor.pyparsing.core.ParseExpression._setResultsName:
  - 3872
  - 3873
  - 3878
  - 3879
  - 3883
  - 3889
  - 3866
  - 3871
  pip._vendor.pyparsing.core.ParseExpression.append:
  - 3763
  pip._vendor.pyparsing.core.ParseExpression.copy:
  - 3860
  - 3861
  - 3862
  pip._vendor.pyparsing.core.ParseExpression.ignore:
  - 3793
  - 3794
  - 3795
  - 3796
  - 3797
  - 3799
  - 3800
  - 3801
  pip._vendor.pyparsing.core.ParseExpression.ignoreWhitespace:
  - 3897
  pip._vendor.pyparsing.core.ParseExpression.ignore_whitespace:
  - 3781
  - 3785
  - 3786
  - 3787
  - 3788
  - 3789
  pip._vendor.pyparsing.core.ParseExpression.leaveWhitespace:
  - 3894
  pip._vendor.pyparsing.core.ParseExpression.leave_whitespace:
  - 3776
  - 3777
  - 3768
  - 3772
  - 3774
  - 3775
  pip._vendor.pyparsing.core.ParseExpression.streamline:
  - 3808
  - 3811
  - 3844
  - 3813
  - 3814
  - 3819
  - 3821
  - 3822
  - 3833
  - 3834
  pip._vendor.pyparsing.core.ParseExpression.validate:
  - 3856
  - 3849
  - 3857
  - 3855
  pip._vendor.pyparsing.core.ParserElement:
  - 2304
  - 2307
  - 2310
  - 2313
  - 395
  - 2316
  - 2319
  - 2322
  - 930
  - 950
  - 952
  - 2250
  - 2254
  - 2257
  - 2260
  - 2263
  - 2266
  - 2269
  - 2272
  - 2275
  - 2279
  - 2283
  - 2286
  - 2289
  - 2292
  - 2295
  - 2298
  - 2301
  pip._vendor.pyparsing.core.ParserElement._CacheType:
  - 936
  pip._vendor.pyparsing.core.ParserElement._CacheType.get:
  - 943
  pip._vendor.pyparsing.core.ParserElement._CacheType.set:
  - 946
  pip._vendor.pyparsing.core.ParserElement.__add__:
  - 1430
  - 1431
  - 1433
  - 1434
  - 1435
  - 1404
  - 1437
  pip._vendor.pyparsing.core.ParserElement.__and__:
  - 1601
  - 1604
  - 1605
  - 1606
  - 1608
  pip._vendor.pyparsing.core.ParserElement.__call__:
  - 1705
  - 1706
  - 1691
  - 1708
  pip._vendor.pyparsing.core.ParserElement.__eq__:
  - 1958
  - 1960
  - 1961
  - 1962
  - 1963
  pip._vendor.pyparsing.core.ParserElement.__getitem__:
  - 1664
  - 1669
  - 1672
  - 1676
  - 1682
  - 1683
  - 1685
  - 1686
  - 1658
  - 1659
  - 1661
  - 1631
  pip._vendor.pyparsing.core.ParserElement.__hash__:
  - 1967
  pip._vendor.pyparsing.core.ParserElement.__init__:
  - 474
  - 483
  - 469
  - 462
  pip._vendor.pyparsing.core.ParserElement.__invert__:
  - 1624
  - 1621
  pip._vendor.pyparsing.core.ParserElement.__mul__:
  - 1537
  - 1538
  - 1539
  - 1541
  - 1543
  - 1545
  - 1548
  - 1473
  - 1493
  - 1495
  - 1498
  - 1500
  - 1501
  - 1503
  - 1505
  - 1506
  - 1507
  - 1508
  - 1509
  - 1511
  - 1512
  - 1520
  - 1522
  - 1526
  - 1527
  - 1529
  pip._vendor.pyparsing.core.ParserElement.__mul__.makeOptionalList:
  - 1532
  - 1533
  - 1535
  pip._vendor.pyparsing.core.ParserElement.__or__:
  - 1568
  - 1555
  - 1558
  - 1559
  - 1561
  - 1563
  - 1564
  - 1565
  - 1566
  pip._vendor.pyparsing.core.ParserElement.__radd__:
  - 1440
  - 1443
  - 1444
  - 1446
  - 1447
  - 1448
  pip._vendor.pyparsing.core.ParserElement.__rand__:
  - 1616
  - 1611
  - 1614
  - 1615
  pip._vendor.pyparsing.core.ParserElement.__repr__:
  - 1901
  pip._vendor.pyparsing.core.ParserElement.__rmul__:
  - 1552
  pip._vendor.pyparsing.core.ParserElement.__ror__:
  - 1576
  - 1571
  - 1574
  - 1575
  pip._vendor.pyparsing.core.ParserElement.__rsub__:
  - 1466
  - 1467
  - 1468
  - 1463
  pip._vendor.pyparsing.core.ParserElement.__rxor__:
  - 1594
  - 1595
  - 1596
  - 1591
  pip._vendor.pyparsing.core.ParserElement.__sub__:
  - 1453
  - 1456
  - 1457
  - 1458
  - 1460
  pip._vendor.pyparsing.core.ParserElement.__xor__:
  - 1581
  - 1584
  - 1585
  - 1586
  - 1588
  pip._vendor.pyparsing.core.ParserElement._checkRecursion:
  - 1913
  - 1914
  pip._vendor.pyparsing.core.ParserElement._generateDefaultName:
  - 1873
  pip._vendor.pyparsing.core.ParserElement._parseCache:
  - 994
  - 995
  - 996
  - 965
  - 966
  - 998
  - 969
  - 972
  - 975
  - 979
  - 981
  - 984
  - 985
  - 987
  pip._vendor.pyparsing.core.ParserElement._parseNoCache:
  - 897
  - 899
  - 900
  - 809
  - 811
  - 814
  - 815
  - 819
  - 820
  - 821
  - 823
  - 827
  - 830
  - 831
  - 834
  - 835
  - 838
  - 839
  - 843
  - 845
  - 849
  - 851
  - 853
  - 856
  - 857
  - 859
  - 861
  - 863
  - 866
  - 867
  - 871
  - 876
  - 877
  - 882
  - 884
  - 886
  - 889
  - 890
  - 894
  pip._vendor.pyparsing.core.ParserElement._setResultsName:
  - 585
  - 587
  - 588
  pip._vendor.pyparsing.core.ParserElement._skipIgnorables:
  - 776
  - 770
  - 779
  pip._vendor.pyparsing.core.ParserElement.addCondition:
  - 2270
  pip._vendor.pyparsing.core.ParserElement.addParseAction:
  - 2267
  pip._vendor.pyparsing.core.ParserElement.add_condition:
  - 739
  - 740
  - 741
  - 743
  - 744
  - 748
  - 717
  - 749
  pip._vendor.pyparsing.core.ParserElement.add_parse_action:
  - 712
  - 705
  - 710
  - 711
  pip._vendor.pyparsing.core.ParserElement.can_parse_next:
  - 923
  pip._vendor.pyparsing.core.ParserElement.copy:
  - 544
  - 547
  - 523
  - 548
  pip._vendor.pyparsing.core.ParserElement.create_diagram:
  - 2240
  - 2241
  - 2242
  - 2233
  - 2245
  - 2231
  - 2201
  pip._vendor.pyparsing.core.ParserElement.default_name:
  - 1867
  - 1868
  pip._vendor.pyparsing.core.ParserElement.disable_memoization:
  - 1028
  - 1021
  pip._vendor.pyparsing.core.ParserElement.enableLeftRecursion:
  - 2280
  pip._vendor.pyparsing.core.ParserElement.enablePackrat:
  - 2284
  pip._vendor.pyparsing.core.ParserElement.enable_left_recursion:
  - 1069
  - 1037
  - 1070
  - 1071
  - 1073
  - 1074
  - 1075
  - 1076
  pip._vendor.pyparsing.core.ParserElement.enable_packrat:
  - 1120
  - 1122
  - 1115
  - 1113
  - 1114
  - 1083
  - 1117
  - 1119
  pip._vendor.pyparsing.core.ParserElement.ignore:
  - 1776
  - 1777
  - 1779
  - 1780
  - 1781
  - 1783
  - 1759
  pip._vendor.pyparsing.core.ParserElement.ignoreWhitespace:
  - 2299
  pip._vendor.pyparsing.core.ParserElement.ignore_whitespace:
  - 1718
  pip._vendor.pyparsing.core.ParserElement.inlineLiteralsUsing:
  - 2251
  pip._vendor.pyparsing.core.ParserElement.inline_literals_using:
  - 424
  pip._vendor.pyparsing.core.ParserElement.leaveWhitespace:
  - 2302
  pip._vendor.pyparsing.core.ParserElement.leave_whitespace:
  - 1728
  pip._vendor.pyparsing.core.ParserElement.matches:
  - 1988
  - 1972
  pip._vendor.pyparsing.core.ParserElement.parseFile:
  - 2320
  pip._vendor.pyparsing.core.ParserElement.parseString:
  - 2287
  pip._vendor.pyparsing.core.ParserElement.parseWithTabs:
  - 2308
  pip._vendor.pyparsing.core.ParserElement.parse_file:
  - 1935
  - 1942
  - 1943
  - 1945
  - 1946
  - 1947
  - 1949
  - 1951
  pip._vendor.pyparsing.core.ParserElement.parse_string:
  - 1184
  - 1186
  - 1128
  - 1172
  - 1173
  - 1174
  - 1175
  - 1176
  - 1177
  - 1178
  - 1180
  - 1181
  - 1182
  - 1183
  pip._vendor.pyparsing.core.ParserElement.parse_with_tabs:
  - 1750
  pip._vendor.pyparsing.core.ParserElement.preParse:
  - 786
  - 787
  - 789
  - 790
  pip._vendor.pyparsing.core.ParserElement.reset_cache:
  - 1010
  - 1011
  - 1014
  pip._vendor.pyparsing.core.ParserElement.runTests:
  - 2323
  pip._vendor.pyparsing.core.ParserElement.run_tests:
  - 2177
  - 2178
  - 2179
  - 2182
  - 2183
  - 2185
  - 2186
  - 2188
  - 2113
  - 2114
  - 2115
  - 2116
  - 2118
  - 2119
  - 2120
  - 2121
  - 2122
  - 2123
  - 2131
  - 2133
  - 2134
  - 2135
  - 2136
  - 2139
  - 2011
  - 2142
  - 2143
  - 2148
  - 2149
  - 2151
  - 2152
  - 2153
  - 2154
  - 2155
  - 2159
  - 2160
  - 2161
  - 2166
  - 2168
  - 2169
  - 2170
  - 2171
  - 2173
  - 2175
  pip._vendor.pyparsing.core.ParserElement.scanString:
  - 2290
  pip._vendor.pyparsing.core.ParserElement.scan_string:
  - 1203
  - 1233
  - 1234
  - 1235
  - 1236
  - 1237
  - 1239
  - 1240
  - 1241
  - 1245
  - 1250
  - 1253
  - 1257
  - 1259
  - 1260
  - 1267
  - 1268
  - 1269
  - 1270
  - 1279
  pip._vendor.pyparsing.core.ParserElement.searchString:
  - 2296
  pip._vendor.pyparsing.core.ParserElement.search_string:
  - 1359
  - 1361
  - 1362
  - 1365
  - 1339
  pip._vendor.pyparsing.core.ParserElement.setBreak:
  - 2261
  pip._vendor.pyparsing.core.ParserElement.setDebug:
  - 2314
  pip._vendor.pyparsing.core.ParserElement.setDebugActions:
  - 2311
  pip._vendor.pyparsing.core.ParserElement.setDefaultWhitespaceChars:
  - 2255
  pip._vendor.pyparsing.core.ParserElement.setFailAction:
  - 2273
  pip._vendor.pyparsing.core.ParserElement.setName:
  - 2317
  pip._vendor.pyparsing.core.ParserElement.setParseAction:
  - 2264
  pip._vendor.pyparsing.core.ParserElement.setResultsName:
  - 2258
  pip._vendor.pyparsing.core.ParserElement.setWhitespaceChars:
  - 2305
  pip._vendor.pyparsing.core.ParserElement.set_break:
  - 601
  - 596
  - 614
  pip._vendor.pyparsing.core.ParserElement.set_break.breaker:
  - 608
  - 609
  pip._vendor.pyparsing.core.ParserElement.set_debug:
  - 1856
  - 1813
  - 1850
  - 1851
  - 1852
  - 1855
  pip._vendor.pyparsing.core.ParserElement.set_debug_actions:
  - 1792
  - 1804
  pip._vendor.pyparsing.core.ParserElement.set_default_whitespace_chars:
  - 418
  - 403
  - 420
  - 419
  pip._vendor.pyparsing.core.ParserElement.set_fail_action:
  - 754
  pip._vendor.pyparsing.core.ParserElement.set_name:
  - 1888
  - 1889
  - 1878
  pip._vendor.pyparsing.core.ParserElement.set_parse_action:
  - 619
  - 693
  - 696
  - 698
  - 699
  - 700
  pip._vendor.pyparsing.core.ParserElement.set_results_name:
  - 554
  - 582
  pip._vendor.pyparsing.core.ParserElement.set_whitespace_chars:
  - 1745
  - 1741
  pip._vendor.pyparsing.core.ParserElement.split:
  - 1379
  - 1396
  - 1397
  - 1398
  - 1399
  - 1401
  pip._vendor.pyparsing.core.ParserElement.suppress:
  - 1715
  - 1711
  pip._vendor.pyparsing.core.ParserElement.suppress_warning:
  - 490
  - 502
  pip._vendor.pyparsing.core.ParserElement.transformString:
  - 2293
  pip._vendor.pyparsing.core.ParserElement.transform_string:
  - 1312
  - 1313
  - 1314
  - 1315
  - 1316
  - 1317
  - 1286
  - 1319
  - 1321
  - 1323
  - 1325
  - 1311
  pip._vendor.pyparsing.core.ParserElement.tryParse:
  - 2276
  pip._vendor.pyparsing.core.ParserElement.try_parse:
  - 915
  - 917
  pip._vendor.pyparsing.core.ParserElement.using_each:
  - 454
  - 446
  pip._vendor.pyparsing.core.ParserElement.validate:
  - 1920
  - 1917
  - 1925
  pip._vendor.pyparsing.core.ParserElement.visit_all:
  - 512
  - 515
  - 517
  - 519
  - 520
  - 506
  - 509
  - 510
  pip._vendor.pyparsing.core.PositionToken.__init__:
  - 3532
  pip._vendor.pyparsing.core.PrecededBy:
  - 4779
  pip._vendor.pyparsing.core.PrecededBy.__init__:
  - 4832
  - 4811
  - 4812
  - 4816
  - 4817
  - 4818
  - 4820
  - 4823
  - 4826
  - 4830
  pip._vendor.pyparsing.core.PrecededBy.__init__.<lambda1>:
  - 4832
  pip._vendor.pyparsing.core.PrecededBy.parseImpl:
  - 4835
  - 4836
  - 4839
  - 4842
  - 4843
  - 4844
  - 4845
  - 4848
  - 4849
  pip._vendor.pyparsing.core.QuotedString:
  - 3169
  - 3207
  pip._vendor.pyparsing.core.QuotedString.__init__:
  - 3226
  - 3237
  - 3238
  - 3241
  - 3244
  - 3245
  - 3249
  - 3252
  - 3262
  - 3263
  - 3266
  - 3267
  - 3269
  - 3271
  - 3274
  - 3275
  - 3276
  - 3282
  - 3284
  - 3287
  - 3288
  - 3292
  - 3293
  - 3296
  - 3306
  - 3307
  - 3308
  - 3309
  - 3313
  - 3314
  - 3318
  pip._vendor.pyparsing.core.QuotedString._generateDefaultName:
  - 3329
  pip._vendor.pyparsing.core.QuotedString.parseImpl:
  - 3337
  - 3340
  - 3343
  - 3344
  - 3346
  - 3350
  - 3351
  - 3352
  - 3353
  - 3354
  - 3355
  - 3356
  - 3357
  - 3358
  - 3361
  - 3362
  - 3363
  - 3367
  - 3368
  pip._vendor.pyparsing.core.Regex:
  - 3014
  pip._vendor.pyparsing.core.Regex.__init__:
  - 3079
  - 3048
  - 3081
  - 3053
  - 3057
  - 3058
  - 3065
  pip._vendor.pyparsing.core.Regex._generateDefaultName:
  - 3103
  pip._vendor.pyparsing.core.Regex.mayReturnEmpty:
  - 3100
  pip._vendor.pyparsing.core.Regex.parseImpl:
  - 3106
  - 3107
  - 3110
  - 3111
  - 3112
  - 3113
  - 3114
  pip._vendor.pyparsing.core.Regex.parseImplAsGroupList:
  - 3120
  - 3123
  - 3124
  - 3119
  pip._vendor.pyparsing.core.Regex.parseImplAsMatch:
  - 3128
  - 3129
  - 3132
  pip._vendor.pyparsing.core.Regex.re:
  - 3090
  - 3086
  pip._vendor.pyparsing.core.Regex.sub:
  - 3137
  - 3147
  - 3150
  - 3155
  - 3165
  pip._vendor.pyparsing.core.Regex.sub.pa:
  - 3163
  - 3158
  pip._vendor.pyparsing.core.SkipTo:
  - 5239
  pip._vendor.pyparsing.core.SkipTo.__init__:
  - 5312
  - 5317
  - 5318
  - 5321
  - 5309
  - 5311
  pip._vendor.pyparsing.core.SkipTo.parseImpl:
  - 5344
  - 5325
  - 5359
  - 5361
  - 5362
  - 5334
  - 5336
  - 5339
  - 5341
  pip._vendor.pyparsing.core.StringEnd:
  - 3656
  pip._vendor.pyparsing.core.StringEnd.__init__:
  - 3661
  pip._vendor.pyparsing.core.StringEnd.parseImpl:
  - 3665
  - 3667
  - 3669
  pip._vendor.pyparsing.core.StringStart:
  - 3639
  pip._vendor.pyparsing.core.StringStart.__init__:
  - 3644
  pip._vendor.pyparsing.core.StringStart.parseImpl:
  - 3648
  - 3650
  pip._vendor.pyparsing.core.Suppress:
  - 5825
  pip._vendor.pyparsing.core.Suppress.__add__:
  - 5864
  - 5861
  - 5862
  pip._vendor.pyparsing.core.Suppress.__init__:
  - 5856
  - 5857
  - 5858
  pip._vendor.pyparsing.core.Suppress.__sub__:
  - 5867
  - 5868
  - 5870
  pip._vendor.pyparsing.core.Token:
  - 2373
  pip._vendor.pyparsing.core.Token.__init__:
  - 2378
  pip._vendor.pyparsing.core.Token._generateDefaultName:
  - 2381
  pip._vendor.pyparsing.core.TokenConverter:
  - 5634
  pip._vendor.pyparsing.core.TokenConverter.__init__:
  - 5639
  pip._vendor.pyparsing.core.White:
  - 3454
  pip._vendor.pyparsing.core.White.__init__:
  - 3490
  - 3492
  - 3493
  - 3502
  - 3507
  pip._vendor.pyparsing.core.White._generateDefaultName:
  - 3512
  pip._vendor.pyparsing.core.White.parseImpl:
  - 3520
  - 3515
  - 3524
  pip._vendor.pyparsing.core.Word:
  - 2737
  pip._vendor.pyparsing.core.Word.__init__:
  - 2822
  - 2823
  - 2828
  - 2829
  - 2830
  - 2832
  - 2833
  - 2835
  - 2837
  - 2838
  - 2839
  - 2846
  - 2851
  - 2858
  - 2863
  - 2871
  - 2875
  - 2876
  - 2877
  - 2879
  - 2881
  - 2882
  - 2884
  - 2887
  - 2893
  - 2897
  - 2898
  - 2900
  - 2903
  - 2912
  - 2916
  pip._vendor.pyparsing.core.Word._generateDefaultName:
  - 2944
  - 2932
  - 2933
  - 2935
  - 2938
  - 2939
  - 2940
  pip._vendor.pyparsing.core.Word._generateDefaultName.charsAsStr:
  - 2926
  - 2927
  pip._vendor.pyparsing.core.Word.parseImpl:
  - 2977
  - 2951
  - 2956
  - 2959
  - 2964
  - 2966
  - 2968
  - 2969
  pip._vendor.pyparsing.core.Word.parseImpl_regex:
  - 2984
  - 2987
  - 2988
  - 2983
  pip._vendor.pyparsing.core.WordEnd:
  - 3702
  pip._vendor.pyparsing.core.WordEnd.__init__:
  - 3712
  - 3713
  pip._vendor.pyparsing.core.WordEnd.parseImpl:
  - 3720
  - 3718
  - 3719
  pip._vendor.pyparsing.core.WordStart:
  - 3676
  pip._vendor.pyparsing.core.WordStart.__init__:
  - 3688
  - 3687
  pip._vendor.pyparsing.core.WordStart.parseImpl:
  - 3692
  - 3693
  pip._vendor.pyparsing.core.ZeroOrMore:
  - 5055
  pip._vendor.pyparsing.core.ZeroOrMore.__init__:
  - 5075
  pip._vendor.pyparsing.core.ZeroOrMore._generateDefaultName:
  - 5085
  pip._vendor.pyparsing.core.ZeroOrMore.parseImpl:
  - 5080
  - 5082
  pip._vendor.pyparsing.core._MultipleMatch.__init__:
  - 4953
  - 4957
  - 4958
  - 4959
  pip._vendor.pyparsing.core._MultipleMatch._setResultsName:
  - 4996
  - 5001
  - 5002
  - 5003
  - 5008
  - 5009
  - 5013
  - 5019
  pip._vendor.pyparsing.core._MultipleMatch.parseImpl:
  - 4971
  - 4976
  - 4977
  - 4978
  - 4982
  - 4983
  - 4984
  - 4985
  - 4988
  pip._vendor.pyparsing.core._MultipleMatch.stopOn:
  - 4962
  - 4963
  pip._vendor.pyparsing.core._PendingSkip.__add__:
  - 2344
  - 2357
  - 2358
  - 2343
  pip._vendor.pyparsing.core._PendingSkip.__add__.must_skip:
  - 2347
  - 2349
  pip._vendor.pyparsing.core._PendingSkip.__add__.show_skip:
  - 2352
  - 2353
  - 2354
  pip._vendor.pyparsing.core._PendingSkip.__init__:
  - 2335
  pip._vendor.pyparsing.core._PendingSkip._generateDefaultName:
  - 2340
  pip._vendor.pyparsing.core._SingleCharLiteral.parseImpl:
  - 2471
  pip._vendor.pyparsing.core.__compat__:
  - 110
  - 94
  - 111
  pip._vendor.pyparsing.core.__diag__:
  - 128
  - 129
  - 130
  pip._vendor.pyparsing.core.__diag__.enable_all_warnings:
  - 134
  - 135
  pip._vendor.pyparsing.core._default_exception_debug_action:
  - 387
  pip._vendor.pyparsing.core._default_start_debug_action:
  - 360
  - 361
  - 362
  - 358
  pip._vendor.pyparsing.core._default_success_debug_action:
  - 376
  pip._vendor.pyparsing.core._should_enable_warnings:
  - 200
  - 201
  - 202
  - 205
  - 209
  pip._vendor.pyparsing.core._trim_arity:
  - 270
  - 273
  - 274
  - 286
  - 319
  pip._vendor.pyparsing.core._trim_arity.<lambda1>:
  - 274
  pip._vendor.pyparsing.core._trim_arity.wrapper:
  - 293
  - 298
  - 302
  - 309
  - 310
  pip._vendor.pyparsing.core.autoname_elements:
  - 6036
  - 6040
  - 6041
  - 6043
  - 6044
  - 6045
  - 6046
  pip._vendor.pyparsing.core.cached_property.__get__:
  - 89
  pip._vendor.pyparsing.core.conditionAsParseAction:
  - 6111
  pip._vendor.pyparsing.core.condition_as_parse_action:
  - 344
  - 329
  - 346
  pip._vendor.pyparsing.core.condition_as_parse_action.pa:
  - 348
  pip._vendor.pyparsing.core.disable_diag:
  - 180
  - 183
  pip._vendor.pyparsing.core.enable_all_warnings:
  - 187
  - 190
  pip._vendor.pyparsing.core.enable_diag:
  - 176
  - 173
  pip._vendor.pyparsing.core.nullDebugAction:
  - 6105
  pip._vendor.pyparsing.core.null_debug_action:
  - 391
  pip._vendor.pyparsing.core.srange:
  - 5984
  - 5953
  - 5979
  pip._vendor.pyparsing.core.srange.<lambda1>:
  - 5980
  - 5981
  pip._vendor.pyparsing.core.tokenMap:
  - 6114
  pip._vendor.pyparsing.core.token_map:
  - 6029
  - 5990
  pip._vendor.pyparsing.core.token_map.pa:
  - 6027
  pip._vendor.pyparsing.core.traceParseAction:
  - 6108
  pip._vendor.pyparsing.core.trace_parse_action:
  - 5880
  - 5904
  pip._vendor.pyparsing.core.trace_parse_action.z:
  - 5909
  - 5911
  - 5913
  - 5915
  - 5917
  pip._vendor.pyparsing.diagram:
  - 58
  - 66
  - 62
  - 55
  pip._vendor.pyparsing.diagram.AnnotatedItem:
  - 87
  pip._vendor.pyparsing.diagram.AnnotatedItem.__init__:
  - 92
  pip._vendor.pyparsing.diagram.ConverterState:
  - 309
  pip._vendor.pyparsing.diagram.ConverterState.__init__:
  - 324
  pip._vendor.pyparsing.diagram.ConverterState.extract_into_diagram:
  - 353
  - 361
  - 362
  - 363
  - 365
  - 369
  - 374
  - 377
  pip._vendor.pyparsing.diagram.ConverterState.generate_index:
  - 346
  pip._vendor.pyparsing.diagram.ConverterState.generate_unnamed:
  - 339
  pip._vendor.pyparsing.diagram.EachItem:
  - 70
  pip._vendor.pyparsing.diagram.EachItem.__init__:
  - 81
  - 82
  - 83
  pip._vendor.pyparsing.diagram.EditablePartial:
  - 96
  pip._vendor.pyparsing.diagram.EditablePartial.__call__:
  - 130
  - 131
  - 132
  - 134
  - 122
  - 125
  - 126
  pip._vendor.pyparsing.diagram.EditablePartial.from_call:
  - 115
  - 111
  pip._vendor.pyparsing.diagram.ElementState:
  - 247
  pip._vendor.pyparsing.diagram.ElementState.mark_for_extraction:
  - 292
  - 293
  - 296
  - 304
  - 305
  - 281
  pip._vendor.pyparsing.diagram._apply_diagram_item_enhancements:
  - 396
  pip._vendor.pyparsing.diagram._apply_diagram_item_enhancements._inner:
  - 424
  - 426
  - 412
  - 429
  pip._vendor.pyparsing.diagram._should_vertical:
  - 240
  - 243
  - 237
  pip._vendor.pyparsing.diagram._to_diagram_element:
  - 512
  - 513
  - 517
  - 518
  - 521
  - 524
  - 532
  - 535
  - 537
  - 538
  - 539
  - 541
  - 542
  - 544
  - 545
  - 546
  - 548
  - 549
  - 551
  - 552
  - 553
  - 555
  - 556
  - 557
  - 558
  - 559
  - 560
  - 561
  - 562
  - 563
  - 564
  - 566
  - 567
  - 568
  - 569
  - 570
  - 572
  - 573
  - 574
  - 575
  - 576
  - 577
  - 578
  - 579
  - 580
  - 583
  - 586
  - 587
  - 588
  - 589
  - 590
  - 591
  - 593
  - 596
  - 600
  - 605
  - 607
  - 608
  - 611
  - 613
  - 614
  - 616
  - 627
  - 628
  - 630
  - 634
  - 639
  - 640
  - 643
  - 646
  - 649
  - 650
  - 651
  - 652
  - 462
  - 475
  - 479
  - 484
  - 485
  - 494
  - 495
  - 500
  pip._vendor.pyparsing.diagram._visible_exprs:
  - 447
  pip._vendor.pyparsing.diagram._worth_extracting:
  - 392
  - 387
  - 391
  pip._vendor.pyparsing.diagram.railroad_to_html:
  - 138
  - 143
  - 144
  - 146
  - 148
  - 149
  - 151
  - 153
  - 155
  - 157
  pip._vendor.pyparsing.diagram.resolve_partial:
  - 161
  - 164
  - 165
  - 166
  - 167
  - 168
  - 169
  - 170
  - 171
  pip._vendor.pyparsing.diagram.to_railroad:
  - 224
  - 225
  - 226
  - 196
  - 197
  - 230
  - 231
  - 206
  - 208
  - 209
  - 211
  - 214
  - 183
  - 217
  - 215
  - 219
  - 221
  - 223
  pip._vendor.pyparsing.exceptions:
  - 21
  - 22
  pip._vendor.pyparsing.exceptions.ParseBaseException:
  - 26
  - 247
  pip._vendor.pyparsing.exceptions.ParseBaseException.__init__:
  - 52
  pip._vendor.pyparsing.exceptions.ParseBaseException.__repr__:
  - 189
  pip._vendor.pyparsing.exceptions.ParseBaseException.__str__:
  - 173
  - 174
  - 178
  - 179
  - 180
  - 183
  pip._vendor.pyparsing.exceptions.ParseBaseException._from_exception:
  - 129
  - 133
  pip._vendor.pyparsing.exceptions.ParseBaseException.col:
  - 154
  - 151
  pip._vendor.pyparsing.exceptions.ParseBaseException.column:
  - 161
  - 158
  pip._vendor.pyparsing.exceptions.ParseBaseException.explain:
  - 208
  - 244
  pip._vendor.pyparsing.exceptions.ParseBaseException.explain_exception:
  - 63
  - 81
  - 82
  - 84
  - 85
  - 86
  - 87
  - 89
  - 90
  - 91
  - 92
  - 95
  - 96
  - 97
  - 101
  - 103
  - 105
  - 106
  - 110
  - 111
  - 112
  - 116
  - 119
  - 122
  - 125
  pip._vendor.pyparsing.exceptions.ParseBaseException.line:
  - 137
  - 140
  pip._vendor.pyparsing.exceptions.ParseBaseException.lineno:
  - 144
  - 147
  pip._vendor.pyparsing.exceptions.ParseBaseException.markInputline:
  - 248
  pip._vendor.pyparsing.exceptions.ParseBaseException.mark_input_line:
  - 201
  - 194
  - 205
  - 202
  pip._vendor.pyparsing.exceptions.ParseException:
  - 253
  pip._vendor.pyparsing.exceptions.ParseFatalException:
  - 273
  pip._vendor.pyparsing.exceptions.ParseSyntaxException:
  - 280
  pip._vendor.pyparsing.exceptions.RecursiveGrammarException:
  - 289
  pip._vendor.pyparsing.helpers:
  - 640
  - 643
  - 644
  - 1028
  - 1062
  - 1065
  - 1068
  - 1071
  - 1074
  - 1077
  - 1080
  - 1083
  - 1086
  - 1089
  - 1092
  - 1095
  - 1098
  - 1001
  - 1004
  - 1006
  - 1007
  - 1009
  - 1010
  - 1011
  - 1013
  - 1014
  - 1016
  - 1019
  - 1021
  - 1022
  - 639
  pip._vendor.pyparsing.helpers.OpAssoc:
  - 655
  pip._vendor.pyparsing.helpers._makeTags:
  - 542
  - 543
  - 545
  - 549
  - 550
  - 551
  - 554
  - 555
  - 556
  - 557
  - 562
  - 567
  - 568
  - 569
  - 570
  - 571
  - 572
  - 576
  - 577
  - 581
  - 583
  - 585
  - 586
  - 590
  - 591
  - 595
  pip._vendor.pyparsing.helpers._makeTags.<lambda2>:
  - 571
  pip._vendor.pyparsing.helpers._makeTags.<lambda4>:
  - 586
  - 587
  pip._vendor.pyparsing.helpers.countedArray:
  - 1069
  pip._vendor.pyparsing.helpers.counted_array:
  - 71
  - 72
  - 74
  - 75
  - 76
  - 77
  - 26
  - 62
  pip._vendor.pyparsing.helpers.counted_array.<lambda1>:
  - 72
  pip._vendor.pyparsing.helpers.counted_array.count_field_parse_action:
  - 67
  pip._vendor.pyparsing.helpers.delimitedList:
  - 1063
  pip._vendor.pyparsing.helpers.delimited_list:
  - 1042
  - 1043
  - 1066
  pip._vendor.pyparsing.helpers.dictOf:
  - 1081
  pip._vendor.pyparsing.helpers.dict_of:
  - 312
  - 276
  pip._vendor.pyparsing.helpers.indentedBlock:
  - 943
  - 973
  - 974
  - 975
  - 976
  - 977
  - 978
  - 979
  - 981
  - 985
  - 986
  - 858
  - 987
  - 988
  - 992
  - 993
  - 995
  - 996
  - 997
  pip._vendor.pyparsing.helpers.indentedBlock.<lambda1>:
  - 993
  pip._vendor.pyparsing.helpers.indentedBlock.<lambda2>:
  - 995
  pip._vendor.pyparsing.helpers.indentedBlock.checkPeerIndent:
  - 952
  - 953
  - 949
  - 951
  pip._vendor.pyparsing.helpers.indentedBlock.checkSubIndent:
  - 960
  - 958
  - 959
  pip._vendor.pyparsing.helpers.indentedBlock.checkUnindent:
  - 965
  - 967
  - 968
  - 970
  - 971
  pip._vendor.pyparsing.helpers.infixNotation:
  - 1099
  pip._vendor.pyparsing.helpers.infix_notation:
  - 773
  - 774
  - 775
  - 776
  - 777
  - 780
  - 781
  - 790
  - 792
  - 793
  - 794
  - 795
  - 796
  - 805
  - 808
  - 811
  - 812
  - 813
  - 686
  - 814
  - 815
  - 816
  - 817
  - 818
  - 822
  - 823
  - 824
  - 826
  - 827
  - 828
  - 830
  - 831
  - 832
  - 833
  - 834
  - 835
  - 839
  - 842
  - 843
  - 845
  - 846
  - 847
  - 848
  - 850
  - 851
  pip._vendor.pyparsing.helpers.infix_notation._FB.parseImpl:
  - 768
  pip._vendor.pyparsing.helpers.locatedExpr:
  - 402
  - 403
  - 404
  - 405
  - 406
  - 376
  pip._vendor.pyparsing.helpers.makeHTMLTags:
  - 1090
  pip._vendor.pyparsing.helpers.makeXMLTags:
  - 1093
  pip._vendor.pyparsing.helpers.make_html_tags:
  - 602
  - 623
  pip._vendor.pyparsing.helpers.make_xml_tags:
  - 634
  - 629
  pip._vendor.pyparsing.helpers.matchPreviousExpr:
  - 1075
  pip._vendor.pyparsing.helpers.matchPreviousLiteral:
  - 1072
  pip._vendor.pyparsing.helpers.match_previous_expr:
  - 128
  - 129
  - 144
  - 145
  - 114
  pip._vendor.pyparsing.helpers.match_previous_expr.copy_token_to_repeater:
  - 133
  - 142
  pip._vendor.pyparsing.helpers.match_previous_expr.copy_token_to_repeater.must_match_these_tokens:
  - 136
  - 137
  pip._vendor.pyparsing.helpers.match_previous_literal:
  - 81
  - 108
  - 109
  - 95
  pip._vendor.pyparsing.helpers.match_previous_literal.copy_token_to_repeater:
  - 98
  - 99
  - 100
  - 103
  - 104
  - 106
  pip._vendor.pyparsing.helpers.nestedExpr:
  - 1087
  pip._vendor.pyparsing.helpers.nested_expr:
  - 513
  - 514
  - 515
  - 517
  - 519
  - 520
  - 521
  - 522
  - 523
  - 525
  - 530
  - 531
  - 532
  - 533
  - 536
  - 537
  - 418
  - 485
  - 486
  - 487
  - 489
  - 490
  - 491
  - 492
  - 493
  - 494
  - 495
  - 496
  - 498
  - 503
  - 505
  - 507
  - 509
  - 510
  - 511
  pip._vendor.pyparsing.helpers.nested_expr.<lambda1>:
  - 503
  pip._vendor.pyparsing.helpers.nested_expr.<lambda2>:
  - 507
  pip._vendor.pyparsing.helpers.nested_expr.<lambda3>:
  - 517
  pip._vendor.pyparsing.helpers.nested_expr.<lambda4>:
  - 525
  pip._vendor.pyparsing.helpers.oneOf:
  - 1078
  pip._vendor.pyparsing.helpers.one_of:
  - 256
  - 259
  - 260
  - 265
  - 270
  - 271
  - 158
  - 193
  - 194
  - 197
  - 203
  - 204
  - 205
  - 208
  - 209
  - 213
  - 214
  - 215
  - 216
  - 217
  - 220
  - 221
  - 225
  - 227
  - 229
  - 230
  - 233
  - 235
  - 240
  - 244
  - 246
  - 248
  - 251
  - 254
  pip._vendor.pyparsing.helpers.one_of.<lambda1>:
  - 204
  pip._vendor.pyparsing.helpers.one_of.<lambda2>:
  - 205
  pip._vendor.pyparsing.helpers.one_of.<lambda4>:
  - 209
  pip._vendor.pyparsing.helpers.one_of.<lambda5>:
  - 260
  pip._vendor.pyparsing.helpers.originalTextFor:
  - 1084
  pip._vendor.pyparsing.helpers.original_text_for:
  - 352
  - 354
  - 355
  - 356
  - 362
  - 364
  - 318
  - 351
  pip._vendor.pyparsing.helpers.original_text_for.extractText:
  - 360
  pip._vendor.pyparsing.helpers.replaceHTMLEntity:
  - 1096
  pip._vendor.pyparsing.helpers.replace_html_entity:
  - 650
  - 651
  pip._vendor.pyparsing.helpers.ungroup:
  - 369
  - 372
  pip._vendor.pyparsing.results:
  - 795
  - 796
  - 14
  pip._vendor.pyparsing.results.ParseResults:
  - 792
  - 35
  - 788
  - 790
  pip._vendor.pyparsing.results.ParseResults.List:
  - 99
  pip._vendor.pyparsing.results.ParseResults.List.__new__:
  - 138
  - 141
  - 146
  pip._vendor.pyparsing.results.ParseResults.__add__:
  - 438
  pip._vendor.pyparsing.results.ParseResults.__delitem__:
  - 229
  - 230
  - 234
  - 235
  - 237
  - 239
  - 240
  - 242
  - 243
  - 244
  - 245
  pip._vendor.pyparsing.results.ParseResults.__dir__:
  - 758
  pip._vendor.pyparsing.results.ParseResults.__getattr__:
  - 433
  pip._vendor.pyparsing.results.ParseResults.__getitem__:
  - 208
  - 211
  - 205
  pip._vendor.pyparsing.results.ParseResults.__getstate__:
  - 742
  pip._vendor.pyparsing.results.ParseResults.__iadd__:
  - 448
  - 449
  - 451
  - 455
  - 457
  - 443
  - 446
  - 447
  pip._vendor.pyparsing.results.ParseResults.__init__:
  - 192
  - 199
  - 176
  - 177
  - 178
  - 179
  - 182
  - 183
  - 185
  - 186
  - 187
  - 188
  - 191
  pip._vendor.pyparsing.results.ParseResults.__iter__:
  - 261
  pip._vendor.pyparsing.results.ParseResults.__len__:
  - 255
  pip._vendor.pyparsing.results.ParseResults.__new__:
  - 161
  - 162
  - 166
  - 149
  - 151
  - 154
  - 156
  - 158
  pip._vendor.pyparsing.results.ParseResults.__radd__:
  - 465
  - 467
  pip._vendor.pyparsing.results.ParseResults.__repr__:
  - 473
  pip._vendor.pyparsing.results.ParseResults.__reversed__:
  - 264
  pip._vendor.pyparsing.results.ParseResults.__setitem__:
  - 225
  - 214
  - 215
  - 217
  - 221
  - 222
  pip._vendor.pyparsing.results.ParseResults.__setstate__:
  - 751
  pip._vendor.pyparsing.results.ParseResults.__str__:
  - 480
  - 478
  pip._vendor.pyparsing.results.ParseResults._asStringList:
  - 489
  - 490
  - 491
  - 492
  - 493
  - 495
  pip._vendor.pyparsing.results.ParseResults.append:
  - 400
  - 386
  pip._vendor.pyparsing.results.ParseResults.as_dict:
  - 545
  - 519
  pip._vendor.pyparsing.results.ParseResults.as_dict.to_item:
  - 540
  - 541
  pip._vendor.pyparsing.results.ParseResults.as_list:
  - 514
  - 499
  pip._vendor.pyparsing.results.ParseResults.clear:
  - 427
  - 423
  pip._vendor.pyparsing.results.ParseResults.copy:
  - 554
  - 555
  - 548
  pip._vendor.pyparsing.results.ParseResults.deepcopy:
  - 576
  - 577
  - 578
  - 562
  - 565
  - 567
  - 568
  - 569
  - 570
  - 572
  - 573
  - 574
  - 575
  pip._vendor.pyparsing.results.ParseResults.dump:
  - 653
  - 655
  - 656
  - 657
  - 658
  - 659
  - 660
  - 661
  - 662
  - 663
  - 664
  - 665
  - 673
  - 675
  - 676
  - 678
  - 679
  - 680
  - 681
  - 687
  - 696
  - 704
  - 708
  - 631
  pip._vendor.pyparsing.results.ParseResults.extend:
  - 417
  - 418
  - 403
  - 420
  pip._vendor.pyparsing.results.ParseResults.from_dict:
  - 777
  - 778
  - 779
  - 780
  - 782
  - 783
  - 784
  - 762
  pip._vendor.pyparsing.results.ParseResults.from_dict.is_iterable:
  - 770
  - 775
  pip._vendor.pyparsing.results.ParseResults.get:
  - 338
  - 355
  pip._vendor.pyparsing.results.ParseResults.get_name:
  - 609
  - 611
  - 612
  - 583
  - 621
  - 622
  - 623
  - 624
  - 626
  - 607
  pip._vendor.pyparsing.results.ParseResults.haskeys:
  - 276
  pip._vendor.pyparsing.results.ParseResults.insert:
  - 361
  - 377
  - 379
  - 380
  - 381
  pip._vendor.pyparsing.results.ParseResults.items:
  - 273
  pip._vendor.pyparsing.results.ParseResults.keys:
  - 267
  pip._vendor.pyparsing.results.ParseResults.pop:
  - 321
  - 323
  - 324
  - 328
  - 282
  pip._vendor.pyparsing.results.ParseResults.pprint:
  - 735
  - 711
  pip._vendor.pyparsing.results.ParseResults.values:
  - 270
  pip._vendor.pyparsing.testing.pyparsing_test:
  - 16
  pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts:
  - 125
  pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertParseAndCheckDict:
  - 162
  - 163
  - 164
  - 166
  - 167
  - 158
  pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertParseAndCheckList:
  - 144
  - 148
  - 149
  - 150
  - 152
  - 153
  pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertParseResultsEquals:
  - 132
  - 136
  - 137
  - 138
  - 139
  pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertRaisesParseException:
  - 234
  - 235
  pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts.assertRunTestResults:
  - 172
  - 183
  - 186
  - 188
  - 192
  - 193
  - 195
  - 199
  - 203
  - 204
  - 207
  - 210
  - 211
  - 213
  - 214
  - 216
  - 217
  - 225
  - 228
  pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context:
  - 21
  pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.__enter__:
  - 119
  pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.__exit__:
  - 122
  pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.copy:
  - 114
  - 115
  pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.restore:
  - 97
  - 98
  - 101
  - 102
  - 82
  - 86
  - 93
  pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context.save:
  - 59
  - 71
  pip._vendor.pyparsing.testing.pyparsing_test.with_line_numbers:
  - 265
  - 266
  - 267
  - 268
  - 269
  - 271
  - 274
  - 277
  - 278
  - 279
  - 281
  - 282
  - 283
  - 284
  - 285
  - 287
  - 288
  - 290
  - 291
  - 292
  - 293
  - 295
  - 296
  - 298
  - 299
  - 302
  - 303
  - 305
  - 308
  - 310
  - 319
  - 326
  - 328
  - 247
  pip._vendor.pyparsing.unicode._lazyclassproperty.__get__:
  - 15
  - 16
  - 17
  - 18
  - 23
  - 24
  pip._vendor.pyparsing.unicode.pyparsing_unicode:
  - 129
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Arabic:
  - 320
  pip._vendor.pyparsing.unicode.pyparsing_unicode.BasicMultilingualPlane:
  - 141
  pip._vendor.pyparsing.unicode.pyparsing_unicode.CJK:
  - 310
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Chinese:
  - 219
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Cyrillic:
  - 206
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Devanagari:
  - 342
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Greek:
  - 166
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Hangul:
  - 288
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Hebrew:
  - 328
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Japanese:
  - 242
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Japanese.Hiragana:
  - 252
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Japanese.Kanji:
  - 245
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Japanese.Katakana:
  - 264
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Latin1:
  - 147
  pip._vendor.pyparsing.unicode.pyparsing_unicode.LatinA:
  - 154
  pip._vendor.pyparsing.unicode.pyparsing_unicode.LatinB:
  - 160
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Thai:
  - 313
  pip._vendor.pyparsing.unicode.unicode_set:
  - 32
  pip._vendor.pyparsing.unicode.unicode_set._chars_for_ranges:
  - 58
  - 59
  - 61
  - 62
  - 63
  pip._vendor.pyparsing.unicode.unicode_set.alphanums:
  - 82
  pip._vendor.pyparsing.unicode.unicode_set.alphas:
  - 72
  - 73
  pip._vendor.pyparsing.unicode.unicode_set.identbodychars:
  - 101
  - 105
  - 106
  - 107
  - 110
  - 111
  pip._vendor.pyparsing.unicode.unicode_set.identchars:
  - 87
  - 88
  - 89
  - 90
  - 91
  pip._vendor.pyparsing.unicode.unicode_set.identifier:
  - 125
  - 119
  pip._vendor.pyparsing.unicode.unicode_set.nums:
  - 77
  - 78
  pip._vendor.pyparsing.unicode.unicode_set.printables:
  - 67
  - 68
  pip._vendor.pyparsing.util:
  - 70
  - 39
  - 10
  - 11
  - 56
  pip._vendor.pyparsing.util.LRUMemo:
  - 130
  pip._vendor.pyparsing.util.LRUMemo.__delitem__:
  - 160
  - 155
  - 159
  pip._vendor.pyparsing.util.LRUMemo.__getitem__:
  - 146
  pip._vendor.pyparsing.util.LRUMemo.__init__:
  - 140
  pip._vendor.pyparsing.util.LRUMemo.__setitem__:
  - 150
  pip._vendor.pyparsing.util.LRUMemo.clear:
  - 164
  - 165
  pip._vendor.pyparsing.util.UnboundedMemo:
  - 169
  pip._vendor.pyparsing.util._FifoCache.__init__:
  - 103
  - 105
  - 108
  - 124
  - 125
  - 126
  pip._vendor.pyparsing.util._FifoCache.__init__.clear:
  - 120
  - 121
  pip._vendor.pyparsing.util._FifoCache.__init__.get:
  - 111
  pip._vendor.pyparsing.util._FifoCache.__init__.set_:
  - 115
  - 116
  pip._vendor.pyparsing.util._UnboundedCache.__init__:
  - 96
  - 97
  - 98
  - 84
  pip._vendor.pyparsing.util._UnboundedCache.__init__.clear:
  - 93
  pip._vendor.pyparsing.util._UnboundedCache.__init__.get:
  - 87
  pip._vendor.pyparsing.util.__config_flags:
  - 35
  - 36
  - 15
  pip._vendor.pyparsing.util.__config_flags.<lambda1>:
  - 35
  pip._vendor.pyparsing.util.__config_flags.<lambda2>:
  - 36
  pip._vendor.pyparsing.util.__config_flags._set:
  - 23
  - 24
  - 25
  - 30
  - 31
  pip._vendor.pyparsing.util._collapse_string_to_ranges:
  - 225
  - 227
  - 197
  - 206
  - 210
  - 211
  - 212
  - 213
  - 214
  - 215
  - 217
  - 218
  - 220
  - 221
  - 222
  pip._vendor.pyparsing.util._collapse_string_to_ranges.is_consecutive:
  - 192
  - 193
  - 190
  pip._vendor.pyparsing.util._escape_regex_range_chars:
  - 179
  - 180
  - 181
  - 182
  - 183
  pip._vendor.pyparsing.util._flatten:
  - 232
  - 233
  - 234
  - 236
  pip._vendor.pyparsing.util._make_synonym_function:
  - 260
  - 270
  - 272
  - 245
  - 277
  - 249
  - 251
  pip._vendor.pyparsing.util._make_synonym_function._inner:
  - 256
  - 265
  pip._vendor.pyparsing.util.col:
  - 41
  - 53
  pip._vendor.pyparsing.util.line:
  - 72
  - 75
  - 76
  pip._vendor.pyparsing.util.lineno:
  - 58
  - 67
  pip._vendor.pyparsing.util.replaced_by_pep8:
  - 281
  - 284
  pip._vendor.pyparsing.util.replaced_by_pep8.<lambda1>:
  - 284
  pip._vendor.pyparsing.version_info.__repr__:
  - 120
  pip._vendor.pyproject_hooks:
  - 1
  pip._vendor.pyproject_hooks._compat:
  - 5
  pip._vendor.pyproject_hooks._impl.BackendInvalid:
  - 30
  pip._vendor.pyproject_hooks._impl.BackendInvalid.__init__:
  - 32
  pip._vendor.pyproject_hooks._impl.BackendUnavailable:
  - 24
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller:
  - 99
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.__init__:
  - 129
  - 110
  - 118
  - 121
  - 123
  - 125
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._call_hook:
  - 320
  - 322
  - 328
  - 300
  - 301
  - 304
  - 306
  - 309
  - 311
  - 312
  - 317
  - 318
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller._supported_features:
  - 152
  - 153
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.build_editable:
  - 268
  - 269
  - 270
  - 271
  - 255
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.build_sdist:
  - 292
  - 293
  - 287
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.build_wheel:
  - 195
  - 207
  - 208
  - 209
  - 210
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.get_requires_for_build_editable:
  - 216
  - 226
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.get_requires_for_build_sdist:
  - 282
  - 277
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.get_requires_for_build_wheel:
  - 156
  - 166
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.prepare_metadata_for_build_editable:
  - 233
  - 246
  - 247
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.prepare_metadata_for_build_wheel:
  - 186
  - 187
  - 173
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller.subprocess_runner:
  - 147
  - 135
  pip._vendor.pyproject_hooks._impl.HookMissing:
  - 38
  pip._vendor.pyproject_hooks._impl.HookMissing.__init__:
  - 40
  pip._vendor.pyproject_hooks._impl.UnsupportedOperation:
  - 45
  pip._vendor.pyproject_hooks._impl.default_subprocess_runner:
  - 51
  - 55
  - 56
  - 57
  - 59
  pip._vendor.pyproject_hooks._impl.norm_and_check:
  - 75
  - 82
  - 85
  - 86
  - 90
  - 91
  - 92
  pip._vendor.pyproject_hooks._impl.quiet_subprocess_runner:
  - 67
  - 68
  - 69
  - 71
  - 63
  pip._vendor.pyproject_hooks._impl.read_json:
  - 19
  - 20
  pip._vendor.pyproject_hooks._impl.write_json:
  - 14
  - 15
  pip._vendor.pyproject_hooks._in_process:
  - 1
  - 10
  pip._vendor.pyproject_hooks._in_process._in_proc_script_path:
  - 17
  - 18
  - 14
  pip._vendor.pyproject_hooks._in_process._in_process:
  - 352
  - 1
  - 353
  pip._vendor.pyproject_hooks._in_process._in_process.BackendInvalid:
  - 47
  pip._vendor.pyproject_hooks._in_process._in_process.BackendUnavailable:
  - 41
  pip._vendor.pyproject_hooks._in_process._in_process.GotUnsupportedOperation:
  - 295
  pip._vendor.pyproject_hooks._in_process._in_process.HookMissing:
  - 53
  pip._vendor.pyproject_hooks._in_process._in_process.HookMissing.__init__:
  - 55
  pip._vendor.pyproject_hooks._in_process._in_process._DummyException:
  - 291
  pip._vendor.pyproject_hooks._in_process._in_process._build_backend:
  - 67
  - 69
  - 70
  - 71
  - 75
  - 77
  - 81
  - 82
  - 83
  - 88
  - 89
  - 90
  pip._vendor.pyproject_hooks._in_process._in_process._dist_info_files:
  - 192
  - 193
  - 194
  - 188
  - 190
  - 191
  pip._vendor.pyproject_hooks._in_process._in_process._find_already_built_wheel:
  - 226
  - 227
  - 228
  - 230
  - 231
  - 218
  - 220
  - 222
  - 223
  pip._vendor.pyproject_hooks._in_process._in_process._get_wheel_metadata_from_wheel:
  - 201
  - 207
  - 210
  - 211
  - 212
  - 213
  - 214
  pip._vendor.pyproject_hooks._in_process._in_process._supported_features:
  - 100
  - 103
  - 102
  - 95
  pip._vendor.pyproject_hooks._in_process._in_process.build_editable:
  - 256
  - 262
  - 268
  - 269
  - 270
  - 271
  - 273
  pip._vendor.pyproject_hooks._in_process._in_process.build_sdist:
  - 304
  - 305
  - 301
  - 302
  pip._vendor.pyproject_hooks._in_process._in_process.build_wheel:
  - 240
  - 246
  - 247
  - 248
  - 249
  - 251
  pip._vendor.pyproject_hooks._in_process._in_process.contained_in:
  - 60
  - 61
  - 62
  - 63
  pip._vendor.pyproject_hooks._in_process._in_process.get_requires_for_build_editable:
  - 122
  - 132
  - 126
  pip._vendor.pyproject_hooks._in_process._in_process.get_requires_for_build_sdist:
  - 281
  - 277
  - 287
  pip._vendor.pyproject_hooks._in_process._in_process.get_requires_for_build_wheel:
  - 112
  - 108
  - 118
  pip._vendor.pyproject_hooks._in_process._in_process.main:
  - 323
  - 324
  - 327
  - 328
  - 329
  - 331
  - 335
  - 349
  pip._vendor.pyproject_hooks._in_process._in_process.prepare_metadata_for_build_editable:
  - 165
  - 169
  - 176
  - 177
  - 181
  - 159
  pip._vendor.pyproject_hooks._in_process._in_process.prepare_metadata_for_build_wheel:
  - 137
  - 142
  - 146
  - 149
  - 152
  - 153
  pip._vendor.pyproject_hooks._in_process._in_process.read_json:
  - 36
  - 37
  pip._vendor.pyproject_hooks._in_process._in_process.write_json:
  - 32
  - 31
  pip._vendor.requests:
  - 128
  - 131
  - 102
  - 6
  - 136
  - 106
  - 107
  - 143
  - 179
  - 182
  - 121
  pip._vendor.requests._check_cryptography:
  - 89
  - 93
  - 94
  - 97
  pip._vendor.requests._internal_utils:
  - 1
  - 12
  - 13
  - 14
  - 15
  pip._vendor.requests._internal_utils.to_native_string:
  - 33
  - 26
  - 30
  pip._vendor.requests._internal_utils.unicode_is_ascii:
  - 47
  - 45
  - 39
  pip._vendor.requests.adapters:
  - 1
  pip._vendor.requests.adapters.BaseAdapter:
  - 71
  pip._vendor.requests.adapters.BaseAdapter.__init__:
  - 74
  pip._vendor.requests.adapters.BaseAdapter.close:
  - 96
  pip._vendor.requests.adapters.BaseAdapter.send:
  - 79
  pip._vendor.requests.adapters.HTTPAdapter:
  - 101
  pip._vendor.requests.adapters.HTTPAdapter.__getstate__:
  - 158
  pip._vendor.requests.adapters.HTTPAdapter.__init__:
  - 142
  - 143
  - 145
  - 149
  - 155
  pip._vendor.requests.adapters.HTTPAdapter.__setstate__:
  - 169
  - 166
  - 167
  pip._vendor.requests.adapters.HTTPAdapter.add_headers:
  - 400
  pip._vendor.requests.adapters.HTTPAdapter.build_response:
  - 323
  - 295
  - 304
  - 307
  - 310
  - 313
  - 317
  - 318
  pip._vendor.requests.adapters.HTTPAdapter.cert_verify:
  - 257
  - 258
  - 289
  - 260
  - 268
  - 238
  - 277
  - 278
  - 249
  - 284
  - 254
  pip._vendor.requests.adapters.HTTPAdapter.close:
  - 368
  - 361
  - 366
  - 367
  pip._vendor.requests.adapters.HTTPAdapter.get_connection:
  - 354
  - 355
  - 356
  - 332
  - 340
  - 342
  - 343
  - 344
  - 345
  - 350
  - 351
  pip._vendor.requests.adapters.HTTPAdapter.init_poolmanager:
  - 176
  - 192
  pip._vendor.requests.adapters.HTTPAdapter.proxy_headers:
  - 427
  - 430
  - 429
  - 414
  pip._vendor.requests.adapters.HTTPAdapter.proxy_manager_for:
  - 225
  - 226
  - 200
  - 211
  - 213
  - 214
  - 215
  pip._vendor.requests.adapters.HTTPAdapter.request_url:
  - 384
  - 385
  - 389
  - 390
  - 391
  - 394
  - 395
  - 371
  pip._vendor.requests.adapters.HTTPAdapter.send:
  - 512
  - 515
  - 528
  - 531
  - 533
  - 538
  - 437
  - 454
  - 458
  - 459
  - 460
  - 471
  - 474
  - 480
  - 483
  - 486
  - 504
  - 506
  - 509
  pip._vendor.requests.api:
  - 1
  pip._vendor.requests.api.delete:
  - 149
  - 157
  pip._vendor.requests.api.get:
  - 73
  - 63
  pip._vendor.requests.api.head:
  - 89
  - 99
  - 100
  pip._vendor.requests.api.options:
  - 85
  - 77
  pip._vendor.requests.api.patch:
  - 145
  - 134
  pip._vendor.requests.api.post:
  - 104
  - 115
  pip._vendor.requests.api.put:
  - 130
  - 119
  pip._vendor.requests.api.request:
  - 58
  - 59
  - 15
  pip._vendor.requests.auth:
  - 1
  pip._vendor.requests.auth.AuthBase:
  - 70
  pip._vendor.requests.auth.HTTPBasicAuth:
  - 77
  pip._vendor.requests.auth.HTTPBasicAuth.__call__:
  - 95
  pip._vendor.requests.auth.HTTPBasicAuth.__eq__:
  - 84
  pip._vendor.requests.auth.HTTPDigestAuth:
  - 108
  pip._vendor.requests.auth.HTTPDigestAuth.__call__:
  - 288
  - 290
  - 291
  - 293
  - 300
  - 301
  pip._vendor.requests.auth.HTTPDigestAuth.__eq__:
  - 307
  pip._vendor.requests.auth.HTTPDigestAuth.__init__:
  - 114
  pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header:
  - 133
  - 134
  - 135
  - 138
  - 141
  - 143
  - 151
  - 159
  - 167
  - 176
  - 178
  - 183
  - 186
  - 192
  - 193
  - 195
  - 200
  - 201
  - 202
  - 203
  - 205
  - 206
  - 207
  - 209
  - 210
  - 211
  - 213
  - 225
  - 227
  - 229
  - 231
  - 127
  pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.<lambda1>:
  - 176
  pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.md5_utf8:
  - 146
  - 147
  - 148
  pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha256_utf8:
  - 162
  - 163
  - 164
  pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha512_utf8:
  - 170
  - 171
  - 172
  pip._vendor.requests.auth.HTTPDigestAuth.build_digest_header.sha_utf8:
  - 154
  - 155
  - 156
  pip._vendor.requests.auth.HTTPDigestAuth.handle_401:
  - 257
  - 258
  - 260
  - 263
  - 264
  - 268
  - 269
  - 270
  - 271
  - 272
  - 242
  - 274
  - 277
  - 278
  - 250
  - 254
  pip._vendor.requests.auth.HTTPDigestAuth.handle_redirect:
  - 237
  - 238
  pip._vendor.requests.auth.HTTPDigestAuth.init_per_thread_state:
  - 118
  pip._vendor.requests.auth.HTTPProxyAuth:
  - 100
  pip._vendor.requests.auth.HTTPProxyAuth.__call__:
  - 103
  pip._vendor.requests.auth._basic_auth_str:
  - 35
  - 36
  - 37
  - 43
  - 45
  - 46
  - 47
  - 50
  - 53
  - 56
  - 57
  - 26
  - 59
  - 60
  - 62
  - 63
  pip._vendor.requests.certs:
  - 24
  - 17
  - 3
  - 23
  pip._vendor.requests.check_compatibility:
  - 65
  - 68
  - 72
  - 73
  - 74
  - 77
  - 78
  - 79
  - 56
  - 60
  - 61
  pip._vendor.requests.compat:
  - 1
  pip._vendor.requests.cookies:
  - 1
  pip._vendor.requests.cookies.CookieConflictError:
  - 171
  pip._vendor.requests.cookies.MockRequest:
  - 24
  pip._vendor.requests.cookies.MockRequest.__init__:
  - 38
  pip._vendor.requests.cookies.MockRequest.add_header:
  - 79
  pip._vendor.requests.cookies.MockRequest.get_full_url:
  - 56
  - 58
  - 52
  - 55
  pip._vendor.requests.cookies.MockRequest.get_header:
  - 76
  pip._vendor.requests.cookies.MockRequest.get_host:
  - 44
  pip._vendor.requests.cookies.MockRequest.get_origin_req_host:
  - 47
  pip._vendor.requests.cookies.MockRequest.host:
  - 100
  pip._vendor.requests.cookies.MockRequest.origin_req_host:
  - 96
  pip._vendor.requests.cookies.MockRequest.unverifiable:
  - 92
  pip._vendor.requests.cookies.MockResponse:
  - 104
  pip._vendor.requests.cookies.MockResponse.__init__:
  - 111
  pip._vendor.requests.cookies.MockResponse.getheaders:
  - 121
  pip._vendor.requests.cookies.RequestsCookieJar:
  - 177
  pip._vendor.requests.cookies.RequestsCookieJar.__contains__:
  - 323
  pip._vendor.requests.cookies.RequestsCookieJar.__delitem__:
  - 344
  - 347
  pip._vendor.requests.cookies.RequestsCookieJar.__getitem__:
  - 328
  - 334
  pip._vendor.requests.cookies.RequestsCookieJar.__getstate__:
  - 416
  - 417
  - 419
  pip._vendor.requests.cookies.RequestsCookieJar.__setitem__:
  - 337
  - 341
  pip._vendor.requests.cookies.RequestsCookieJar.__setstate__:
  - 424
  - 425
  - 426
  - 423
  pip._vendor.requests.cookies.RequestsCookieJar._find:
  - 367
  - 378
  - 379
  - 380
  - 381
  pip._vendor.requests.cookies.RequestsCookieJar._find_no_duplicates:
  - 387
  - 399
  - 400
  - 401
  - 402
  - 403
  - 411
  pip._vendor.requests.cookies.RequestsCookieJar.copy:
  - 432
  - 429
  - 430
  - 431
  pip._vendor.requests.cookies.RequestsCookieJar.get:
  - 202
  - 195
  pip._vendor.requests.cookies.RequestsCookieJar.get_dict:
  - 315
  - 314
  - 307
  pip._vendor.requests.cookies.RequestsCookieJar.get_policy:
  - 436
  pip._vendor.requests.cookies.RequestsCookieJar.items:
  - 275
  - 269
  pip._vendor.requests.cookies.RequestsCookieJar.iteritems:
  - 265
  - 266
  - 260
  pip._vendor.requests.cookies.RequestsCookieJar.iterkeys:
  - 232
  - 226
  - 231
  pip._vendor.requests.cookies.RequestsCookieJar.itervalues:
  - 248
  - 249
  - 243
  pip._vendor.requests.cookies.RequestsCookieJar.keys:
  - 240
  - 235
  pip._vendor.requests.cookies.RequestsCookieJar.list_domains:
  - 280
  - 281
  - 282
  - 278
  pip._vendor.requests.cookies.RequestsCookieJar.list_paths:
  - 288
  - 289
  - 290
  - 286
  pip._vendor.requests.cookies.RequestsCookieJar.multiple_domains:
  - 300
  - 301
  - 294
  - 303
  pip._vendor.requests.cookies.RequestsCookieJar.set:
  - 207
  - 212
  - 213
  - 214
  - 218
  - 219
  - 221
  - 222
  pip._vendor.requests.cookies.RequestsCookieJar.set_cookie:
  - 352
  - 353
  - 355
  - 356
  - 350
  - 351
  pip._vendor.requests.cookies.RequestsCookieJar.update:
  - 359
  - 360
  - 361
  - 362
  - 364
  pip._vendor.requests.cookies.RequestsCookieJar.values:
  - 257
  - 252
  pip._vendor.requests.cookies._copy_cookie_jar:
  - 448
  - 449
  - 450
  - 451
  - 441
  - 444
  - 446
  pip._vendor.requests.cookies.cookiejar_from_dict:
  - 522
  - 530
  - 531
  - 533
  - 535
  - 536
  - 537
  pip._vendor.requests.cookies.create_cookie:
  - 483
  - 484
  - 485
  - 486
  - 487
  - 456
  - 489
  - 477
  - 478
  pip._vendor.requests.cookies.extract_cookies_to_jar:
  - 131
  - 134
  - 136
  - 137
  - 125
  pip._vendor.requests.cookies.get_cookie_header:
  - 146
  - 147
  - 148
  - 141
  pip._vendor.requests.cookies.merge_cookies:
  - 549
  - 552
  - 553
  - 554
  - 556
  - 558
  - 559
  - 543
  pip._vendor.requests.cookies.morsel_to_cookie:
  - 515
  - 493
  - 496
  - 498
  - 501
  - 503
  - 504
  - 506
  pip._vendor.requests.cookies.remove_cookie_by_name:
  - 160
  - 162
  - 164
  - 166
  - 167
  - 152
  - 157
  - 158
  pip._vendor.requests.exceptions:
  - 1
  pip._vendor.requests.exceptions.ChunkedEncodingError:
  - 110
  pip._vendor.requests.exceptions.ConnectTimeout:
  - 71
  pip._vendor.requests.exceptions.ConnectionError:
  - 50
  pip._vendor.requests.exceptions.ContentDecodingError:
  - 114
  pip._vendor.requests.exceptions.FileModeWarning:
  - 137
  pip._vendor.requests.exceptions.HTTPError:
  - 46
  pip._vendor.requests.exceptions.InvalidHeader:
  - 102
  pip._vendor.requests.exceptions.InvalidJSONError:
  - 28
  pip._vendor.requests.exceptions.InvalidProxyURL:
  - 106
  pip._vendor.requests.exceptions.InvalidSchema:
  - 94
  pip._vendor.requests.exceptions.InvalidURL:
  - 98
  pip._vendor.requests.exceptions.JSONDecodeError:
  - 32
  pip._vendor.requests.exceptions.JSONDecodeError.__init__:
  - 41
  - 42
  - 35
  pip._vendor.requests.exceptions.MissingSchema:
  - 90
  pip._vendor.requests.exceptions.ProxyError:
  - 54
  pip._vendor.requests.exceptions.ReadTimeout:
  - 78
  pip._vendor.requests.exceptions.RequestException:
  - 13
  pip._vendor.requests.exceptions.RequestException.__init__:
  - 18
  - 19
  - 21
  - 22
  - 24
  pip._vendor.requests.exceptions.RequestsDependencyWarning:
  - 141
  pip._vendor.requests.exceptions.RequestsWarning:
  - 133
  pip._vendor.requests.exceptions.RetryError:
  - 122
  pip._vendor.requests.exceptions.SSLError:
  - 58
  pip._vendor.requests.exceptions.StreamConsumedError:
  - 118
  pip._vendor.requests.exceptions.Timeout:
  - 62
  pip._vendor.requests.exceptions.TooManyRedirects:
  - 86
  pip._vendor.requests.exceptions.URLRequired:
  - 82
  pip._vendor.requests.exceptions.UnrewindableBodyError:
  - 126
  pip._vendor.requests.help:
  - 1
  - 130
  - 131
  pip._vendor.requests.help._implementation:
  - 32
  - 42
  - 44
  - 45
  - 46
  - 47
  - 52
  - 53
  - 56
  - 57
  - 58
  - 59
  pip._vendor.requests.help.info:
  - 98
  - 67
  - 101
  - 70
  - 71
  - 79
  - 83
  - 85
  - 92
  pip._vendor.requests.help.main:
  - 126
  - 127
  pip._vendor.requests.hooks:
  - 1
  pip._vendor.requests.hooks.dispatch_hook:
  - 23
  - 25
  - 26
  - 27
  - 29
  - 30
  - 31
  pip._vendor.requests.models:
  - 1
  pip._vendor.requests.models.PreparedRequest:
  - 315
  pip._vendor.requests.models.PreparedRequest.__init__:
  - 348
  pip._vendor.requests.models.PreparedRequest._get_idna_encoded_host:
  - 405
  pip._vendor.requests.models.PreparedRequest.copy:
  - 384
  - 387
  - 388
  pip._vendor.requests.models.PreparedRequest.prepare:
  - 365
  - 367
  - 368
  - 369
  - 370
  - 371
  - 372
  - 378
  pip._vendor.requests.models.PreparedRequest.prepare_auth:
  - 609
  - 590
  - 593
  - 594
  - 595
  - 597
  - 598
  - 600
  - 603
  - 606
  pip._vendor.requests.models.PreparedRequest.prepare_body:
  - 515
  - 516
  - 518
  - 525
  - 527
  - 533
  - 538
  - 542
  - 544
  - 549
  - 550
  - 555
  - 556
  - 558
  - 559
  - 560
  - 565
  - 568
  - 496
  - 505
  - 511
  pip._vendor.requests.models.PreparedRequest.prepare_content_length:
  - 576
  - 577
  - 580
  - 581
  - 583
  - 574
  - 575
  pip._vendor.requests.models.PreparedRequest.prepare_cookies:
  - 612
  - 622
  - 625
  - 627
  - 628
  pip._vendor.requests.models.PreparedRequest.prepare_headers:
  - 485
  - 487
  - 488
  - 489
  - 491
  - 493
  pip._vendor.requests.models.PreparedRequest.prepare_hooks:
  - 632
  - 637
  - 638
  pip._vendor.requests.models.PreparedRequest.prepare_method:
  - 395
  - 397
  - 398
  pip._vendor.requests.models.PreparedRequest.prepare_url:
  - 411
  - 417
  - 418
  - 420
  - 423
  - 428
  - 434
  - 438
  - 444
  - 451
  - 453
  - 456
  - 461
  - 464
  - 468
  - 471
  - 472
  - 474
  - 475
  - 476
  - 481
  pip._vendor.requests.models.Request:
  - 231
  pip._vendor.requests.models.Request.__init__:
  - 280
  - 281
  - 279
  pip._vendor.requests.models.Request.prepare:
  - 297
  - 298
  - 299
  pip._vendor.requests.models.RequestEncodingMixin._encode_files:
  - 138
  - 146
  - 148
  - 152
  - 153
  - 155
  - 156
  - 158
  - 159
  - 161
  - 162
  - 164
  - 166
  - 167
  - 169
  - 173
  - 177
  - 178
  - 180
  - 185
  - 188
  - 190
  - 191
  - 192
  - 197
  - 198
  - 199
  - 201
  pip._vendor.requests.models.RequestEncodingMixin._encode_params:
  - 128
  - 129
  - 132
  - 108
  - 115
  - 117
  - 119
  - 121
  - 122
  - 124
  - 125
  - 126
  pip._vendor.requests.models.RequestEncodingMixin.path_url:
  - 97
  - 100
  - 101
  - 102
  - 104
  - 87
  - 91
  - 94
  pip._vendor.requests.models.RequestHooksMixin.deregister_hook:
  - 224
  - 219
  pip._vendor.requests.models.RequestHooksMixin.register_hook:
  - 208
  - 210
  - 213
  - 214
  - 215
  - 216
  pip._vendor.requests.models.Response:
  - 642
  pip._vendor.requests.models.Response.__bool__:
  - 732
  pip._vendor.requests.models.Response.__exit__:
  - 710
  pip._vendor.requests.models.Response.__getstate__:
  - 715
  - 716
  - 718
  pip._vendor.requests.models.Response.__init__:
  - 700
  - 692
  - 670
  pip._vendor.requests.models.Response.__iter__:
  - 752
  - 753
  pip._vendor.requests.models.Response.__nonzero__:
  - 742
  pip._vendor.requests.models.Response.__setstate__:
  - 721
  - 722
  - 725
  - 726
  pip._vendor.requests.models.Response.apparent_encoding:
  - 792
  - 793
  pip._vendor.requests.models.Response.close:
  - 1024
  - 1029
  - 1030
  - 1032
  - 1033
  - 1034
  pip._vendor.requests.models.Response.content:
  - 896
  - 899
  - 889
  - 891
  - 893
  pip._vendor.requests.models.Response.is_permanent_redirect:
  - 779
  pip._vendor.requests.models.Response.is_redirect:
  - 772
  pip._vendor.requests.models.Response.iter_content:
  - 835
  - 837
  - 842
  - 844
  - 848
  - 849
  - 796
  pip._vendor.requests.models.Response.iter_content.generate:
  - 814
  - 816
  - 828
  - 829
  - 831
  pip._vendor.requests.models.Response.iter_lines:
  - 865
  - 869
  - 872
  - 873
  - 875
  - 877
  - 878
  - 882
  - 884
  - 885
  - 856
  pip._vendor.requests.models.Response.json:
  - 960
  - 971
  - 945
  - 952
  - 957
  - 958
  pip._vendor.requests.models.Response.links:
  - 979
  - 981
  - 985
  - 986
  - 988
  - 989
  pip._vendor.requests.models.Response.next:
  - 787
  pip._vendor.requests.models.Response.ok:
  - 765
  - 757
  pip._vendor.requests.models.Response.raise_for_status:
  - 995
  - 998
  - 1004
  - 1006
  - 1010
  - 1015
  - 1020
  pip._vendor.requests.models.Response.text:
  - 932
  - 940
  - 908
  - 923
  - 927
  pip._vendor.requests.packages:
  - 6
  - 8
  - 11
  - 12
  - 13
  pip._vendor.requests.sessions:
  - 1
  - 55
  pip._vendor.requests.sessions.Session:
  - 358
  pip._vendor.requests.sessions.Session.__exit__:
  - 457
  pip._vendor.requests.sessions.Session.__getstate__:
  - 813
  pip._vendor.requests.sessions.Session.__init__:
  - 449
  - 450
  - 451
  - 396
  - 408
  - 446
  pip._vendor.requests.sessions.Session.__setstate__:
  - 817
  - 818
  pip._vendor.requests.sessions.Session.close:
  - 797
  - 798
  - 799
  pip._vendor.requests.sessions.Session.delete:
  - 664
  - 671
  pip._vendor.requests.sessions.Session.get:
  - 601
  - 594
  - 602
  pip._vendor.requests.sessions.Session.get_adapter:
  - 788
  - 790
  - 783
  pip._vendor.requests.sessions.Session.head:
  - 616
  - 624
  - 623
  pip._vendor.requests.sessions.Session.merge_environment_settings:
  - 769
  - 770
  - 775
  - 776
  - 777
  - 778
  - 752
  - 758
  - 760
  - 761
  - 762
  - 763
  - 767
  pip._vendor.requests.sessions.Session.mount:
  - 809
  - 802
  - 810
  - 807
  pip._vendor.requests.sessions.Session.options:
  - 613
  - 612
  - 605
  pip._vendor.requests.sessions.Session.patch:
  - 652
  - 661
  pip._vendor.requests.sessions.Session.post:
  - 627
  - 637
  pip._vendor.requests.sessions.Session.prepare_request:
  - 482
  - 483
  - 485
  - 486
  - 487
  - 460
  - 492
  - 495
  - 496
  - 498
  - 472
  - 473
  - 476
  - 477
  pip._vendor.requests.sessions.Session.put:
  - 640
  - 649
  pip._vendor.requests.sessions.Session.request:
  - 579
  - 521
  - 588
  - 589
  - 563
  - 564
  - 575
  pip._vendor.requests.sessions.Session.send:
  - 674
  - 680
  - 681
  - 682
  - 683
  - 684
  - 688
  - 692
  - 693
  - 697
  - 700
  - 703
  - 706
  - 707
  - 710
  - 713
  - 716
  - 717
  - 719
  - 722
  - 724
  - 730
  - 732
  - 734
  - 738
  - 740
  - 741
  - 746
  - 747
  pip._vendor.requests.sessions.SessionRedirectMixin.get_redirect_target:
  - 123
  - 124
  - 115
  - 108
  pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_auth:
  - 291
  - 299
  - 300
  - 301
  - 284
  pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_method:
  - 346
  - 341
  - 351
  - 335
  pip._vendor.requests.sessions.SessionRedirectMixin.rebuild_proxies:
  - 323
  - 329
  - 330
  - 304
  - 316
  - 317
  - 319
  pip._vendor.requests.sessions.SessionRedirectMixin.resolve_redirects:
  - 256
  - 257
  - 262
  - 263
  - 266
  - 277
  - 280
  - 281
  - 171
  - 175
  - 176
  - 178
  - 182
  - 186
  - 188
  - 190
  - 196
  - 199
  - 200
  - 201
  - 204
  - 205
  - 206
  - 207
  - 209
  - 214
  - 215
  - 217
  - 219
  - 221
  - 224
  - 230
  - 231
  - 235
  - 240
  - 241
  - 242
  - 245
  - 246
  pip._vendor.requests.sessions.SessionRedirectMixin.should_strip_auth:
  - 128
  - 129
  - 130
  - 131
  - 137
  - 148
  - 149
  pip._vendor.requests.sessions.merge_hooks:
  - 100
  - 97
  - 92
  - 103
  pip._vendor.requests.sessions.merge_setting:
  - 67
  - 70
  - 74
  - 75
  - 79
  - 80
  - 84
  - 85
  - 62
  pip._vendor.requests.sessions.session:
  - 833
  - 822
  pip._vendor.requests.status_codes:
  - 128
  - 1
  - 106
  pip._vendor.requests.status_codes._init:
  - 110
  - 111
  - 112
  - 113
  - 114
  - 122
  pip._vendor.requests.status_codes._init.doc:
  - 117
  pip._vendor.requests.structures:
  - 1
  pip._vendor.requests.structures.CaseInsensitiveDict:
  - 14
  pip._vendor.requests.structures.CaseInsensitiveDict.__delitem__:
  - 55
  pip._vendor.requests.structures.CaseInsensitiveDict.__eq__:
  - 73
  - 68
  - 69
  pip._vendor.requests.structures.CaseInsensitiveDict.__getitem__:
  - 52
  pip._vendor.requests.structures.CaseInsensitiveDict.__init__:
  - 41
  - 42
  - 44
  pip._vendor.requests.structures.CaseInsensitiveDict.__iter__:
  - 58
  pip._vendor.requests.structures.CaseInsensitiveDict.__len__:
  - 61
  pip._vendor.requests.structures.CaseInsensitiveDict.__repr__:
  - 80
  pip._vendor.requests.structures.CaseInsensitiveDict.__setitem__:
  - 49
  pip._vendor.requests.structures.CaseInsensitiveDict.copy:
  - 77
  pip._vendor.requests.structures.CaseInsensitiveDict.lower_items:
  - 64
  - 65
  pip._vendor.requests.structures.LookupDict:
  - 84
  pip._vendor.requests.structures.LookupDict.__getitem__:
  - 96
  pip._vendor.requests.structures.LookupDict.__init__:
  - 88
  pip._vendor.requests.structures.LookupDict.get:
  - 99
  pip._vendor.requests.utils:
  - 1
  - 68
  - 69
  - 73
  - 630
  - 950
  - 63
  pip._vendor.requests.utils._parse_content_type_header:
  - 514
  - 521
  - 522
  - 526
  - 527
  - 528
  - 530
  - 531
  - 532
  - 533
  - 534
  pip._vendor.requests.utils._validate_header_part:
  - 1044
  - 1046
  - 1054
  pip._vendor.requests.utils.add_dict_to_cookiejar:
  - 485
  - 478
  pip._vendor.requests.utils.address_in_network:
  - 682
  - 689
  - 690
  - 691
  - 692
  pip._vendor.requests.utils.atomic_open:
  - 302
  - 303
  - 305
  - 306
  - 307
  - 309
  pip._vendor.requests.utils.check_header_validity:
  - 1040
  - 1033
  - 1039
  pip._vendor.requests.utils.default_headers:
  - 904
  - 899
  - 902
  pip._vendor.requests.utils.default_user_agent:
  - 890
  pip._vendor.requests.utils.dict_from_cookiejar:
  - 471
  - 463
  pip._vendor.requests.utils.dict_to_sequence:
  - 128
  - 125
  - 127
  pip._vendor.requests.utils.dotted_netmask:
  - 704
  - 697
  pip._vendor.requests.utils.extract_zipped_paths:
  - 291
  - 292
  - 293
  - 295
  - 264
  - 296
  - 268
  - 274
  - 275
  - 276
  - 277
  - 281
  - 283
  - 286
  - 287
  pip._vendor.requests.utils.from_key_val_list:
  - 337
  - 314
  - 331
  - 334
  pip._vendor.requests.utils.get_auth_from_url:
  - 1025
  - 1017
  - 1022
  pip._vendor.requests.utils.get_encoding_from_headers:
  - 545
  - 547
  - 550
  - 552
  - 553
  - 555
  - 558
  - 539
  pip._vendor.requests.utils.get_encodings_from_content:
  - 489
  - 493
  - 502
  - 503
  - 504
  - 507
  - 508
  - 509
  pip._vendor.requests.utils.get_environ_proxies:
  - 833
  - 825
  - 830
  pip._vendor.requests.utils.get_netrc_auth:
  - 227
  - 230
  - 200
  - 202
  - 203
  - 235
  - 236
  - 237
  - 240
  - 241
  - 213
  - 215
  - 248
  - 222
  pip._vendor.requests.utils.get_unicode_from_response:
  - 614
  - 616
  - 618
  - 620
  - 591
  - 624
  - 602
  pip._vendor.requests.utils.guess_filename:
  - 257
  - 258
  - 259
  - 260
  pip._vendor.requests.utils.guess_json_utf:
  - 963
  - 965
  - 967
  - 969
  - 970
  - 972
  - 973
  - 975
  - 978
  - 979
  - 981
  - 956
  pip._vendor.requests.utils.is_ipv4_address:
  - 712
  - 708
  pip._vendor.requests.utils.is_valid_cidr:
  - 719
  - 724
  - 726
  - 730
  - 734
  pip._vendor.requests.utils.iter_slices:
  - 581
  - 583
  - 584
  - 585
  - 586
  pip._vendor.requests.utils.parse_dict_header:
  - 425
  - 426
  - 429
  - 430
  - 431
  - 403
  pip._vendor.requests.utils.parse_header_links:
  - 928
  - 930
  - 934
  - 936
  - 938
  - 942
  - 944
  - 913
  - 924
  - 925
  pip._vendor.requests.utils.parse_list_header:
  - 394
  - 395
  - 396
  - 397
  - 371
  pip._vendor.requests.utils.prepend_scheme_if_needed:
  - 993
  - 1001
  - 1004
  - 1007
  - 1008
  - 1010
  - 1013
  - 988
  pip._vendor.requests.utils.proxy_bypass:
  - 113
  - 121
  - 118
  - 119
  pip._vendor.requests.utils.proxy_bypass_registry:
  - 99
  - 101
  - 102
  - 103
  - 105
  - 106
  - 107
  - 108
  - 83
  - 88
  - 90
  - 93
  pip._vendor.requests.utils.requote_uri:
  - 673
  - 660
  - 678
  pip._vendor.requests.utils.resolve_proxies:
  - 875
  - 876
  - 877
  - 879
  - 880
  - 882
  - 884
  - 885
  - 863
  pip._vendor.requests.utils.rewind_body:
  - 1080
  - 1088
  - 1083
  - 1084
  pip._vendor.requests.utils.select_proxy:
  - 837
  - 843
  - 844
  - 845
  - 854
  - 855
  pip._vendor.requests.utils.set_environ:
  - 744
  - 751
  - 752
  - 755
  - 757
  - 758
  pip._vendor.requests.utils.should_bypass_proxies:
  - 802
  - 805
  - 806
  - 778
  - 779
  - 780
  - 811
  - 782
  - 814
  - 786
  - 818
  - 789
  - 791
  - 792
  - 793
  - 794
  - 796
  - 765
  pip._vendor.requests.utils.should_bypass_proxies.get_proxy:
  - 773
  pip._vendor.requests.utils.stream_decode_response_unicode:
  - 576
  - 577
  - 564
  - 566
  - 567
  - 570
  - 571
  - 572
  - 573
  - 574
  - 575
  pip._vendor.requests.utils.super_len:
  - 193
  - 196
  - 137
  - 138
  - 169
  - 140
  - 171
  - 143
  - 145
  - 177
  - 180
  - 189
  - 152
  - 185
  - 156
  - 157
  - 184
  pip._vendor.requests.utils.to_key_val_list:
  - 357
  - 360
  - 363
  - 364
  - 366
  - 341
  pip._vendor.requests.utils.unquote_header_value:
  - 457
  - 458
  - 445
  - 438
  pip._vendor.requests.utils.unquote_unreserved:
  - 641
  - 642
  - 644
  - 646
  - 650
  - 656
  - 636
  pip._vendor.requests.utils.urldefragauth:
  - 1063
  - 1068
  - 1071
  - 1074
  - 1076
  pip._vendor.resolvelib.providers.AbstractProvider:
  - 2
  pip._vendor.resolvelib.providers.AbstractProvider.find_matches:
  - 64
  pip._vendor.resolvelib.providers.AbstractProvider.get_dependencies:
  - 104
  pip._vendor.resolvelib.providers.AbstractProvider.get_preference:
  - 20
  pip._vendor.resolvelib.providers.AbstractProvider.identify:
  - 5
  pip._vendor.resolvelib.providers.AbstractProvider.is_satisfied_by:
  - 93
  pip._vendor.resolvelib.providers.AbstractResolver:
  - 113
  pip._vendor.resolvelib.providers.AbstractResolver.resolve:
  - 122
  pip._vendor.resolvelib.reporters.BaseReporter:
  - 2
  pip._vendor.resolvelib.reporters.BaseReporter.adding_requirement:
  - 24
  pip._vendor.resolvelib.reporters.BaseReporter.ending:
  - 21
  pip._vendor.resolvelib.reporters.BaseReporter.ending_round:
  - 14
  pip._vendor.resolvelib.reporters.BaseReporter.pinning:
  - 43
  pip._vendor.resolvelib.reporters.BaseReporter.rejecting_candidate:
  - 40
  pip._vendor.resolvelib.reporters.BaseReporter.resolving_conflicts:
  - 34
  pip._vendor.resolvelib.reporters.BaseReporter.starting:
  - 5
  pip._vendor.resolvelib.reporters.BaseReporter.starting_round:
  - 8
  pip._vendor.resolvelib.resolvers:
  - 8
  - 102
  - 479
  pip._vendor.resolvelib.resolvers.Criterion:
  - 46
  pip._vendor.resolvelib.resolvers.Criterion.__repr__:
  - 72
  - 75
  - 71
  pip._vendor.resolvelib.resolvers.InconsistentCandidate.__init__:
  - 34
  pip._vendor.resolvelib.resolvers.InconsistentCandidate.__str__:
  - 41
  - 39
  pip._vendor.resolvelib.resolvers.RequirementsConflicted.__init__:
  - 23
  pip._vendor.resolvelib.resolvers.RequirementsConflicted.__str__:
  - 27
  - 28
  pip._vendor.resolvelib.resolvers.Resolution:
  - 106
  pip._vendor.resolvelib.resolvers.Resolution._add_to_criteria:
  - 162
  - 163
  - 164
  - 166
  - 168
  - 169
  - 139
  - 141
  - 142
  - 143
  - 144
  - 173
  - 148
  - 150
  - 152
  - 155
  - 157
  pip._vendor.resolvelib.resolvers.Resolution._attempt_to_pin_criterion:
  - 256
  - 257
  - 261
  - 237
  - 239
  - 241
  - 242
  - 249
  - 250
  - 251
  - 253
  pip._vendor.resolvelib.resolvers.Resolution._backjump:
  - 320
  - 321
  - 323
  - 328
  - 329
  - 301
  - 333
  - 271
  - 368
  - 305
  - 306
  - 369
  - 372
  - 315
  - 316
  pip._vendor.resolvelib.resolvers.Resolution._backjump._patch_criteria:
  - 353
  - 357
  - 358
  - 360
  - 361
  - 363
  - 338
  - 339
  - 345
  - 347
  - 349
  - 351
  pip._vendor.resolvelib.resolvers.Resolution._get_preference:
  - 203
  - 206
  - 208
  - 210
  - 212
  pip._vendor.resolvelib.resolvers.Resolution._get_updated_criteria:
  - 228
  - 229
  - 230
  pip._vendor.resolvelib.resolvers.Resolution._is_current_pin_satisfying:
  - 224
  - 222
  - 223
  pip._vendor.resolvelib.resolvers.Resolution._push_new_state:
  - 131
  - 132
  - 133
  - 136
  - 125
  pip._vendor.resolvelib.resolvers.Resolution._remove_information_from_criteria:
  - 196
  - 178
  - 186
  - 188
  - 189
  pip._vendor.resolvelib.resolvers.Resolution.resolve:
  - 385
  - 389
  - 390
  - 395
  - 397
  - 404
  - 406
  - 407
  - 411
  - 412
  - 416
  - 417
  - 421
  - 426
  - 427
  - 429
  - 433
  - 434
  - 438
  - 445
  - 447
  - 449
  - 453
  - 455
  - 382
  pip._vendor.resolvelib.resolvers.ResolutionImpossible.__init__:
  - 90
  pip._vendor.resolvelib.resolvers.ResolutionTooDeep.__init__:
  - 97
  pip._vendor.resolvelib.resolvers.Resolver:
  - 513
  pip._vendor.resolvelib.resolvers.Resolver.resolve:
  - 545
  - 546
  - 547
  - 518
  pip._vendor.resolvelib.resolvers.ResolverException:
  - 14
  pip._vendor.resolvelib.resolvers._build_result:
  - 484
  - 485
  - 487
  - 488
  - 491
  - 492
  - 494
  - 495
  - 496
  - 498
  - 501
  - 502
  - 503
  - 505
  - 506
  pip._vendor.resolvelib.resolvers._has_route_to_root:
  - 461
  - 463
  - 465
  - 467
  - 470
  - 471
  - 473
  - 474
  pip._vendor.resolvelib.structs.DirectedGraph:
  - 7
  pip._vendor.resolvelib.structs.DirectedGraph.__init__:
  - 10
  pip._vendor.resolvelib.structs.DirectedGraph.__iter__:
  - 15
  pip._vendor.resolvelib.structs.DirectedGraph.__len__:
  - 18
  pip._vendor.resolvelib.structs.DirectedGraph.add:
  - 32
  - 33
  - 35
  - 36
  - 37
  pip._vendor.resolvelib.structs.DirectedGraph.connect:
  - 57
  - 58
  - 51
  - 55
  pip._vendor.resolvelib.structs.DirectedGraph.copy:
  - 24
  - 25
  - 26
  - 27
  - 28
  pip._vendor.resolvelib.structs.DirectedGraph.iter_children:
  - 66
  pip._vendor.resolvelib.structs.DirectedGraph.iter_edges:
  - 61
  - 62
  - 63
  pip._vendor.resolvelib.structs.DirectedGraph.iter_parents:
  - 69
  pip._vendor.resolvelib.structs.DirectedGraph.remove:
  - 40
  - 41
  - 42
  - 43
  - 44
  - 45
  pip._vendor.resolvelib.structs.IteratorMapping.__bool__:
  - 86
  pip._vendor.resolvelib.structs.IteratorMapping.__getitem__:
  - 97
  - 98
  pip._vendor.resolvelib.structs.IteratorMapping.__iter__:
  - 102
  pip._vendor.resolvelib.structs.IteratorMapping.__len__:
  - 105
  - 106
  pip._vendor.resolvelib.structs.IteratorMapping.__repr__:
  - 79
  pip._vendor.resolvelib.structs._FactoryIterableView:
  - 110
  pip._vendor.resolvelib.structs._FactoryIterableView.__bool__:
  - 127
  pip._vendor.resolvelib.structs._FactoryIterableView.__iter__:
  - 136
  - 138
  pip._vendor.resolvelib.structs._FactoryIterableView.__repr__:
  - 123
  pip._vendor.resolvelib.structs._SequenceIterableView:
  - 143
  pip._vendor.resolvelib.structs._SequenceIterableView.__bool__:
  - 156
  pip._vendor.resolvelib.structs._SequenceIterableView.__iter__:
  - 161
  pip._vendor.resolvelib.structs._SequenceIterableView.__repr__:
  - 153
  pip._vendor.resolvelib.structs.build_iter_view:
  - 165
  - 166
  - 167
  - 168
  - 169
  - 170
  pip._vendor.rich:
  - 1
  - 10
  - 176
  - 177
  - 17
  pip._vendor.rich.__main__:
  - 260
  - 261
  - 262
  - 263
  - 265
  - 266
  - 209
  - 211
  - 212
  - 215
  - 218
  - 219
  - 220
  - 222
  - 224
  - 225
  - 226
  - 228
  - 229
  - 231
  - 232
  - 236
  - 238
  - 239
  - 240
  - 242
  - 246
  - 251
  pip._vendor.rich.__main__.ColorBox.__rich_console__:
  - 22
  - 23
  - 26
  - 27
  - 28
  - 29
  - 30
  - 31
  pip._vendor.rich.__main__.ColorBox.__rich_measure__:
  - 36
  pip._vendor.rich.__main__.make_test_card:
  - 129
  - 135
  - 141
  - 147
  - 154
  - 40
  - 41
  - 43
  - 44
  - 46
  - 180
  - 53
  - 182
  - 183
  - 184
  - 61
  - 64
  - 66
  - 198
  - 199
  - 72
  - 74
  - 75
  - 76
  - 77
  - 78
  - 202
  - 80
  - 82
  - 83
  - 97
  - 106
  - 108
  - 115
  - 116
  - 117
  - 123
  pip._vendor.rich.__main__.make_test_card.comparison:
  - 91
  - 92
  - 93
  - 94
  pip._vendor.rich._emoji_replace._emoji_replace:
  - 32
  - 17
  - 21
  pip._vendor.rich._emoji_replace._emoji_replace.do_replace:
  - 24
  - 26
  pip._vendor.rich._extension.load_ipython_extension:
  - 9
  - 10
  pip._vendor.rich._fileno.get_fileno:
  - 16
  - 18
  - 15
  - 7
  pip._vendor.rich._inspect.Inspect:
  - 24
  pip._vendor.rich._inspect.Inspect.__init__:
  - 56
  - 53
  - 55
  pip._vendor.rich._inspect.Inspect.__rich__:
  - 77
  - 78
  pip._vendor.rich._inspect.Inspect._get_formatted_doc:
  - 229
  - 230
  - 232
  - 233
  - 234
  - 235
  - 217
  pip._vendor.rich._inspect.Inspect._get_signature:
  - 100
  - 101
  - 102
  - 103
  - 105
  - 108
  - 110
  - 115
  - 116
  - 85
  - 87
  - 95
  pip._vendor.rich._inspect.Inspect._make_title:
  - 67
  - 69
  - 70
  - 71
  - 73
  pip._vendor.rich._inspect.Inspect._render:
  - 138
  - 139
  - 140
  - 141
  - 142
  - 143
  - 144
  - 145
  - 146
  - 147
  - 149
  - 150
  - 154
  - 155
  - 156
  - 157
  - 158
  - 160
  - 161
  - 162
  - 163
  - 164
  - 165
  - 166
  - 168
  - 169
  - 170
  - 173
  - 175
  - 176
  - 179
  - 183
  - 184
  - 185
  - 186
  - 189
  - 190
  - 193
  - 194
  - 195
  - 197
  - 198
  - 199
  - 200
  - 201
  - 202
  - 203
  - 205
  - 207
  - 208
  - 209
  - 210
  - 211
  - 124
  pip._vendor.rich._inspect.Inspect._render.safe_getattr:
  - 131
  - 133
  pip._vendor.rich._inspect.Inspect._render.sort_items:
  - 128
  pip._vendor.rich._inspect._first_paragraph:
  - 18
  - 19
  pip._vendor.rich._inspect.get_object_types_mro:
  - 240
  - 243
  - 244
  - 239
  pip._vendor.rich._inspect.get_object_types_mro_as_strings:
  - 248
  - 256
  - 255
  pip._vendor.rich._inspect.is_object_one_of_types:
  - 267
  - 268
  - 263
  pip._vendor.rich._log_render:
  - 7
  - 89
  - 92
  - 93
  - 94
  pip._vendor.rich._log_render.LogRender.__call__:
  - 46
  - 48
  - 49
  - 50
  - 51
  - 52
  - 53
  - 54
  - 56
  - 57
  - 59
  - 60
  - 62
  - 63
  - 64
  - 66
  - 68
  - 69
  - 71
  - 72
  - 73
  - 74
  - 77
  - 78
  - 79
  - 83
  - 85
  pip._vendor.rich._loop:
  - 3
  pip._vendor.rich._loop.loop_first:
  - 7
  - 8
  - 10
  - 13
  - 14
  - 15
  pip._vendor.rich._loop.loop_first_last:
  - 32
  - 33
  - 35
  - 39
  - 40
  - 43
  pip._vendor.rich._loop.loop_last:
  - 19
  - 20
  - 22
  - 25
  - 26
  - 28
  pip._vendor.rich._null_file:
  - 69
  pip._vendor.rich._null_file.NullFile.__iter__:
  - 46
  pip._vendor.rich._palettes:
  - 50
  - 27
  - 5
  pip._vendor.rich._pick.pick_bool:
  - 17
  - 5
  - 14
  - 15
  pip._vendor.rich._ratio:
  - 160
  - 149
  - 6
  - 159
  pip._vendor.rich._ratio.Edge:
  - 13
  pip._vendor.rich._ratio.ratio_distribute:
  - 128
  - 134
  - 135
  - 138
  - 139
  - 140
  - 143
  - 116
  - 126
  - 127
  pip._vendor.rich._ratio.ratio_reduce:
  - 96
  - 97
  - 102
  - 103
  - 104
  - 105
  - 109
  - 84
  - 95
  pip._vendor.rich._ratio.ratio_resolve:
  - 64
  - 46
  - 78
  - 50
  - 51
  - 21
  - 55
  - 58
  - 59
  - 63
  pip._vendor.rich._spinners:
  - 1
  pip._vendor.rich._stack:
  - 3
  pip._vendor.rich._stack.Stack:
  - 7
  pip._vendor.rich._stack.Stack.push:
  - 16
  - 15
  pip._vendor.rich._timer:
  - 1
  pip._vendor.rich._timer.timer:
  - 14
  - 15
  - 16
  - 17
  - 19
  pip._vendor.rich._win32_console:
  - 1
  - 10
  - 11
  - 576
  - 577
  - 581
  - 583
  - 584
  - 586
  - 588
  - 591
  - 592
  - 593
  - 594
  - 595
  - 596
  - 597
  - 598
  - 599
  - 600
  - 601
  - 602
  - 603
  - 604
  - 605
  - 606
  - 609
  - 610
  - 611
  - 612
  - 613
  - 614
  - 615
  - 616
  - 617
  - 618
  - 619
  - 620
  - 621
  - 622
  - 623
  - 624
  - 625
  - 626
  - 627
  - 628
  - 629
  - 630
  - 633
  - 121
  - 635
  - 122
  - 634
  - 636
  - 637
  - 640
  - 641
  - 642
  - 643
  - 644
  - 638
  - 646
  - 647
  - 648
  - 650
  - 651
  - 652
  - 653
  - 654
  - 639
  - 656
  - 657
  - 658
  - 659
  - 661
  - 662
  - 162
  - 163
  - 222
  - 246
  - 269
  - 293
  pip._vendor.rich._win32_console.FillConsoleOutputAttribute:
  - 174
  - 186
  - 187
  - 188
  - 189
  - 190
  pip._vendor.rich._win32_console.FillConsoleOutputCharacter:
  - 133
  - 144
  - 145
  - 146
  - 147
  - 152
  pip._vendor.rich._win32_console.GetConsoleCursorInfo:
  - 277
  - 287
  pip._vendor.rich._win32_console.GetConsoleMode:
  - 111
  - 109
  - 110
  - 95
  pip._vendor.rich._win32_console.GetConsoleScreenBufferInfo:
  - 239
  - 230
  - 238
  pip._vendor.rich._win32_console.GetStdHandle:
  - 86
  - 78
  pip._vendor.rich._win32_console.LegacyWindowsTerm:
  - 331
  pip._vendor.rich._win32_console.LegacyWindowsTerm.__init__:
  - 362
  - 364
  pip._vendor.rich._win32_console.LegacyWindowsTerm._get_cursor_size:
  - 570
  - 571
  - 572
  - 573
  pip._vendor.rich._win32_console.LegacyWindowsTerm.cursor_position:
  - 377
  - 382
  - 383
  pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_end_of_line:
  - 472
  - 475
  - 478
  pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_line:
  - 456
  - 460
  - 461
  - 464
  pip._vendor.rich._win32_console.LegacyWindowsTerm.erase_start_of_line:
  - 488
  - 489
  - 490
  - 486
  pip._vendor.rich._win32_console.LegacyWindowsTerm.hide_cursor:
  - 552
  - 549
  - 550
  - 551
  pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_backward:
  - 544
  - 537
  - 539
  - 545
  pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_down:
  - 505
  - 507
  - 509
  pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_forward:
  - 523
  - 516
  - 524
  - 518
  pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to:
  - 451
  - 453
  - 446
  pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_to_column:
  - 528
  - 534
  pip._vendor.rich._win32_console.LegacyWindowsTerm.move_cursor_up:
  - 497
  - 499
  - 495
  pip._vendor.rich._win32_console.LegacyWindowsTerm.screen_size:
  - 392
  - 393
  - 394
  - 387
  pip._vendor.rich._win32_console.LegacyWindowsTerm.set_title:
  - 561
  - 566
  - 567
  pip._vendor.rich._win32_console.LegacyWindowsTerm.show_cursor:
  - 555
  - 556
  - 557
  - 558
  pip._vendor.rich._win32_console.LegacyWindowsTerm.write_styled:
  - 439
  - 418
  - 419
  - 421
  - 423
  - 429
  - 430
  - 407
  - 440
  - 442
  - 443
  - 415
  pip._vendor.rich._win32_console.LegacyWindowsTerm.write_text:
  - 403
  - 404
  - 398
  pip._vendor.rich._win32_console.SetConsoleCursorInfo:
  - 301
  - 310
  pip._vendor.rich._win32_console.SetConsoleCursorPosition:
  - 254
  - 263
  pip._vendor.rich._win32_console.SetConsoleTextAttribute:
  - 216
  - 206
  pip._vendor.rich._win32_console.SetConsoleTitle:
  - 327
  - 319
  pip._vendor.rich._win32_console.WindowsCoordinates:
  - 33
  pip._vendor.rich._win32_console.WindowsCoordinates.from_param:
  - 44
  - 53
  pip._vendor.rich._windows:
  - 65
  - 68
  - 71
  - 72
  - 19
  - 20
  pip._vendor.rich._windows.WindowsConsoleFeatures:
  - 10
  - 12
  - 7
  pip._vendor.rich._windows.get_windows_console_features:
  - 36
  - 42
  - 47
  - 49
  - 54
  - 56
  - 57
  - 61
  pip._vendor.rich._windows_renderer.legacy_windows_render:
  - 8
  - 14
  - 15
  - 16
  - 17
  - 19
  - 22
  - 24
  - 25
  - 26
  - 27
  - 28
  - 29
  - 30
  - 31
  - 32
  - 33
  - 34
  - 35
  - 36
  - 37
  - 38
  - 39
  - 40
  - 41
  - 42
  - 43
  - 44
  - 45
  - 46
  - 47
  - 48
  - 49
  - 50
  - 51
  - 52
  - 53
  - 54
  - 55
  - 56
  pip._vendor.rich._wrap:
  - 7
  - 51
  - 54
  - 55
  - 56
  pip._vendor.rich._wrap.divide_line:
  - 25
  - 26
  - 27
  - 28
  - 29
  - 30
  - 31
  - 32
  - 33
  - 35
  - 36
  - 38
  - 40
  - 41
  - 42
  - 43
  - 44
  - 45
  - 47
  pip._vendor.rich._wrap.words:
  - 12
  - 14
  - 15
  - 16
  - 17
  pip._vendor.rich.abc:
  - 32
  - 33
  - 21
  - 24
  - 25
  - 26
  - 31
  pip._vendor.rich.abc.RichRenderable:
  - 5
  pip._vendor.rich.abc.RichRenderable.__subclasshook__:
  - 17
  - 18
  pip._vendor.rich.align:
  - 290
  - 5
  - 295
  - 296
  - 298
  - 299
  - 300
  - 301
  - 302
  - 16
  - 309
  - 310
  pip._vendor.rich.align.Align:
  - 24
  pip._vendor.rich.align.Align.__init__:
  - 50
  - 54
  pip._vendor.rich.align.Align.__rich_console__:
  - 139
  - 140
  - 141
  - 142
  - 144
  - 146
  - 147
  - 148
  - 149
  - 151
  - 193
  - 195
  - 205
  - 206
  - 208
  - 209
  - 212
  - 213
  - 214
  - 215
  - 219
  - 221
  - 222
  - 223
  - 224
  - 225
  pip._vendor.rich.align.Align.__rich_console__.blank_lines:
  - 200
  - 201
  - 199
  pip._vendor.rich.align.Align.__rich_console__.generate_segments:
  - 154
  - 156
  - 157
  - 158
  - 160
  - 162
  - 163
  - 164
  - 165
  - 166
  - 167
  - 169
  - 172
  - 174
  - 176
  - 177
  - 178
  - 179
  - 180
  - 181
  - 182
  - 184
  - 186
  - 187
  - 188
  - 189
  - 190
  pip._vendor.rich.align.Align.__rich_measure__:
  - 230
  pip._vendor.rich.align.Align.center:
  - 102
  - 103
  pip._vendor.rich.align.Align.left:
  - 80
  - 81
  pip._vendor.rich.align.Align.right:
  - 124
  - 125
  pip._vendor.rich.align.VerticalCenter:
  - 235
  pip._vendor.rich.align.VerticalCenter.__rich_console__:
  - 259
  - 260
  - 261
  - 263
  - 264
  - 266
  - 267
  - 268
  - 275
  - 276
  - 277
  - 278
  - 279
  - 280
  - 281
  pip._vendor.rich.align.VerticalCenter.__rich_console__.blank_lines:
  - 272
  - 273
  - 271
  pip._vendor.rich.align.VerticalCenter.__rich_measure__:
  - 286
  pip._vendor.rich.ansi:
  - 228
  - 232
  - 10
  - 234
  - 235
  - 237
  - 238
  - 240
  - 213
  - 219
  - 221
  pip._vendor.rich.ansi.AnsiDecoder:
  - 120
  pip._vendor.rich.ansi.AnsiDecoder.__init__:
  - 123
  pip._vendor.rich.ansi.AnsiDecoder.decode:
  - 134
  - 126
  - 135
  pip._vendor.rich.ansi.AnsiDecoder.decode_line:
  - 138
  - 149
  - 151
  - 152
  - 153
  - 154
  - 155
  - 156
  - 157
  - 158
  - 159
  - 160
  - 164
  - 165
  - 166
  - 168
  - 169
  - 170
  - 172
  - 173
  - 175
  - 176
  - 178
  - 179
  - 180
  - 181
  - 182
  - 184
  - 185
  - 186
  - 187
  - 188
  - 189
  - 192
  - 194
  - 195
  - 196
  - 197
  - 198
  - 200
  - 201
  - 203
  - 204
  - 205
  - 206
  pip._vendor.rich.ansi._AnsiToken:
  - 20
  pip._vendor.rich.ansi._ansi_tokenize:
  - 40
  - 41
  - 42
  - 43
  - 44
  - 45
  - 46
  - 49
  - 50
  - 52
  - 54
  - 55
  - 28
  pip._vendor.rich.ansi.read:
  - 224
  - 225
  pip._vendor.rich.bar.Bar:
  - 18
  pip._vendor.rich.bar.Bar.__init__:
  - 40
  - 41
  - 43
  pip._vendor.rich.bar.Bar.__rich_console__:
  - 66
  - 75
  - 79
  - 82
  - 52
  - 84
  - 85
  - 57
  - 58
  - 59
  - 62
  pip._vendor.rich.bar.Bar.__rich_measure__:
  - 91
  - 93
  pip._vendor.rich.box:
  - 512
  - 513
  - 514
  - 259
  - 4
  - 515
  - 393
  - 12
  - 273
  - 406
  - 286
  - 419
  - 300
  - 432
  - 313
  - 191
  - 327
  - 205
  - 466
  - 341
  - 219
  - 476
  - 354
  - 233
  - 508
  - 367
  - 500
  - 501
  - 246
  - 503
  - 504
  - 505
  - 380
  - 509
  - 510
  - 511
  pip._vendor.rich.box.Box:
  - 17
  pip._vendor.rich.box.Box.__init__:
  - 36
  - 38
  - 40
  - 47
  - 50
  - 52
  - 59
  - 61
  - 63
  pip._vendor.rich.box.Box.get_bottom:
  - 171
  - 182
  - 183
  - 184
  - 185
  - 186
  - 187
  - 188
  pip._vendor.rich.box.Box.get_plain_headed_box:
  - 99
  - 92
  pip._vendor.rich.box.Box.get_row:
  - 160
  - 161
  - 162
  - 163
  - 164
  - 165
  - 166
  - 135
  - 167
  - 168
  - 140
  - 145
  - 150
  - 127
  pip._vendor.rich.box.Box.get_top:
  - 102
  - 113
  - 114
  - 115
  - 116
  - 117
  - 118
  - 119
  pip._vendor.rich.box.Box.substitute:
  - 74
  - 85
  - 86
  - 87
  pip._vendor.rich.cells:
  - 154
  - 8
  - 11
  - 45
  - 147
  - 149
  - 150
  - 151
  - 152
  - 153
  - 58
  pip._vendor.rich.cells._get_codepoint_cell_size:
  - 71
  - 75
  - 77
  - 81
  - 60
  pip._vendor.rich.cells.cached_cell_len:
  - 25
  - 13
  pip._vendor.rich.cells.cell_len:
  - 38
  - 41
  - 30
  - 39
  pip._vendor.rich.cells.chop_cells:
  - 129
  - 135
  - 136
  - 137
  - 142
  - 144
  - 125
  pip._vendor.rich.cells.get_character_cell_size:
  - 55
  - 47
  pip._vendor.rich.cells.set_cell_size:
  - 96
  - 98
  - 99
  - 101
  - 105
  - 111
  - 112
  - 114
  - 116
  - 88
  - 90
  - 91
  - 92
  pip._vendor.rich.color:
  - 13
  - 18
  - 292
  - 594
  - 600
  - 602
  - 603
  - 604
  - 605
  - 606
  - 607
  - 609
  - 610
  - 611
  - 613
  - 614
  - 615
  - 618
  - 619
  - 622
  pip._vendor.rich.color.Color:
  - 512
  - 484
  - 304
  - 432
  - 307
  - 309
  - 311
  - 313
  pip._vendor.rich.color.Color.__rich__:
  - 320
  - 321
  - 322
  - 316
  pip._vendor.rich.color.Color.__rich_repr__:
  - 328
  - 329
  - 330
  - 327
  pip._vendor.rich.color.Color.default:
  - 424
  - 429
  pip._vendor.rich.color.Color.downgrade:
  - 514
  - 516
  - 519
  - 521
  - 523
  - 524
  - 525
  - 527
  - 531
  - 539
  - 541
  - 544
  - 545
  - 550
  - 552
  - 553
  - 555
  - 556
  - 561
  - 562
  - 563
  - 565
  - 566
  pip._vendor.rich.color.Color.from_ansi:
  - 390
  - 382
  pip._vendor.rich.color.Color.from_rgb:
  - 410
  - 420
  pip._vendor.rich.color.Color.from_triplet:
  - 406
  - 398
  pip._vendor.rich.color.Color.get_ansi_codes:
  - 486
  - 488
  - 491
  - 495
  - 497
  - 501
  - 503
  - 505
  - 510
  pip._vendor.rich.color.Color.get_truecolor:
  - 352
  - 362
  - 364
  - 367
  - 370
  - 373
  pip._vendor.rich.color.Color.is_default:
  - 346
  pip._vendor.rich.color.Color.is_system_defined:
  - 341
  pip._vendor.rich.color.Color.parse:
  - 434
  - 436
  - 438
  - 439
  - 441
  - 442
  - 443
  - 449
  - 450
  - 453
  - 454
  - 455
  - 456
  - 458
  - 460
  - 461
  - 462
  - 464
  - 471
  - 472
  - 477
  - 478
  - 482
  pip._vendor.rich.color.Color.system:
  - 337
  - 334
  - 335
  pip._vendor.rich.color.ColorParseError:
  - 289
  pip._vendor.rich.color.ColorSystem:
  - 22
  pip._vendor.rich.color.ColorSystem.__str__:
  - 33
  pip._vendor.rich.color.ColorType:
  - 37
  pip._vendor.rich.color.blend_rgb:
  - 583
  - 586
  - 587
  - 588
  - 589
  pip._vendor.rich.color.parse_rgb_hex:
  - 572
  - 573
  - 574
  - 575
  pip._vendor.rich.color_triplet.ColorTriplet:
  - 8
  - 10
  - 12
  - 5
  pip._vendor.rich.color_triplet.ColorTriplet.hex:
  - 16
  pip._vendor.rich.color_triplet.ColorTriplet.normalized:
  - 32
  pip._vendor.rich.color_triplet.ColorTriplet.rgb:
  - 22
  pip._vendor.rich.columns:
  - 174
  - 177
  - 179
  - 180
  - 181
  - 182
  - 184
  - 186
  - 187
  pip._vendor.rich.columns.Columns:
  - 17
  pip._vendor.rich.columns.Columns.__init__:
  - 44
  pip._vendor.rich.columns.Columns.__rich_console__:
  - 129
  - 131
  - 132
  - 133
  - 134
  - 136
  - 137
  - 144
  - 146
  - 147
  - 149
  - 153
  - 156
  - 160
  - 166
  - 168
  - 170
  - 171
  - 67
  - 70
  - 72
  - 73
  - 75
  - 76
  - 80
  - 83
  - 84
  - 119
  - 123
  - 125
  - 126
  pip._vendor.rich.columns.Columns.__rich_console__.iter_renderables:
  - 98
  - 100
  - 103
  - 108
  - 109
  - 111
  - 113
  - 115
  - 116
  - 117
  - 89
  - 90
  - 91
  - 94
  pip._vendor.rich.columns.Columns.add_renderable:
  - 60
  - 55
  pip._vendor.rich.console:
  - 544
  - 97
  - 285
  - 101
  - 38
  - 2598
  - 72
  - 2600
  - 79
  - 2580
  - 2581
  - 2583
  - 90
  - 93
  pip._vendor.rich.console.Capture:
  - 323
  pip._vendor.rich.console.Capture.__enter__:
  - 335
  pip._vendor.rich.console.Capture.__exit__:
  - 344
  pip._vendor.rich.console.Capture.get:
  - 347
  - 348
  pip._vendor.rich.console.CaptureError:
  - 289
  pip._vendor.rich.console.Console:
  - 594
  pip._vendor.rich.console.Console.__enter__:
  - 858
  - 859
  pip._vendor.rich.console.Console.__exit__:
  - 864
  - 863
  pip._vendor.rich.console.Console.__init__:
  - 666
  - 669
  - 670
  - 671
  - 672
  - 673
  - 674
  - 677
  - 678
  - 679
  - 680
  - 691
  - 696
  - 697
  - 698
  - 699
  - 700
  - 701
  - 702
  - 703
  - 712
  - 719
  - 721
  - 722
  - 726
  - 727
  - 746
  - 747
  - 748
  pip._vendor.rich.console.Console._buffer:
  - 774
  pip._vendor.rich.console.Console._buffer_index:
  - 779
  pip._vendor.rich.console.Console._caller_frame_info:
  - 1904
  - 1877
  - 1894
  - 1895
  pip._vendor.rich.console.Console._check_buffer:
  - 2049
  - 2050
  - 2051
  - 2052
  - 2053
  - 2058
  - 2060
  - 2065
  - 1990
  - 1995
  - 1999
  - 2001
  - 2003
  - 2004
  - 2007
  - 2010
  - 2012
  - 2013
  - 2014
  - 2019
  - 2024
  - 2025
  - 2027
  - 2030
  - 2038
  - 2039
  - 2044
  - 2045
  - 2046
  - 2047
  pip._vendor.rich.console.Console._collect_renderables:
  - 1536
  - 1537
  - 1541
  - 1542
  - 1543
  - 1544
  - 1545
  - 1546
  - 1547
  - 1548
  - 1550
  - 1552
  - 1554
  - 1555
  - 1556
  - 1496
  - 1516
  - 1524
  - 1533
  - 1534
  - 1535
  pip._vendor.rich.console.Console._collect_renderables.align_append:
  - 1519
  pip._vendor.rich.console.Console._collect_renderables.check_text:
  - 1528
  - 1529
  - 1530
  - 1531
  pip._vendor.rich.console.Console._detect_color_system:
  - 800
  - 807
  - 808
  - 810
  - 811
  - 812
  - 792
  - 793
  - 795
  - 797
  - 798
  pip._vendor.rich.console.Console._enter_buffer:
  - 816
  pip._vendor.rich.console.Console._exit_buffer:
  - 820
  - 822
  pip._vendor.rich.console.Console._render_buffer:
  - 2080
  - 2086
  - 2087
  - 2089
  - 2069
  - 2075
  - 2076
  - 2077
  - 2078
  - 2079
  pip._vendor.rich.console.Console._theme_stack:
  - 788
  pip._vendor.rich.console.Console.begin_capture:
  - 867
  - 868
  pip._vendor.rich.console.Console.bell:
  - 1085
  - 1086
  pip._vendor.rich.console.Console.capture:
  - 1089
  - 1102
  pip._vendor.rich.console.Console.clear:
  - 1144
  - 1145
  - 1139
  - 1147
  pip._vendor.rich.console.Console.clear_live:
  - 839
  pip._vendor.rich.console.Console.color_system:
  - 916
  - 910
  pip._vendor.rich.console.Console.control:
  - 1587
  - 1589
  - 1582
  pip._vendor.rich.console.Console.encoding:
  - 928
  - 923
  pip._vendor.rich.console.Console.end_capture:
  - 876
  - 878
  - 871
  pip._vendor.rich.console.Console.export_html:
  - 2180
  - 2205
  - 2206
  - 2207
  - 2209
  - 2210
  - 2211
  - 2212
  - 2215
  - 2218
  - 2219
  - 2221
  - 2222
  - 2223
  - 2224
  - 2225
  - 2229
  - 2232
  - 2233
  - 2234
  - 2235
  - 2237
  - 2238
  - 2243
  pip._vendor.rich.console.Console.export_svg:
  - 2432
  - 2435
  - 2436
  - 2437
  - 2438
  - 2449
  - 2450
  - 2451
  - 2453
  - 2457
  - 2461
  - 2463
  - 2464
  - 2466
  - 2468
  - 2471
  - 2472
  - 2474
  - 2475
  - 2477
  - 2479
  - 2492
  - 2493
  - 2495
  - 2510
  - 2394
  - 2395
  - 2396
  - 2398
  - 2399
  - 2400
  - 2401
  - 2405
  - 2409
  - 2411
  - 2412
  - 2413
  - 2414
  - 2288
  - 2419
  - 2424
  pip._vendor.rich.console.Console.export_svg.escape_text:
  - 2370
  - 2371
  pip._vendor.rich.console.Console.export_svg.get_svg_style:
  - 2336
  - 2338
  - 2310
  - 2311
  - 2317
  - 2322
  - 2324
  - 2326
  - 2327
  - 2328
  - 2329
  - 2330
  - 2331
  - 2332
  - 2333
  - 2334
  - 2335
  pip._vendor.rich.console.Console.export_svg.make_tag:
  - 2376
  - 2385
  - 2384
  - 2383
  pip._vendor.rich.console.Console.export_svg.make_tag.stringify:
  - 2379
  - 2380
  - 2381
  pip._vendor.rich.console.Console.export_text:
  - 2144
  - 2145
  - 2149
  - 2154
  - 2127
  - 2143
  pip._vendor.rich.console.Console.file:
  - 760
  - 769
  - 762
  - 763
  pip._vendor.rich.console.Console.get_style:
  - 1474
  - 1475
  - 1476
  - 1477
  - 1479
  - 1480
  - 1458
  - 1470
  pip._vendor.rich.console.Console.height:
  - 1068
  - 1077
  pip._vendor.rich.console.Console.input:
  - 2115
  - 2116
  - 2117
  - 2118
  - 2120
  - 2121
  - 2123
  - 2101
  pip._vendor.rich.console.Console.is_alt_screen:
  - 1216
  pip._vendor.rich.console.Console.is_dumb_terminal:
  - 968
  - 974
  - 975
  pip._vendor.rich.console.Console.is_terminal:
  - 932
  - 938
  - 941
  - 947
  - 952
  - 953
  - 957
  - 959
  pip._vendor.rich.console.Console.line:
  - 1136
  - 1129
  pip._vendor.rich.console.Console.log:
  - 1920
  - 1936
  - 1937
  - 1942
  - 1951
  - 1952
  - 1954
  - 1955
  - 1956
  - 1957
  - 1960
  - 1961
  - 1963
  - 1966
  - 1969
  - 1975
  - 1976
  - 1981
  - 1982
  - 1984
  - 1987
  pip._vendor.rich.console.Console.measure:
  - 1272
  - 1283
  pip._vendor.rich.console.Console.options:
  - 980
  - 981
  pip._vendor.rich.console.Console.out:
  - 1610
  - 1611
  - 1599
  pip._vendor.rich.console.Console.pager:
  - 1108
  - 1126
  pip._vendor.rich.console.Console.pop_render_hook:
  - 853
  - 855
  pip._vendor.rich.console.Console.pop_theme:
  - 893
  - 894
  pip._vendor.rich.console.Console.print:
  - 1665
  - 1666
  - 1668
  - 1673
  - 1682
  - 1683
  - 1684
  - 1687
  - 1697
  - 1698
  - 1699
  - 1701
  - 1702
  - 1703
  - 1704
  - 1707
  - 1708
  - 1709
  - 1712
  - 1713
  - 1715
  - 1718
  - 1720
  - 1641
  - 1660
  - 1661
  - 1663
  pip._vendor.rich.console.Console.print_exception:
  - 1848
  - 1861
  - 1870
  pip._vendor.rich.console.Console.print_json:
  - 1766
  - 1736
  - 1770
  - 1781
  - 1753
  - 1754
  pip._vendor.rich.console.Console.push_render_hook:
  - 850
  - 844
  pip._vendor.rich.console.Console.push_theme:
  - 882
  - 890
  pip._vendor.rich.console.Console.render:
  - 1312
  - 1313
  - 1316
  - 1289
  - 1324
  - 1330
  - 1331
  - 1332
  - 1333
  - 1335
  - 1304
  - 1309
  - 1310
  - 1311
  pip._vendor.rich.console.Console.render_lines:
  - 1346
  - 1384
  - 1385
  - 1386
  - 1388
  - 1390
  - 1392
  - 1363
  - 1364
  - 1365
  - 1368
  - 1369
  - 1371
  - 1372
  - 1373
  pip._vendor.rich.console.Console.render_str:
  - 1408
  - 1448
  - 1449
  - 1450
  - 1428
  - 1429
  - 1438
  - 1439
  pip._vendor.rich.console.Console.rule:
  - 1568
  - 1578
  - 1579
  pip._vendor.rich.console.Console.save_html:
  - 2256
  - 2275
  - 2276
  - 2269
  pip._vendor.rich.console.Console.save_svg:
  - 2565
  - 2540
  - 2564
  - 2556
  pip._vendor.rich.console.Console.save_text:
  - 2168
  - 2169
  - 2170
  - 2159
  pip._vendor.rich.console.Console.screen:
  - 1258
  - 1267
  pip._vendor.rich.console.Console.set_alt_screen:
  - 1208
  - 1209
  - 1194
  pip._vendor.rich.console.Console.set_live:
  - 825
  - 834
  pip._vendor.rich.console.Console.set_window_title:
  - 1224
  - 1250
  - 1251
  pip._vendor.rich.console.Console.show_cursor:
  - 1188
  - 1189
  - 1183
  pip._vendor.rich.console.Console.size:
  - 1024
  - 993
  - 1025
  - 1026
  - 1027
  - 999
  - 1000
  - 1032
  - 1002
  - 1003
  - 1039
  - 1008
  - 1010
  - 1014
  - 1016
  - 1022
  - 1023
  pip._vendor.rich.console.Console.status:
  - 1172
  - 1158
  pip._vendor.rich.console.Console.update_screen:
  - 1802
  - 1805
  - 1807
  - 1812
  - 1814
  - 1815
  - 1790
  pip._vendor.rich.console.Console.update_screen_lines:
  - 1830
  - 1832
  - 1833
  - 1834
  - 1835
  - 1820
  pip._vendor.rich.console.Console.use_theme:
  - 897
  - 906
  pip._vendor.rich.console.Console.width:
  - 1050
  - 1059
  pip._vendor.rich.console.ConsoleDimensions:
  - 120
  - 122
  - 117
  pip._vendor.rich.console.ConsoleOptions:
  - 130
  - 132
  - 134
  - 136
  - 138
  - 140
  - 142
  - 144
  - 146
  - 148
  - 150
  - 152
  - 127
  pip._vendor.rich.console.ConsoleOptions.ascii_only:
  - 157
  - 158
  pip._vendor.rich.console.ConsoleOptions.copy:
  - 161
  - 166
  - 167
  pip._vendor.rich.console.ConsoleOptions.reset_height:
  - 234
  - 239
  pip._vendor.rich.console.ConsoleOptions.update:
  - 193
  - 195
  - 197
  - 199
  - 201
  - 202
  - 204
  - 183
  - 184
  - 185
  - 186
  - 187
  - 189
  - 191
  pip._vendor.rich.console.ConsoleOptions.update_dimensions:
  - 244
  - 253
  - 254
  pip._vendor.rich.console.ConsoleOptions.update_height:
  - 229
  - 221
  pip._vendor.rich.console.ConsoleOptions.update_width:
  - 208
  - 217
  - 216
  pip._vendor.rich.console.ConsoleRenderable:
  - 271
  pip._vendor.rich.console.ConsoleRenderable.__rich_console__:
  - 276
  pip._vendor.rich.console.ConsoleThreadLocals:
  - 552
  - 549
  pip._vendor.rich.console.Group:
  - 463
  pip._vendor.rich.console.Group.__rich_console__:
  - 492
  pip._vendor.rich.console.Group.__rich_measure__:
  - 484
  - 485
  - 487
  pip._vendor.rich.console.Group.renderables:
  - 477
  - 478
  pip._vendor.rich.console.NewLine:
  - 293
  pip._vendor.rich.console.NewLine.__rich_console__:
  - 301
  pip._vendor.rich.console.PagerContext:
  - 377
  pip._vendor.rich.console.PagerContext.__enter__:
  - 392
  pip._vendor.rich.console.PagerContext.__exit__:
  - 401
  - 406
  - 407
  - 408
  - 409
  - 410
  - 411
  - 412
  pip._vendor.rich.console.PagerContext.__init__:
  - 387
  pip._vendor.rich.console.RenderHook:
  - 557
  pip._vendor.rich.console.RenderHook.process_renderables:
  - 563
  pip._vendor.rich.console.RichCast:
  - 261
  pip._vendor.rich.console.RichCast.__rich__:
  - 266
  pip._vendor.rich.console.ScreenContext:
  - 416
  pip._vendor.rich.console.ScreenContext.__enter__:
  - 445
  - 446
  - 447
  pip._vendor.rich.console.ScreenContext.__exit__:
  - 456
  - 457
  - 458
  - 459
  pip._vendor.rich.console.ScreenContext.__init__:
  - 423
  pip._vendor.rich.console.ScreenContext.update:
  - 429
  - 436
  - 438
  - 440
  - 442
  pip._vendor.rich.console.ScreenUpdate:
  - 305
  pip._vendor.rich.console.ScreenUpdate.__rich_console__:
  - 317
  - 318
  - 319
  pip._vendor.rich.console.ThemeContext:
  - 356
  pip._vendor.rich.console.ThemeContext.__enter__:
  - 364
  pip._vendor.rich.console.ThemeContext.__exit__:
  - 373
  pip._vendor.rich.console._is_jupyter:
  - 518
  - 520
  - 523
  - 525
  - 526
  - 527
  - 531
  pip._vendor.rich.console._svg_hash:
  - 2569
  - 2577
  pip._vendor.rich.console.detect_legacy_windows:
  - 589
  - 590
  pip._vendor.rich.console.get_windows_console_features:
  - 584
  - 580
  pip._vendor.rich.console.group:
  - 496
  pip._vendor.rich.console.group.decorator:
  - 505
  - 507
  pip._vendor.rich.console.group.decorator._replace:
  - 509
  - 510
  pip._vendor.rich.constrain:
  - 6
  pip._vendor.rich.constrain.Constrain:
  - 11
  pip._vendor.rich.constrain.Constrain.__rich_console__:
  - 25
  - 26
  - 28
  - 29
  pip._vendor.rich.constrain.Constrain.__rich_measure__:
  - 34
  - 35
  - 36
  pip._vendor.rich.containers:
  - 27
  - 13
  pip._vendor.rich.containers.Lines:
  - 67
  pip._vendor.rich.containers.Lines.__getitem__:
  - 80
  - 84
  pip._vendor.rich.containers.Lines.__init__:
  - 70
  pip._vendor.rich.containers.Lines.__iter__:
  - 76
  pip._vendor.rich.containers.Lines.__len__:
  - 94
  pip._vendor.rich.containers.Lines.__rich_console__:
  - 99
  - 100
  pip._vendor.rich.containers.Lines.append:
  - 103
  pip._vendor.rich.containers.Lines.extend:
  - 106
  pip._vendor.rich.containers.Lines.justify:
  - 129
  - 130
  - 131
  - 132
  - 133
  - 134
  - 135
  - 136
  - 137
  - 138
  - 139
  - 140
  - 141
  - 142
  - 143
  - 144
  - 145
  - 147
  - 148
  - 149
  - 150
  - 152
  - 154
  - 156
  - 158
  - 159
  - 161
  - 162
  - 163
  - 164
  - 166
  - 167
  - 118
  pip._vendor.rich.containers.Lines.pop:
  - 109
  pip._vendor.rich.containers.Renderables:
  - 31
  pip._vendor.rich.containers.Renderables.__init__:
  - 37
  pip._vendor.rich.containers.Renderables.__iter__:
  - 63
  pip._vendor.rich.containers.Renderables.__rich_console__:
  - 43
  - 44
  pip._vendor.rich.containers.Renderables.__rich_measure__:
  - 50
  - 53
  - 54
  - 55
  - 56
  - 57
  pip._vendor.rich.containers.Renderables.append:
  - 60
  pip._vendor.rich.control:
  - 5
  - 12
  - 35
  - 36
  - 37
  - 38
  - 39
  - 40
  - 41
  - 42
  - 43
  - 44
  - 45
  - 46
  - 47
  - 48
  - 49
  - 50
  - 217
  - 220
  - 221
  - 223
  - 224
  - 225
  pip._vendor.rich.control.Control:
  - 55
  pip._vendor.rich.control.Control.__init__:
  - 72
  - 66
  - 69
  - 70
  pip._vendor.rich.control.Control.__rich_console__:
  - 184
  - 183
  pip._vendor.rich.control.Control.alt_screen:
  - 162
  - 163
  - 164
  - 166
  pip._vendor.rich.control.Control.bell:
  - 76
  - 77
  pip._vendor.rich.control.Control.clear:
  - 152
  - 153
  pip._vendor.rich.control.Control.home:
  - 81
  - 82
  pip._vendor.rich.control.Control.move:
  - 110
  - 86
  pip._vendor.rich.control.Control.move.get_codes:
  - 99
  - 100
  - 102
  - 104
  - 105
  - 107
  pip._vendor.rich.control.Control.move_to:
  - 139
  - 148
  pip._vendor.rich.control.Control.move_to_column:
  - 134
  - 130
  - 115
  - 126
  pip._vendor.rich.control.Control.show_cursor:
  - 157
  - 158
  pip._vendor.rich.control.Control.title:
  - 170
  - 175
  pip._vendor.rich.control.escape_control_codes:
  - 205
  - 214
  pip._vendor.rich.control.strip_control_codes:
  - 198
  - 190
  pip._vendor.rich.default_styles:
  - 6
  - 7
  - 20
  - 21
  - 22
  - 23
  - 24
  - 25
  - 26
  - 27
  - 28
  - 29
  - 30
  - 31
  - 32
  - 33
  - 34
  - 35
  - 36
  - 37
  - 38
  - 39
  - 40
  - 41
  - 42
  - 43
  - 44
  - 45
  - 46
  - 47
  - 48
  - 49
  - 50
  - 51
  - 52
  - 53
  - 54
  - 55
  - 56
  - 57
  - 58
  - 59
  - 60
  - 61
  - 62
  - 63
  - 64
  - 65
  - 66
  - 67
  - 68
  - 69
  - 70
  - 71
  - 72
  - 73
  - 74
  - 75
  - 76
  - 77
  - 78
  - 79
  - 80
  - 81
  - 82
  - 83
  - 84
  - 85
  - 86
  - 87
  - 88
  - 89
  - 90
  - 91
  - 92
  - 93
  - 94
  - 95
  - 96
  - 97
  - 98
  - 99
  - 100
  - 101
  - 102
  - 103
  - 104
  - 105
  - 106
  - 107
  - 108
  - 109
  - 110
  - 111
  - 112
  - 113
  - 114
  - 115
  - 116
  - 117
  - 118
  - 119
  - 120
  - 121
  - 122
  - 123
  - 124
  - 125
  - 126
  - 127
  - 128
  - 129
  - 130
  - 131
  - 132
  - 133
  - 134
  - 135
  - 136
  - 137
  - 138
  - 139
  - 140
  - 141
  - 142
  - 143
  - 144
  - 145
  - 146
  - 147
  - 148
  - 149
  - 150
  - 151
  - 152
  - 153
  - 154
  - 155
  - 156
  - 157
  - 158
  - 159
  - 160
  - 161
  - 162
  - 163
  - 164
  - 165
  - 169
  - 177
  - 178
  - 179
  - 181
  - 183
  - 185
  - 186
  - 188
  - 189
  - 190
  pip._vendor.rich.diagnose:
  - 36
  - 37
  pip._vendor.rich.diagnose.report:
  - 33
  - 11
  - 12
  - 13
  - 14
  - 15
  - 30
  - 31
  pip._vendor.rich.emoji:
  - 96
  - 10
  - 16
  - 81
  - 87
  - 89
  - 90
  - 94
  - 95
  pip._vendor.rich.emoji.Emoji.__init__:
  - 54
  - 38
  - 55
  pip._vendor.rich.emoji.Emoji.__rich_console__:
  - 78
  pip._vendor.rich.emoji.Emoji.replace:
  - 67
  - 59
  pip._vendor.rich.emoji.NoEmoji:
  - 24
  pip._vendor.rich.errors.ConsoleError:
  - 2
  pip._vendor.rich.errors.LiveError:
  - 30
  pip._vendor.rich.errors.MarkupError:
  - 26
  pip._vendor.rich.errors.MissingStyle:
  - 14
  pip._vendor.rich.errors.NoAltScreen:
  - 34
  pip._vendor.rich.errors.NotRenderableError:
  - 22
  pip._vendor.rich.errors.StyleError:
  - 6
  pip._vendor.rich.errors.StyleStackError:
  - 18
  pip._vendor.rich.errors.StyleSyntaxError:
  - 10
  pip._vendor.rich.file_proxy:
  - 7
  pip._vendor.rich.file_proxy.FileProxy:
  - 12
  pip._vendor.rich.file_proxy.FileProxy.__getattr__:
  - 26
  pip._vendor.rich.file_proxy.FileProxy.__init__:
  - 18
  pip._vendor.rich.file_proxy.FileProxy.fileno:
  - 57
  pip._vendor.rich.file_proxy.FileProxy.flush:
  - 51
  - 52
  - 53
  pip._vendor.rich.file_proxy.FileProxy.rich_proxied_file:
  - 22
  pip._vendor.rich.file_proxy.FileProxy.write:
  - 34
  - 35
  - 36
  - 37
  - 39
  - 41
  - 44
  - 45
  - 47
  - 48
  - 29
  pip._vendor.rich.filesize:
  - 2
  pip._vendor.rich.filesize._to_str:
  - 32
  - 34
  - 36
  - 27
  - 29
  - 30
  pip._vendor.rich.filesize.decimal:
  - 83
  - 59
  pip._vendor.rich.filesize.pick_unit_and_suffix:
  - 48
  - 45
  - 46
  pip._vendor.rich.get_console:
  - 24
  - 34
  - 31
  pip._vendor.rich.highlighter:
  - 201
  - 204
  - 205
  - 206
  - 208
  - 209
  - 210
  - 211
  - 213
  - 214
  - 215
  - 216
  - 217
  - 218
  - 219
  - 220
  - 221
  - 223
  - 224
  - 225
  - 227
  - 232
  pip._vendor.rich.highlighter.Highlighter:
  - 18
  pip._vendor.rich.highlighter.Highlighter.__call__:
  - 32
  - 33
  - 34
  - 35
  - 38
  - 21
  pip._vendor.rich.highlighter.Highlighter.highlight:
  - 43
  pip._vendor.rich.highlighter.ISO8601Highlighter:
  - 144
  pip._vendor.rich.highlighter.JSONHighlighter:
  - 115
  - 107
  pip._vendor.rich.highlighter.JSONHighlighter.highlight:
  - 130
  - 131
  - 133
  - 136
  - 137
  - 138
  - 124
  pip._vendor.rich.highlighter.NullHighlighter:
  - 51
  pip._vendor.rich.highlighter.NullHighlighter.highlight:
  - 58
  pip._vendor.rich.highlighter.RegexHighlighter:
  - 62
  pip._vendor.rich.highlighter.RegexHighlighter.highlight:
  - 68
  - 77
  - 76
  pip._vendor.rich.highlighter.ReprHighlighter:
  - 88
  - 81
  pip._vendor.rich.highlighter._combine_regex:
  - 9
  - 14
  pip._vendor.rich.inspect:
  - 161
  - 155
  - 173
  - 134
  pip._vendor.rich.json:
  - 128
  - 129
  - 132
  - 133
  - 135
  - 105
  - 137
  - 138
  - 140
  - 110
  - 111
  - 116
  - 124
  pip._vendor.rich.json.JSON:
  - 10
  pip._vendor.rich.json.JSON.__init__:
  - 48
  - 49
  - 37
  - 38
  pip._vendor.rich.json.JSON.from_data:
  - 96
  - 66
  - 84
  - 85
  - 95
  pip._vendor.rich.jupyter:
  - 10
  - 3
  pip._vendor.rich.jupyter.JupyterMixin:
  - 37
  pip._vendor.rich.jupyter.JupyterMixin._repr_mimebundle_:
  - 47
  - 48
  - 49
  - 50
  - 52
  - 53
  - 54
  - 55
  pip._vendor.rich.jupyter.JupyterRenderable:
  - 19
  pip._vendor.rich.jupyter.JupyterRenderable._repr_mimebundle_:
  - 32
  - 29
  - 30
  - 31
  pip._vendor.rich.jupyter._render_segments:
  - 67
  - 68
  - 70
  - 71
  - 72
  - 74
  - 76
  - 78
  - 79
  pip._vendor.rich.jupyter._render_segments.escape:
  - 61
  - 62
  pip._vendor.rich.jupyter.display:
  - 91
  - 85
  - 86
  - 87
  pip._vendor.rich.jupyter.print:
  - 99
  - 100
  - 101
  pip._vendor.rich.layout:
  - 419
  - 422
  - 423
  - 425
  - 426
  - 427
  - 428
  - 431
  - 433
  - 435
  - 436
  - 439
  - 441
  - 443
  - 28
  pip._vendor.rich.layout.ColumnSplitter:
  - 122
  pip._vendor.rich.layout.ColumnSplitter.divide:
  - 136
  - 137
  - 133
  pip._vendor.rich.layout.Layout:
  - 143
  pip._vendor.rich.layout.Layout.__getitem__:
  - 217
  - 218
  pip._vendor.rich.layout.Layout.__init__:
  - 172
  - 166
  - 175
  pip._vendor.rich.layout.Layout.__rich_console__:
  - 416
  - 402
  - 404
  - 406
  - 408
  - 409
  - 411
  - 413
  - 414
  - 415
  pip._vendor.rich.layout.Layout.__rich_repr__:
  - 178
  - 179
  - 180
  - 181
  pip._vendor.rich.layout.Layout._make_region_map:
  - 354
  - 357
  - 358
  - 359
  - 363
  - 347
  - 348
  pip._vendor.rich.layout.Layout.add_split:
  - 288
  - 298
  - 295
  pip._vendor.rich.layout.Layout.children:
  - 190
  pip._vendor.rich.layout.Layout.get:
  - 199
  - 207
  - 210
  - 211
  - 212
  pip._vendor.rich.layout.Layout.map:
  - 195
  pip._vendor.rich.layout.Layout.refresh_screen:
  - 330
  - 340
  - 341
  - 343
  - 344
  pip._vendor.rich.layout.Layout.render:
  - 389
  - 390
  - 391
  - 393
  - 368
  - 379
  - 382
  pip._vendor.rich.layout.Layout.renderable:
  - 185
  pip._vendor.rich.layout.Layout.split:
  - 280
  - 281
  - 274
  - 267
  pip._vendor.rich.layout.Layout.split_column:
  - 314
  - 309
  pip._vendor.rich.layout.Layout.split_row:
  - 306
  - 301
  pip._vendor.rich.layout.Layout.tree:
  - 224
  - 259
  - 243
  - 244
  pip._vendor.rich.layout.Layout.tree.recurse:
  - 250
  - 251
  - 252
  - 253
  pip._vendor.rich.layout.Layout.tree.summary:
  - 233
  - 236
  - 238
  - 231
  pip._vendor.rich.layout.Layout.unsplit:
  - 317
  pip._vendor.rich.layout.Layout.update:
  - 321
  pip._vendor.rich.layout.LayoutError:
  - 44
  pip._vendor.rich.layout.LayoutRender:
  - 33
  pip._vendor.rich.layout.NoSplitter:
  - 48
  pip._vendor.rich.layout.RowSplitter:
  - 102
  pip._vendor.rich.layout.RowSplitter.divide:
  - 113
  - 116
  - 117
  pip._vendor.rich.layout.Splitter:
  - 81
  pip._vendor.rich.layout.Splitter.divide:
  - 93
  pip._vendor.rich.layout.Splitter.get_tree_icon:
  - 87
  pip._vendor.rich.layout._Placeholder:
  - 52
  - 54
  pip._vendor.rich.layout._Placeholder.__rich_console__:
  - 72
  - 74
  - 71
  pip._vendor.rich.live:
  - 271
  - 285
  - 287
  - 303
  - 304
  - 309
  - 316
  - 319
  - 342
  - 345
  - 346
  - 348
  - 349
  - 351
  - 352
  - 353
  - 355
  - 357
  - 358
  - 359
  - 361
  - 362
  - 363
  - 365
  - 366
  - 369
  - 375
  pip._vendor.rich.live.Live:
  - 36
  pip._vendor.rich.live.Live.__enter__:
  - 166
  pip._vendor.rich.live.Live.__exit__:
  - 175
  pip._vendor.rich.live.Live.__init__:
  - 88
  - 67
  - 76
  - 87
  pip._vendor.rich.live.Live._disable_redirect_io:
  - 192
  - 193
  - 188
  - 189
  - 190
  pip._vendor.rich.live.Live._enable_redirect_io:
  - 178
  - 179
  - 180
  - 182
  - 183
  - 185
  pip._vendor.rich.live.Live.get_renderable:
  - 98
  pip._vendor.rich.live.Live.is_started:
  - 93
  pip._vendor.rich.live.Live.process_renderables:
  - 258
  - 260
  - 263
  - 252
  - 254
  pip._vendor.rich.live.Live.refresh:
  - 224
  - 231
  - 233
  - 234
  - 235
  - 238
  - 239
  - 240
  - 242
  - 243
  - 247
  - 221
  - 223
  pip._vendor.rich.live.Live.renderable:
  - 203
  - 204
  - 198
  pip._vendor.rich.live.Live.start:
  - 128
  - 130
  - 131
  - 132
  - 105
  - 111
  - 113
  - 115
  - 116
  - 117
  - 118
  - 119
  - 120
  - 122
  pip._vendor.rich.live.Live.stop:
  - 160
  - 161
  - 162
  - 163
  - 135
  - 137
  - 139
  - 142
  - 143
  - 149
  - 150
  - 152
  - 153
  - 154
  - 155
  - 156
  - 157
  - 158
  pip._vendor.rich.live.Live.update:
  - 207
  - 213
  - 214
  - 217
  - 218
  pip._vendor.rich.live._RefreshThread:
  - 17
  pip._vendor.rich.live._RefreshThread.__init__:
  - 22
  - 23
  pip._vendor.rich.live._RefreshThread.run:
  - 32
  - 29
  - 31
  pip._vendor.rich.live._RefreshThread.stop:
  - 26
  pip._vendor.rich.live_render:
  - 4
  pip._vendor.rich.live_render.LiveRender:
  - 21
  pip._vendor.rich.live_render.LiveRender.__rich_console__:
  - 96
  - 98
  - 105
  - 106
  - 109
  - 110
  - 111
  - 112
  - 113
  - 87
  - 88
  - 89
  - 92
  - 93
  - 95
  pip._vendor.rich.live_render.LiveRender.position_cursor:
  - 48
  - 66
  - 53
  - 55
  pip._vendor.rich.live_render.LiveRender.restore_cursor:
  - 80
  - 74
  - 76
  - 69
  pip._vendor.rich.live_render.LiveRender.set_renderable:
  - 40
  pip._vendor.rich.logging:
  - 257
  - 267
  - 270
  - 271
  - 272
  - 273
  - 285
  - 286
  - 287
  - 288
  - 289
  - 234
  - 239
  - 243
  - 245
  - 247
  - 248
  - 249
  - 251
  - 252
  - 253
  - 254
  - 255
  pip._vendor.rich.logging.RichHandler:
  - 19
  pip._vendor.rich.logging.RichHandler.__init__:
  - 88
  - 89
  - 90
  - 87
  pip._vendor.rich.logging.RichHandler.emit:
  - 128
  - 159
  - 130
  - 160
  - 163
  - 167
  - 138
  - 170
  - 172
  - 151
  - 152
  - 153
  - 155
  - 156
  - 157
  - 127
  pip._vendor.rich.logging.RichHandler.get_level_text:
  - 112
  - 121
  - 122
  pip._vendor.rich.logging.RichHandler.render:
  - 206
  - 216
  - 217
  - 219
  - 221
  pip._vendor.rich.logging.RichHandler.render_message:
  - 194
  - 195
  - 175
  - 184
  - 185
  - 187
  - 188
  - 189
  - 191
  pip._vendor.rich.logging.divide:
  - 281
  - 283
  - 279
  pip._vendor.rich.markup:
  - 228
  - 12
  - 17
  - 241
  - 243
  - 244
  - 246
  pip._vendor.rich.markup.Tag:
  - 24
  - 26
  - 21
  pip._vendor.rich.markup.Tag.markup:
  - 35
  pip._vendor.rich.markup._parse:
  - 96
  - 97
  - 99
  - 100
  - 71
  - 80
  - 81
  - 82
  - 83
  - 84
  - 85
  - 86
  - 87
  - 89
  - 91
  - 93
  pip._vendor.rich.markup.escape:
  - 66
  - 52
  pip._vendor.rich.markup.escape.escape_backslashes:
  - 62
  - 63
  pip._vendor.rich.markup.render:
  - 147
  - 148
  - 150
  - 151
  - 152
  - 153
  - 154
  - 156
  - 157
  - 159
  - 166
  - 172
  - 173
  - 175
  - 176
  - 177
  - 178
  - 184
  - 194
  - 198
  - 205
  - 206
  - 207
  - 211
  - 214
  - 215
  - 217
  - 219
  - 220
  - 221
  - 222
  - 224
  - 109
  - 122
  - 123
  - 124
  - 127
  pip._vendor.rich.markup.render.pop_style:
  - 144
  - 141
  - 142
  - 143
  pip._vendor.rich.measure:
  - 7
  pip._vendor.rich.measure.Measurement:
  - 17
  - 12
  - 15
  pip._vendor.rich.measure.Measurement.clamp:
  - 72
  - 73
  - 74
  - 75
  - 62
  pip._vendor.rich.measure.Measurement.get:
  - 96
  - 97
  - 98
  - 99
  - 102
  - 103
  - 106
  - 107
  - 109
  - 113
  - 82
  - 114
  - 115
  - 117
  pip._vendor.rich.measure.Measurement.normalize:
  - 32
  - 25
  - 31
  pip._vendor.rich.measure.Measurement.span:
  - 21
  pip._vendor.rich.measure.Measurement.with_maximum:
  - 35
  - 44
  pip._vendor.rich.measure.Measurement.with_minimum:
  - 56
  - 57
  - 47
  pip._vendor.rich.measure.measure_renderables:
  - 130
  - 141
  - 142
  - 145
  - 147
  - 148
  - 149
  pip._vendor.rich.padding:
  - 138
  - 3
  - 141
  pip._vendor.rich.padding.Padding:
  - 20
  pip._vendor.rich.padding.Padding.__init__:
  - 42
  pip._vendor.rich.padding.Padding.__rich_console__:
  - 82
  - 83
  - 86
  - 87
  - 92
  - 93
  - 94
  - 97
  - 102
  - 104
  - 106
  - 109
  - 110
  - 111
  - 112
  - 113
  - 114
  - 115
  - 116
  - 118
  - 119
  - 120
  - 121
  - 122
  - 123
  pip._vendor.rich.padding.Padding.__rich_measure__:
  - 130
  - 131
  - 132
  - 133
  - 134
  pip._vendor.rich.padding.Padding.indent:
  - 48
  - 58
  pip._vendor.rich.padding.Padding.unpack:
  - 65
  - 68
  - 69
  - 71
  - 72
  - 62
  - 63
  pip._vendor.rich.pager:
  - 32
  - 33
  - 34
  - 28
  pip._vendor.rich.pager.Pager:
  - 6
  pip._vendor.rich.pager.Pager.show:
  - 10
  pip._vendor.rich.pager.SystemPager:
  - 18
  pip._vendor.rich.pager.SystemPager._pager:
  - 21
  pip._vendor.rich.pager.SystemPager.show:
  - 24
  - 25
  pip._vendor.rich.palette:
  - 99
  - 75
  - 100
  - 7
  pip._vendor.rich.palette.ColorBox.__rich_console__:
  - 96
  - 97
  - 88
  - 89
  - 92
  - 93
  - 94
  - 95
  pip._vendor.rich.palette.Palette:
  - 12
  - 44
  pip._vendor.rich.palette.Palette.__getitem__:
  - 18
  pip._vendor.rich.palette.Palette.__rich__:
  - 35
  - 36
  - 37
  - 38
  - 39
  - 26
  - 31
  pip._vendor.rich.palette.Palette.match:
  - 46
  - 71
  pip._vendor.rich.palette.Palette.match.get_color_distance:
  - 65
  - 59
  - 60
  pip._vendor.rich.panel:
  - 291
  - 294
  - 299
  - 13
  - 307
  - 308
  pip._vendor.rich.panel.Panel:
  - 18
  pip._vendor.rich.panel.Panel.__rich_console__:
  - 260
  - 261
  - 262
  - 264
  - 138
  - 266
  - 140
  - 142
  - 143
  - 147
  - 151
  - 198
  - 199
  - 204
  - 205
  - 209
  - 211
  - 212
  - 213
  - 217
  - 220
  - 222
  - 223
  - 224
  - 225
  - 226
  - 228
  - 235
  - 236
  - 237
  - 239
  - 240
  - 241
  - 242
  - 243
  - 244
  - 247
  - 248
  - 250
  - 251
  - 253
  pip._vendor.rich.panel.Panel.__rich_console__.align_text:
  - 168
  - 169
  - 170
  - 171
  - 172
  - 173
  - 179
  - 181
  - 156
  - 189
  pip._vendor.rich.panel.Panel.__rich_measure__:
  - 288
  - 272
  - 276
  - 278
  - 280
  pip._vendor.rich.panel.Panel._subtitle:
  - 128
  - 130
  - 131
  - 121
  - 123
  - 124
  - 125
  pip._vendor.rich.panel.Panel._title:
  - 105
  - 107
  - 108
  - 109
  - 112
  - 114
  - 115
  pip._vendor.rich.panel.Panel.fit:
  - 88
  - 87
  pip._vendor.rich.pretty:
  - 33
  - 933
  - 47
  - 949
  - 960
  - 961
  - 964
  - 975
  - 85
  - 982
  - 984
  - 994
  - 360
  - 363
  - 364
  - 365
  - 366
  - 367
  - 368
  - 369
  - 370
  - 371
  - 372
  - 374
  pip._vendor.rich.pretty.BrokenRepr.__repr__:
  - 937
  pip._vendor.rich.pretty.Node:
  - 390
  pip._vendor.rich.pretty.Node.__str__:
  - 444
  pip._vendor.rich.pretty.Node.check_length:
  - 427
  - 437
  - 438
  - 439
  pip._vendor.rich.pretty.Node.iter_tokens:
  - 416
  - 418
  - 419
  - 420
  - 421
  - 422
  - 424
  - 405
  - 406
  - 407
  - 408
  - 409
  - 410
  - 411
  - 412
  - 413
  - 414
  - 415
  pip._vendor.rich.pretty.Node.render:
  - 450
  - 460
  - 462
  - 464
  - 465
  - 466
  - 469
  pip._vendor.rich.pretty.Pretty:
  - 244
  pip._vendor.rich.pretty.Pretty.__init__:
  - 281
  pip._vendor.rich.pretty.Pretty.__rich_console__:
  - 321
  - 322
  - 325
  - 326
  - 327
  - 297
  - 306
  - 310
  - 314
  - 316
  - 317
  pip._vendor.rich.pretty.Pretty.__rich_measure__:
  - 344
  - 332
  - 342
  pip._vendor.rich.pretty._Line:
  - 475
  pip._vendor.rich.pretty._Line.__str__:
  - 537
  - 533
  pip._vendor.rich.pretty._Line.check_length:
  - 497
  - 492
  - 494
  pip._vendor.rich.pretty._Line.expand:
  - 513
  - 514
  - 516
  - 523
  - 525
  - 500
  - 505
  - 506
  - 511
  pip._vendor.rich.pretty._Line.expandable:
  - 488
  - 489
  pip._vendor.rich.pretty._get_attr_fields:
  - 64
  - 65
  pip._vendor.rich.pretty._has_default_namedtuple_repr:
  - 104
  - 89
  - 99
  pip._vendor.rich.pretty._ipy_display_hook:
  - 128
  - 130
  - 131
  - 132
  - 134
  - 135
  - 151
  - 123
  - 126
  pip._vendor.rich.pretty._is_attr_object:
  - 59
  - 60
  pip._vendor.rich.pretty._is_dataclass_repr:
  - 69
  pip._vendor.rich.pretty._is_namedtuple:
  - 553
  - 557
  - 542
  pip._vendor.rich.pretty._safe_isinstance:
  - 157
  - 159
  pip._vendor.rich.pretty.install:
  - 237
  - 174
  - 214
  - 215
  - 190
  pip._vendor.rich.pretty.install.RichFormatter.__call__:
  - 225
  - 234
  - 222
  - 223
  pip._vendor.rich.pretty.install.display_hook:
  - 194
  - 195
  - 198
  - 200
  - 201
  pip._vendor.rich.pretty.is_expandable:
  - 384
  - 385
  - 379
  - 381
  - 382
  - 383
  pip._vendor.rich.pretty.pprint:
  - 920
  - 906
  - 918
  - 919
  pip._vendor.rich.pretty.pretty_repr:
  - 866
  - 884
  - 890
  - 887
  pip._vendor.rich.pretty.traverse:
  - 852
  - 597
  - 566
  pip._vendor.rich.pretty.traverse._traverse:
  - 602
  - 604
  - 605
  - 607
  - 609
  - 630
  - 637
  - 639
  - 640
  - 644
  - 645
  - 646
  - 647
  - 650
  - 654
  - 655
  - 656
  - 658
  - 660
  - 661
  - 669
  - 675
  - 676
  - 678
  - 682
  - 684
  - 686
  - 688
  - 693
  - 694
  - 695
  - 699
  - 700
  - 701
  - 702
  - 704
  - 729
  - 730
  - 731
  - 733
  - 737
  - 739
  - 742
  - 743
  - 744
  - 745
  - 747
  - 749
  - 752
  - 753
  - 755
  - 763
  - 764
  - 766
  - 770
  - 772
  - 773
  - 774
  - 776
  - 778
  - 784
  - 790
  - 791
  - 795
  - 796
  - 797
  - 798
  - 799
  - 803
  - 805
  - 807
  - 808
  - 809
  - 810
  - 811
  - 813
  - 820
  - 823
  - 824
  - 825
  - 826
  - 827
  - 828
  - 829
  - 831
  - 833
  - 834
  - 835
  - 836
  - 837
  - 839
  - 840
  - 841
  - 843
  - 845
  - 847
  - 848
  - 849
  pip._vendor.rich.pretty.traverse._traverse.iter_attrs:
  - 714
  - 715
  - 716
  - 718
  - 721
  - 723
  - 726
  pip._vendor.rich.pretty.traverse._traverse.iter_rich_args:
  - 614
  - 615
  - 616
  - 618
  - 620
  - 621
  - 623
  - 624
  - 625
  - 627
  pip._vendor.rich.pretty.traverse.to_repr:
  - 582
  - 583
  - 585
  - 586
  - 588
  - 592
  - 594
  pip._vendor.rich.print:
  - 73
  - 74
  - 60
  pip._vendor.rich.print_json:
  - 90
  - 106
  pip._vendor.rich.progress:
  - 1664
  - 1665
  - 1669
  - 1676
  - 1681
  - 1683
  - 1685
  - 1686
  - 1687
  - 1688
  - 1693
  - 1694
  - 1695
  - 1698
  - 1699
  - 1700
  - 37
  - 1701
  - 1702
  - 53
  - 55
  - 60
  - 1638
  - 1648
  pip._vendor.rich.progress.BarColumn:
  - 635
  pip._vendor.rich.progress.BarColumn.__init__:
  - 659
  pip._vendor.rich.progress.BarColumn.render:
  - 662
  - 663
  - 664
  - 665
  - 666
  - 668
  pip._vendor.rich.progress.DownloadColumn:
  - 855
  pip._vendor.rich.progress.DownloadColumn.__init__:
  - 865
  pip._vendor.rich.progress.DownloadColumn.render:
  - 899
  - 868
  - 869
  - 872
  - 874
  - 875
  - 881
  - 891
  - 892
  pip._vendor.rich.progress.FileSizeColumn:
  - 810
  pip._vendor.rich.progress.FileSizeColumn.render:
  - 813
  - 814
  - 815
  pip._vendor.rich.progress.MofNCompleteColumn:
  - 828
  pip._vendor.rich.progress.MofNCompleteColumn.__init__:
  - 841
  pip._vendor.rich.progress.MofNCompleteColumn.render:
  - 844
  - 845
  - 846
  - 847
  - 848
  pip._vendor.rich.progress.Progress:
  - 1051
  pip._vendor.rich.progress.Progress.__enter__:
  - 1169
  pip._vendor.rich.progress.Progress.__exit__:
  - 1178
  pip._vendor.rich.progress.Progress.__init__:
  - 1088
  - 1089
  - 1090
  - 1081
  - 1082
  pip._vendor.rich.progress.Progress.__rich__:
  - 1580
  - 1582
  pip._vendor.rich.progress.Progress.add_task:
  - 1609
  - 1620
  - 1621
  - 1623
  - 1624
  - 1593
  pip._vendor.rich.progress.Progress.advance:
  - 1508
  - 1519
  - 1520
  - 1521
  - 1522
  - 1523
  - 1502
  pip._vendor.rich.progress.Progress.finished:
  - 1153
  - 1155
  - 1151
  pip._vendor.rich.progress.Progress.get_default_columns:
  - 1127
  - 1128
  - 1129
  - 1130
  - 1104
  pip._vendor.rich.progress.Progress.get_renderable:
  - 1537
  - 1538
  pip._vendor.rich.progress.Progress.get_renderables:
  - 1544
  - 1542
  - 1543
  pip._vendor.rich.progress.Progress.make_tasks_table:
  - 1570
  - 1571
  - 1572
  - 1547
  - 1557
  - 1558
  - 1559
  - 1563
  - 1565
  - 1566
  - 1567
  pip._vendor.rich.progress.Progress.open:
  - 1347
  - 1348
  - 1351
  - 1352
  - 1354
  - 1357
  - 1358
  - 1328
  - 1329
  - 1361
  - 1362
  - 1334
  - 1335
  - 1340
  - 1308
  - 1341
  - 1343
  pip._vendor.rich.progress.Progress.refresh:
  - 1532
  - 1533
  - 1534
  pip._vendor.rich.progress.Progress.remove_task:
  - 1628
  pip._vendor.rich.progress.Progress.reset:
  - 1473
  - 1484
  - 1487
  - 1489
  - 1492
  - 1494
  - 1496
  - 1499
  pip._vendor.rich.progress.Progress.start:
  - 1160
  - 1158
  - 1159
  pip._vendor.rich.progress.Progress.start_task:
  - 1384
  - 1373
  - 1383
  pip._vendor.rich.progress.Progress.stop:
  - 1163
  - 1164
  - 1165
  - 1166
  pip._vendor.rich.progress.Progress.stop_task:
  - 1387
  - 1396
  - 1397
  pip._vendor.rich.progress.Progress.task_ids:
  - 1145
  - 1147
  pip._vendor.rich.progress.Progress.tasks:
  - 1139
  - 1141
  pip._vendor.rich.progress.Progress.track:
  - 1216
  - 1217
  - 1218
  - 1219
  - 1188
  - 1200
  - 1201
  - 1203
  - 1204
  - 1206
  - 1208
  - 1209
  - 1210
  - 1211
  pip._vendor.rich.progress.Progress.update:
  - 1440
  - 1443
  - 1413
  - 1449
  - 1450
  - 1451
  - 1452
  - 1459
  - 1460
  - 1429
  - 1431
  - 1432
  - 1434
  - 1436
  - 1438
  pip._vendor.rich.progress.Progress.wrap_file:
  - 1250
  - 1256
  - 1257
  - 1259
  - 1229
  - 1261
  - 1245
  - 1247
  pip._vendor.rich.progress.ProgressColumn:
  - 496
  pip._vendor.rich.progress.ProgressColumn.__call__:
  - 518
  - 519
  - 525
  - 528
  - 510
  pip._vendor.rich.progress.ProgressColumn.get_table_column:
  - 506
  - 507
  pip._vendor.rich.progress.ProgressColumn.render:
  - 534
  pip._vendor.rich.progress.ProgressSample:
  - 921
  - 916
  - 919
  pip._vendor.rich.progress.RenderableColumn:
  - 538
  pip._vendor.rich.progress.RenderableColumn.__init__:
  - 548
  pip._vendor.rich.progress.SpinnerColumn:
  - 555
  pip._vendor.rich.progress.SpinnerColumn.__init__:
  - 578
  - 572
  - 574
  - 575
  pip._vendor.rich.progress.SpinnerColumn.render:
  - 599
  pip._vendor.rich.progress.SpinnerColumn.set_spinner:
  - 593
  - 586
  pip._vendor.rich.progress.Task:
  - 926
  - 933
  - 936
  - 939
  - 942
  - 945
  - 948
  - 951
  - 953
  - 954
  - 956
  - 957
  - 959
  - 960
  - 963
  - 965
  - 966
  - 969
  - 970
  pip._vendor.rich.progress.Task.<lambda1>:
  - 966
  pip._vendor.rich.progress.Task._reset:
  - 1044
  - 1045
  pip._vendor.rich.progress.Task.elapsed:
  - 993
  - 995
  - 990
  - 991
  pip._vendor.rich.progress.Task.finished:
  - 999
  pip._vendor.rich.progress.Task.get_time:
  - 973
  - 974
  pip._vendor.rich.progress.Task.percentage:
  - 1008
  - 1004
  - 1005
  pip._vendor.rich.progress.Task.remaining:
  - 984
  - 983
  pip._vendor.rich.progress.Task.speed:
  - 1024
  - 1025
  - 1013
  - 1014
  - 1018
  - 1021
  - 1023
  pip._vendor.rich.progress.Task.started:
  - 978
  pip._vendor.rich.progress.Task.time_remaining:
  - 1031
  - 1032
  - 1035
  - 1038
  - 1040
  pip._vendor.rich.progress.TaskProgressColumn:
  - 689
  pip._vendor.rich.progress.TaskProgressColumn.__init__:
  - 716
  pip._vendor.rich.progress.TaskProgressColumn.render:
  - 746
  - 747
  - 751
  - 752
  - 753
  - 755
  - 756
  - 757
  pip._vendor.rich.progress.TaskProgressColumn.render_speed:
  - 736
  - 737
  - 738
  - 743
  - 727
  - 735
  pip._vendor.rich.progress.TextColumn:
  - 605
  pip._vendor.rich.progress.TextColumn.__init__:
  - 621
  pip._vendor.rich.progress.TextColumn.render:
  - 624
  - 625
  - 626
  - 628
  - 629
  - 630
  pip._vendor.rich.progress.TimeElapsedColumn:
  - 677
  pip._vendor.rich.progress.TimeElapsedColumn.render:
  - 680
  - 682
  - 683
  - 684
  - 685
  pip._vendor.rich.progress.TimeRemainingColumn:
  - 762
  pip._vendor.rich.progress.TimeRemainingColumn.__init__:
  - 780
  pip._vendor.rich.progress.TimeRemainingColumn.render:
  - 801
  - 806
  - 783
  - 784
  - 791
  - 792
  - 794
  - 795
  - 798
  - 799
  pip._vendor.rich.progress.TotalFileSizeColumn:
  - 819
  pip._vendor.rich.progress.TotalFileSizeColumn.render:
  - 824
  - 822
  - 823
  pip._vendor.rich.progress.TransferSpeedColumn:
  - 904
  pip._vendor.rich.progress.TransferSpeedColumn.render:
  - 907
  - 909
  - 910
  - 911
  - 912
  pip._vendor.rich.progress._ReadContext:
  - 274
  pip._vendor.rich.progress._ReadContext.__enter__:
  - 281
  - 282
  pip._vendor.rich.progress._ReadContext.__exit__:
  - 290
  - 291
  pip._vendor.rich.progress._Reader:
  - 174
  pip._vendor.rich.progress._Reader.__enter__:
  - 190
  pip._vendor.rich.progress._Reader.__exit__:
  - 199
  pip._vendor.rich.progress._Reader.__next__:
  - 205
  - 206
  pip._vendor.rich.progress._Reader.close:
  - 257
  - 258
  pip._vendor.rich.progress._Reader.fileno:
  - 214
  pip._vendor.rich.progress._Reader.isatty:
  - 217
  pip._vendor.rich.progress._Reader.read:
  - 237
  - 238
  pip._vendor.rich.progress._Reader.readable:
  - 228
  pip._vendor.rich.progress._Reader.readinto:
  - 242
  - 243
  pip._vendor.rich.progress._Reader.readline:
  - 248
  - 247
  pip._vendor.rich.progress._Reader.readlines:
  - 252
  - 253
  pip._vendor.rich.progress._Reader.seek:
  - 262
  - 263
  pip._vendor.rich.progress._Reader.seekable:
  - 231
  pip._vendor.rich.progress._Reader.tell:
  - 267
  pip._vendor.rich.progress._TrackThread:
  - 64
  pip._vendor.rich.progress._TrackThread.__enter__:
  - 90
  pip._vendor.rich.progress._TrackThread.__exit__:
  - 99
  - 100
  pip._vendor.rich.progress._TrackThread.__init__:
  - 73
  - 70
  pip._vendor.rich.progress._TrackThread.run:
  - 81
  - 83
  - 84
  - 87
  pip._vendor.rich.progress.open:
  - 482
  - 458
  - 460
  - 492
  - 462
  - 430
  - 468
  - 469
  - 472
  pip._vendor.rich.progress.track:
  - 168
  - 143
  - 145
  - 147
  - 120
  - 153
  - 154
  - 157
  pip._vendor.rich.progress.wrap_file:
  - 355
  - 356
  - 331
  - 333
  - 335
  - 341
  - 310
  - 342
  - 345
  pip._vendor.rich.progress_bar:
  - 224
  - 211
  - 212
  - 213
  - 217
  - 218
  - 219
  - 220
  - 221
  - 222
  - 223
  pip._vendor.rich.progress_bar.ProgressBar:
  - 19
  - 69
  pip._vendor.rich.progress_bar.ProgressBar.__rich_console__:
  - 160
  - 192
  - 194
  - 163
  - 164
  - 195
  - 196
  - 198
  - 168
  - 199
  - 175
  - 181
  - 183
  - 187
  - 188
  - 189
  - 190
  pip._vendor.rich.progress_bar.ProgressBar.__rich_measure__:
  - 205
  - 207
  pip._vendor.rich.progress_bar.ProgressBar._get_pulse_segments:
  - 96
  - 99
  - 101
  - 109
  - 78
  - 111
  - 112
  - 113
  - 85
  - 86
  - 87
  - 94
  pip._vendor.rich.progress_bar.ProgressBar._render_pulse:
  - 129
  - 141
  - 142
  - 144
  - 147
  - 149
  - 151
  - 152
  - 154
  pip._vendor.rich.progress_bar.ProgressBar.percentage_completed:
  - 66
  - 62
  - 63
  pip._vendor.rich.progress_bar.ProgressBar.update:
  - 117
  pip._vendor.rich.prompt:
  - 352
  - 354
  - 357
  - 7
  - 8
  - 359
  - 360
  - 363
  - 367
  - 369
  - 370
  - 372
  - 373
  - 376
  - 348
  pip._vendor.rich.prompt.Confirm:
  - 323
  pip._vendor.rich.prompt.Confirm.process_response:
  - 341
  - 342
  - 343
  pip._vendor.rich.prompt.Confirm.render_default:
  - 336
  - 338
  pip._vendor.rich.prompt.FloatPrompt:
  - 311
  pip._vendor.rich.prompt.IntPrompt:
  - 299
  pip._vendor.rich.prompt.InvalidResponse:
  - 16
  pip._vendor.rich.prompt.Prompt:
  - 287
  pip._vendor.rich.prompt.PromptBase:
  - 31
  pip._vendor.rich.prompt.PromptBase.__call__:
  - 260
  - 263
  - 272
  - 273
  - 274
  - 275
  - 278
  - 280
  - 254
  pip._vendor.rich.prompt.PromptBase.__init__:
  - 65
  - 66
  - 70
  - 63
  pip._vendor.rich.prompt.PromptBase.ask:
  - 133
  - 104
  - 141
  - 119
  - 89
  pip._vendor.rich.prompt.PromptBase.check_choice:
  - 206
  - 215
  pip._vendor.rich.prompt.PromptBase.get_input:
  - 193
  - 203
  pip._vendor.rich.prompt.PromptBase.make_prompt:
  - 163
  - 166
  - 167
  - 169
  - 170
  - 172
  - 175
  - 177
  - 178
  - 179
  - 181
  - 155
  pip._vendor.rich.prompt.PromptBase.on_validate_error:
  - 241
  - 247
  pip._vendor.rich.prompt.PromptBase.pre_prompt:
  - 250
  pip._vendor.rich.prompt.PromptBase.process_response:
  - 218
  - 235
  - 229
  - 231
  pip._vendor.rich.prompt.PromptBase.render_default:
  - 144
  - 152
  pip._vendor.rich.prompt.PromptError:
  - 12
  pip._vendor.rich.protocol:
  - 4
  pip._vendor.rich.protocol.is_renderable:
  - 11
  - 13
  - 14
  - 15
  pip._vendor.rich.protocol.rich_cast:
  - 33
  - 34
  - 35
  - 36
  - 37
  - 38
  - 40
  - 42
  - 20
  - 30
  - 31
  pip._vendor.rich.reconfigure:
  - 40
  - 49
  - 48
  pip._vendor.rich.region.Region:
  - 5
  pip._vendor.rich.repr:
  - 132
  - 135
  - 137
  - 138
  - 140
  - 141
  - 143
  - 16
  - 146
  - 148
  - 149
  - 123
  pip._vendor.rich.repr.Foo.__rich_repr__:
  - 128
  - 129
  - 130
  pip._vendor.rich.repr.ReprError:
  - 24
  pip._vendor.rich.repr.auto:
  - 34
  - 99
  - 98
  - 101
  - 40
  - 29
  pip._vendor.rich.repr.auto.do_replace:
  - 88
  - 94
  pip._vendor.rich.repr.auto.do_replace.auto_repr:
  - 64
  - 66
  - 44
  - 48
  - 49
  - 50
  - 51
  - 52
  - 55
  - 56
  - 58
  - 60
  - 62
  - 63
  pip._vendor.rich.repr.auto.do_replace.auto_rich_repr:
  - 69
  - 71
  - 72
  - 73
  - 74
  - 75
  - 79
  - 80
  - 82
  pip._vendor.rich.repr.rich_repr:
  - 106
  - 111
  - 117
  - 118
  - 120
  pip._vendor.rich.rule:
  - 129
  - 130
  - 117
  - 126
  - 127
  pip._vendor.rich.rule.Rule:
  - 13
  pip._vendor.rich.rule.Rule.__init__:
  - 32
  - 36
  pip._vendor.rich.rule.Rule.__rich_console__:
  - 56
  - 60
  - 61
  - 62
  - 65
  - 68
  - 70
  - 71
  - 74
  - 75
  - 76
  - 79
  - 80
  - 81
  - 82
  - 83
  - 84
  - 85
  - 86
  - 87
  - 88
  - 89
  - 90
  - 91
  - 92
  - 93
  - 94
  - 95
  - 96
  - 97
  - 98
  - 99
  - 100
  - 102
  - 103
  pip._vendor.rich.rule.Rule.__rich_measure__:
  - 114
  pip._vendor.rich.rule.Rule._rule_line:
  - 106
  - 107
  - 108
  pip._vendor.rich.scope:
  - 70
  - 73
  - 10
  - 85
  - 86
  pip._vendor.rich.scope.render_scope:
  - 37
  - 38
  - 39
  - 46
  - 47
  - 48
  - 49
  - 52
  - 54
  - 23
  - 62
  pip._vendor.rich.scope.render_scope.sort_items:
  - 42
  - 44
  pip._vendor.rich.scope.test:
  - 83
  pip._vendor.rich.screen:
  - 8
  pip._vendor.rich.screen.Screen:
  - 19
  pip._vendor.rich.screen.Screen.__init__:
  - 36
  pip._vendor.rich.screen.Screen.__rich_console__:
  - 44
  - 45
  - 46
  - 49
  - 50
  - 51
  - 52
  - 53
  - 54
  pip._vendor.rich.segment:
  - 32
  - 736
  - 737
  - 708
  - 733
  - 718
  - 720
  - 722
  - 723
  - 726
  - 727
  - 728
  - 729
  - 732
  - 29
  - 734
  - 735
  pip._vendor.rich.segment.ControlType:
  - 36
  pip._vendor.rich.segment.Segment:
  - 65
  - 110
  pip._vendor.rich.segment.Segment.__bool__:
  - 101
  - 102
  pip._vendor.rich.segment.Segment.__rich_repr__:
  - 97
  - 98
  - 92
  - 93
  - 94
  - 95
  pip._vendor.rich.segment.Segment._split_cells:
  - 128
  - 129
  - 131
  - 134
  - 136
  - 138
  - 139
  - 141
  - 143
  - 144
  - 117
  - 118
  - 122
  - 125
  - 126
  pip._vendor.rich.segment.Segment.adjust_line_length:
  - 320
  - 331
  - 334
  - 335
  - 336
  - 339
  - 343
  - 345
  - 346
  - 350
  - 351
  pip._vendor.rich.segment.Segment.align_bottom:
  - 474
  - 458
  - 470
  - 471
  pip._vendor.rich.segment.Segment.align_middle:
  - 503
  - 499
  - 500
  - 487
  pip._vendor.rich.segment.Segment.align_top:
  - 441
  - 442
  - 429
  - 445
  pip._vendor.rich.segment.Segment.apply_style:
  - 196
  - 199
  - 202
  - 204
  - 183
  pip._vendor.rich.segment.Segment.cell_length:
  - 89
  - 83
  pip._vendor.rich.segment.Segment.divide:
  - 642
  - 644
  - 645
  - 646
  - 649
  - 650
  - 651
  - 652
  - 655
  - 592
  - 603
  - 606
  - 607
  - 609
  - 611
  - 618
  - 621
  - 622
  - 623
  - 627
  - 628
  - 629
  - 630
  - 633
  - 634
  - 635
  - 636
  pip._vendor.rich.segment.Segment.filter_control:
  - 232
  - 234
  - 221
  - 231
  pip._vendor.rich.segment.Segment.get_line_length:
  - 368
  - 359
  pip._vendor.rich.segment.Segment.get_shape:
  - 372
  - 381
  - 382
  pip._vendor.rich.segment.Segment.is_control:
  - 106
  pip._vendor.rich.segment.Segment.line:
  - 173
  - 174
  pip._vendor.rich.segment.Segment.remove_color:
  - 578
  - 579
  - 580
  - 581
  - 584
  - 586
  - 568
  pip._vendor.rich.segment.Segment.set_shape:
  - 416
  - 417
  - 393
  - 405
  - 408
  - 414
  pip._vendor.rich.segment.Segment.simplify:
  - 519
  - 521
  - 526
  - 527
  - 528
  - 532
  - 534
  - 511
  pip._vendor.rich.segment.Segment.split_and_crop_lines:
  - 290
  - 292
  - 293
  - 296
  - 297
  - 298
  - 299
  - 300
  - 303
  - 304
  - 305
  - 274
  - 306
  - 308
  - 309
  - 310
  pip._vendor.rich.segment.Segment.split_cells:
  - 160
  - 162
  - 163
  - 165
  - 166
  - 169
  - 150
  pip._vendor.rich.segment.Segment.split_lines:
  - 256
  - 257
  - 261
  - 262
  - 263
  - 238
  - 249
  - 250
  - 253
  - 254
  - 255
  pip._vendor.rich.segment.Segment.strip_links:
  - 546
  - 547
  - 548
  - 551
  - 538
  pip._vendor.rich.segment.Segment.strip_styles:
  - 563
  - 555
  - 564
  pip._vendor.rich.segment.SegmentLines.__init__:
  - 692
  - 685
  pip._vendor.rich.segment.SegmentLines.__rich_console__:
  - 704
  - 705
  - 698
  - 699
  - 700
  - 701
  - 702
  pip._vendor.rich.segment.Segments:
  - 659
  pip._vendor.rich.segment.Segments.__init__:
  - 668
  pip._vendor.rich.segment.Segments.__rich_console__:
  - 674
  - 675
  - 676
  - 677
  - 678
  - 680
  pip._vendor.rich.spinner:
  - 132
  - 133
  - 8
  - 137
  - 116
  - 123
  - 125
  - 126
  pip._vendor.rich.spinner.Spinner:
  - 14
  pip._vendor.rich.spinner.Spinner.__init__:
  - 41
  - 42
  - 39
  pip._vendor.rich.spinner.Spinner.__rich_console__:
  - 52
  pip._vendor.rich.spinner.Spinner.__rich_measure__:
  - 57
  - 58
  pip._vendor.rich.spinner.Spinner.render:
  - 69
  - 75
  - 76
  - 79
  - 85
  - 87
  - 88
  - 90
  - 91
  - 61
  pip._vendor.rich.spinner.Spinner.update:
  - 101
  - 108
  - 109
  - 110
  - 112
  pip._vendor.rich.status:
  - 131
  - 132
  - 109
  - 115
  - 116
  - 117
  - 118
  - 119
  - 120
  - 121
  - 122
  - 123
  - 124
  - 125
  - 126
  pip._vendor.rich.status.Status:
  - 12
  pip._vendor.rich.status.Status.__enter__:
  - 97
  pip._vendor.rich.status.Status.__exit__:
  - 106
  pip._vendor.rich.status.Status.__init__:
  - 36
  - 37
  pip._vendor.rich.status.Status.console:
  - 50
  pip._vendor.rich.status.Status.start:
  - 86
  - 87
  pip._vendor.rich.status.Status.stop:
  - 90
  - 91
  pip._vendor.rich.status.Status.update:
  - 69
  - 71
  - 73
  - 75
  - 76
  - 79
  - 81
  - 61
  pip._vendor.rich.style:
  - 762
  pip._vendor.rich.style.Style:
  - 648
  - 266
  - 267
  - 268
  - 269
  - 270
  - 271
  - 272
  - 273
  - 274
  - 275
  - 276
  - 277
  - 278
  - 32
  - 563
  - 732
  - 497
  - 379
  pip._vendor.rich.style.Style.__add__:
  - 758
  - 759
  pip._vendor.rich.style.Style.__bool__:
  - 332
  pip._vendor.rich.style.Style.__eq__:
  - 425
  - 423
  pip._vendor.rich.style.Style.__hash__:
  - 433
  - 435
  pip._vendor.rich.style.Style.__init__:
  - 193
  - 169
  - 149
  - 150
  - 151
  - 191
  pip._vendor.rich.style.Style.__init__._make_color:
  - 147
  pip._vendor.rich.style.Style.__ne__:
  - 428
  - 430
  pip._vendor.rich.style.Style.__rich_repr__:
  - 416
  - 417
  - 418
  - 419
  - 420
  - 404
  - 405
  - 406
  - 407
  - 408
  - 409
  - 410
  - 411
  - 412
  - 413
  - 414
  - 415
  pip._vendor.rich.style.Style.__str__:
  - 286
  - 287
  - 291
  - 292
  - 293
  - 294
  - 295
  - 296
  - 297
  - 298
  - 299
  - 300
  - 301
  - 302
  - 303
  - 304
  - 305
  - 306
  - 307
  - 308
  - 309
  - 310
  - 311
  - 312
  - 313
  - 314
  - 315
  - 316
  - 317
  - 318
  - 319
  - 320
  - 321
  - 322
  - 323
  - 324
  - 325
  - 326
  - 327
  - 328
  pip._vendor.rich.style.Style._add:
  - 736
  - 738
  - 750
  - 751
  - 734
  pip._vendor.rich.style.Style._make_ansi_codes:
  - 336
  - 345
  - 350
  - 351
  - 352
  - 353
  - 354
  - 355
  - 356
  - 357
  - 358
  - 359
  - 360
  - 361
  - 362
  - 363
  - 364
  - 365
  - 366
  - 367
  - 368
  - 369
  - 370
  - 371
  - 375
  pip._vendor.rich.style.Style.background_style:
  - 469
  - 470
  pip._vendor.rich.style.Style.bgcolor:
  - 454
  pip._vendor.rich.style.Style.chain:
  - 624
  - 623
  - 615
  pip._vendor.rich.style.Style.clear_meta_and_links:
  - 657
  - 650
  - 655
  pip._vendor.rich.style.Style.color:
  - 449
  pip._vendor.rich.style.Style.combine:
  - 602
  - 611
  - 610
  pip._vendor.rich.style.Style.copy:
  - 632
  - 634
  - 627
  - 642
  pip._vendor.rich.style.Style.from_color:
  - 213
  - 207
  pip._vendor.rich.style.Style.from_meta:
  - 234
  - 242
  - 229
  - 243
  pip._vendor.rich.style.Style.get_html_style:
  - 565
  - 572
  - 574
  - 576
  - 578
  - 579
  - 581
  - 582
  - 583
  - 584
  - 585
  - 586
  - 587
  - 588
  - 589
  - 590
  - 591
  - 592
  - 593
  - 594
  - 595
  - 596
  - 597
  - 598
  pip._vendor.rich.style.Style.link:
  - 459
  pip._vendor.rich.style.Style.link_id:
  - 282
  pip._vendor.rich.style.Style.meta:
  - 474
  - 475
  pip._vendor.rich.style.Style.normalize:
  - 393
  - 381
  - 391
  pip._vendor.rich.style.Style.null:
  - 200
  pip._vendor.rich.style.Style.on:
  - 264
  - 250
  - 263
  pip._vendor.rich.style.Style.parse:
  - 519
  - 520
  - 521
  - 522
  - 523
  - 524
  - 527
  - 534
  - 535
  - 536
  - 537
  - 543
  - 544
  - 545
  - 549
  - 554
  - 560
  - 499
  - 510
  - 511
  pip._vendor.rich.style.Style.pick_first:
  - 397
  - 398
  - 399
  pip._vendor.rich.style.Style.render:
  - 712
  - 714
  - 701
  - 710
  pip._vendor.rich.style.Style.test:
  - 721
  - 730
  - 729
  pip._vendor.rich.style.Style.transparent_background:
  - 464
  pip._vendor.rich.style.Style.update_link:
  - 672
  - 680
  - 688
  pip._vendor.rich.style.Style.without_color:
  - 480
  - 482
  - 490
  - 479
  pip._vendor.rich.style.StyleStack:
  - 766
  pip._vendor.rich.style.StyleStack.current:
  - 778
  pip._vendor.rich.style.StyleStack.pop:
  - 795
  - 790
  pip._vendor.rich.style.StyleStack.push:
  - 787
  - 782
  pip._vendor.rich.style._Bit:
  - 17
  pip._vendor.rich.style._Bit.__get__:
  - 25
  pip._vendor.rich.styled:
  - 41
  - 42
  - 37
  - 7
  pip._vendor.rich.styled.Styled:
  - 12
  pip._vendor.rich.styled.Styled.__rich_console__:
  - 26
  - 27
  - 28
  pip._vendor.rich.styled.Styled.__rich_measure__:
  - 34
  pip._vendor.rich.syntax:
  - 900
  - 866
  - 907
  - 910
  - 843
  - 835
  - 917
  - 859
  - 921
  - 923
  - 924
  - 925
  - 937
  - 874
  - 948
  - 55
  - 62
  - 63
  - 64
  - 65
  - 66
  - 67
  - 68
  - 69
  - 70
  - 71
  - 72
  - 73
  - 74
  - 75
  - 76
  - 77
  - 78
  - 79
  - 80
  - 81
  - 82
  - 83
  - 84
  - 85
  - 86
  - 87
  - 831
  - 851
  - 91
  - 92
  - 93
  - 94
  - 95
  - 96
  - 97
  - 98
  - 99
  - 100
  - 101
  - 102
  - 103
  - 104
  - 105
  - 106
  - 107
  - 108
  - 109
  - 110
  - 111
  - 112
  - 113
  - 114
  - 115
  - 116
  - 882
  - 838
  - 890
  - 893
  pip._vendor.rich.syntax.ANSISyntaxTheme:
  - 180
  pip._vendor.rich.syntax.ANSISyntaxTheme.__init__:
  - 184
  - 185
  pip._vendor.rich.syntax.ANSISyntaxTheme.get_style_for_token:
  - 197
  - 201
  - 189
  - 200
  pip._vendor.rich.syntax.PygmentsSyntaxTheme:
  - 138
  pip._vendor.rich.syntax.PygmentsSyntaxTheme.__init__:
  - 144
  - 146
  - 142
  - 151
  pip._vendor.rich.syntax.PygmentsSyntaxTheme.get_style_for_token:
  - 161
  - 154
  - 165
  - 159
  pip._vendor.rich.syntax.Syntax:
  - 228
  pip._vendor.rich.syntax.Syntax.__init__:
  - 298
  - 293
  - 287
  pip._vendor.rich.syntax.Syntax.__rich_console__:
  - 611
  - 612
  - 613
  - 614
  - 617
  pip._vendor.rich.syntax.Syntax.__rich_measure__:
  - 593
  - 595
  - 597
  - 598
  - 602
  - 604
  - 606
  pip._vendor.rich.syntax.Syntax._apply_stylized_ranges:
  - 768
  - 770
  - 773
  - 774
  - 777
  - 780
  - 781
  - 754
  - 767
  pip._vendor.rich.syntax.Syntax._get_base_style:
  - 408
  - 407
  pip._vendor.rich.syntax.Syntax._get_line_numbers_color:
  - 544
  - 545
  - 546
  - 547
  - 548
  - 549
  - 550
  - 551
  - 554
  - 542
  pip._vendor.rich.syntax.Syntax._get_number_styles:
  - 576
  - 579
  - 581
  - 582
  - 586
  - 587
  - 568
  - 569
  - 570
  - 571
  - 572
  - 573
  - 575
  pip._vendor.rich.syntax.Syntax._get_syntax:
  - 641
  - 642
  - 643
  - 646
  - 647
  - 648
  - 651
  - 652
  - 654
  - 655
  - 656
  - 659
  - 661
  - 666
  - 667
  - 672
  - 673
  - 674
  - 675
  - 676
  - 680
  - 682
  - 683
  - 684
  - 688
  - 690
  - 695
  - 699
  - 707
  - 709
  - 710
  - 711
  - 713
  - 718
  - 719
  - 723
  - 731
  - 732
  - 735
  - 736
  - 737
  - 738
  - 739
  - 740
  - 742
  - 743
  - 745
  - 746
  - 747
  - 749
  - 750
  - 751
  - 624
  - 627
  - 638
  - 639
  pip._vendor.rich.syntax.Syntax._get_token_color:
  - 420
  - 412
  pip._vendor.rich.syntax.Syntax._numbers_column_width:
  - 560
  - 562
  - 558
  pip._vendor.rich.syntax.Syntax._process_code:
  - 784
  - 800
  - 795
  - 798
  pip._vendor.rich.syntax.Syntax.from_path:
  - 320
  - 342
  - 344
  - 345
  - 347
  pip._vendor.rich.syntax.Syntax.get_theme:
  - 257
  - 258
  - 260
  - 253
  - 254
  pip._vendor.rich.syntax.Syntax.guess_lexer:
  - 385
  - 389
  - 391
  - 392
  - 393
  - 394
  - 366
  - 398
  - 399
  - 383
  pip._vendor.rich.syntax.Syntax.highlight:
  - 512
  - 515
  - 516
  - 517
  - 519
  - 520
  - 457
  - 522
  - 523
  - 462
  - 472
  - 473
  - 475
  - 447
  pip._vendor.rich.syntax.Syntax.highlight.line_tokenize:
  - 481
  - 484
  - 486
  - 487
  pip._vendor.rich.syntax.Syntax.highlight.tokens_to_spans:
  - 490
  - 491
  - 498
  - 501
  - 502
  - 505
  - 506
  - 507
  - 509
  pip._vendor.rich.syntax.Syntax.lexer:
  - 425
  - 433
  - 430
  pip._vendor.rich.syntax.Syntax.stylize_range:
  - 530
  - 539
  pip._vendor.rich.syntax.SyntaxTheme:
  - 124
  pip._vendor.rich.syntax.SyntaxTheme.get_background_style:
  - 133
  pip._vendor.rich.syntax.SyntaxTheme.get_style_for_token:
  - 128
  pip._vendor.rich.syntax._SyntaxHighlightRange:
  - 216
  pip._vendor.rich.syntax._get_code_index_for_syntax_position:
  - 827
  - 819
  - 822
  - 807
  pip._vendor.rich.table:
  - 27
  - 924
  - 931
  - 932
  - 938
  - 941
  - 942
  - 944
  - 949
  - 950
  - 957
  - 968
  - 969
  - 970
  - 971
  - 974
  - 975
  - 978
  - 980
  - 985
  - 987
  - 993
  - 994
  - 1001
  - 1002
  pip._vendor.rich.table.Column:
  - 98
  - 101
  - 71
  - 40
  - 104
  - 74
  - 107
  - 77
  - 110
  - 80
  - 112
  - 83
  - 86
  - 89
  - 92
  - 95
  pip._vendor.rich.table.Column.cells:
  - 120
  - 121
  pip._vendor.rich.table.Column.copy:
  - 115
  - 116
  pip._vendor.rich.table.Column.flexible:
  - 125
  pip._vendor.rich.table.Row:
  - 137
  - 131
  - 134
  pip._vendor.rich.table.Table:
  - 152
  pip._vendor.rich.table.Table.__init__:
  - 224
  - 242
  - 244
  - 245
  - 246
  - 248
  - 249
  pip._vendor.rich.table.Table.__rich_console__:
  - 480
  - 512
  - 513
  - 515
  - 484
  - 485
  - 487
  - 489
  - 508
  - 505
  - 506
  - 475
  - 476
  - 511
  pip._vendor.rich.table.Table.__rich_console__.render_annotation:
  - 497
  - 498
  - 501
  - 502
  pip._vendor.rich.table.Table.__rich_measure__:
  - 323
  - 325
  - 326
  - 329
  - 330
  - 331
  - 337
  - 341
  - 344
  - 348
  - 349
  pip._vendor.rich.table.Table._calculate_column_widths:
  - 522
  - 526
  - 531
  - 533
  - 536
  - 539
  - 543
  - 544
  - 545
  - 546
  - 547
  - 548
  - 549
  - 551
  - 552
  - 557
  - 559
  - 561
  - 562
  - 565
  - 566
  - 570
  - 576
  - 578
  - 579
  pip._vendor.rich.table.Table._collapse_widths:
  - 611
  - 613
  - 615
  - 616
  - 618
  - 587
  - 597
  - 599
  - 601
  - 602
  - 604
  - 606
  pip._vendor.rich.table.Table._extra_width:
  - 296
  - 298
  - 300
  - 301
  pip._vendor.rich.table.Table._get_cells:
  - 665
  - 666
  - 669
  - 670
  - 671
  - 672
  - 673
  - 674
  - 677
  - 679
  - 681
  - 682
  - 684
  - 685
  - 688
  - 689
  - 692
  - 625
  - 630
  - 633
  pip._vendor.rich.table.Table._get_cells.get_padding:
  - 643
  - 644
  - 645
  - 646
  - 647
  - 649
  - 650
  - 652
  - 654
  - 656
  - 638
  - 639
  pip._vendor.rich.table.Table._get_padding_width:
  - 696
  - 698
  - 699
  - 700
  pip._vendor.rich.table.Table._measure_column:
  - 737
  - 709
  - 712
  - 713
  - 715
  - 717
  - 719
  - 728
  - 729
  - 730
  - 731
  - 733
  - 734
  - 735
  pip._vendor.rich.table.Table._render:
  - 896
  - 897
  - 898
  - 900
  - 773
  - 902
  - 903
  - 776
  - 777
  - 778
  - 892
  - 905
  - 781
  - 782
  - 783
  - 908
  - 909
  - 786
  - 787
  - 788
  - 894
  - 910
  - 791
  - 792
  - 793
  - 914
  - 915
  - 917
  - 919
  - 920
  - 921
  - 800
  - 810
  - 811
  - 887
  - 813
  - 814
  - 816
  - 817
  - 824
  - 827
  - 829
  - 830
  - 832
  - 852
  - 853
  - 857
  - 862
  - 889
  - 865
  - 866
  - 867
  - 868
  - 870
  - 746
  - 748
  - 876
  - 750
  - 751
  - 877
  - 753
  - 881
  - 755
  - 756
  - 882
  - 883
  - 884
  - 885
  - 761
  - 886
  - 763
  - 888
  - 893
  - 890
  - 895
  pip._vendor.rich.table.Table._render.align_cell:
  - 840
  - 842
  - 845
  - 846
  - 847
  - 848
  - 849
  pip._vendor.rich.table.Table.add_column:
  - 400
  - 401
  - 380
  - 416
  pip._vendor.rich.table.Table.add_row:
  - 448
  - 449
  - 450
  - 451
  - 452
  - 455
  - 424
  - 456
  - 457
  - 458
  - 463
  - 439
  - 442
  - 445
  - 447
  pip._vendor.rich.table.Table.add_row.add_cell:
  - 437
  pip._vendor.rich.table.Table.add_section:
  - 466
  - 468
  pip._vendor.rich.table.Table.expand:
  - 291
  - 286
  pip._vendor.rich.table.Table.get_row_style:
  - 310
  - 311
  - 312
  - 313
  - 315
  - 316
  pip._vendor.rich.table.Table.grid:
  - 272
  - 260
  pip._vendor.rich.table.Table.padding:
  - 360
  - 354
  - 359
  pip._vendor.rich.table.Table.row_count:
  - 306
  - 307
  pip._vendor.rich.table._Cell:
  - 144
  - 146
  - 148
  - 141
  pip._vendor.rich.table.header:
  - 964
  - 965
  - 966
  pip._vendor.rich.terminal_theme:
  - 32
  - 130
  - 105
  - 81
  - 57
  pip._vendor.rich.terminal_theme.TerminalTheme:
  - 10
  pip._vendor.rich.terminal_theme.TerminalTheme.__init__:
  - 27
  - 28
  - 29
  pip._vendor.rich.text:
  - 1282
  - 1285
  - 1288
  - 1289
  - 1291
  - 1293
  - 1294
  - 1295
  - 1297
  - 1298
  - 1299
  - 1301
  - 1302
  - 1303
  - 1305
  - 1306
  - 1307
  - 31
  - 38
  pip._vendor.rich.text.Span:
  - 49
  - 51
  - 53
  - 46
  pip._vendor.rich.text.Span.move:
  - 75
  - 84
  pip._vendor.rich.text.Span.right_crop:
  - 96
  - 98
  - 87
  pip._vendor.rich.text.Span.split:
  - 64
  - 66
  - 70
  - 71
  - 62
  pip._vendor.rich.text.Text:
  - 102
  pip._vendor.rich.text.Text.__add__:
  - 163
  - 164
  - 165
  pip._vendor.rich.text.Text.__bool__:
  - 154
  pip._vendor.rich.text.Text.__contains__:
  - 177
  - 175
  pip._vendor.rich.text.Text.__eq__:
  - 170
  pip._vendor.rich.text.Text.__getitem__:
  - 195
  - 196
  - 198
  - 199
  - 200
  pip._vendor.rich.text.Text.__getitem__.get_text_at:
  - 184
  - 187
  pip._vendor.rich.text.Text.__init__:
  - 139
  - 148
  pip._vendor.rich.text.Text.__rich_console__:
  - 662
  - 660
  - 654
  - 663
  pip._vendor.rich.text.Text.__rich_measure__:
  - 673
  - 675
  - 669
  - 670
  - 671
  pip._vendor.rich.text.Text._trim_spans:
  - 844
  - 837
  - 838
  pip._vendor.rich.text.Text.align:
  - 901
  - 902
  - 903
  - 904
  - 905
  - 906
  - 908
  - 909
  - 911
  - 894
  pip._vendor.rich.text.Text.append:
  - 916
  - 926
  - 929
  - 930
  - 931
  - 932
  - 933
  - 934
  - 935
  - 936
  - 938
  - 940
  - 945
  - 946
  - 947
  - 949
  - 950
  - 951
  - 954
  pip._vendor.rich.text.Text.append_text:
  - 966
  - 967
  - 968
  - 969
  - 970
  - 973
  - 958
  pip._vendor.rich.text.Text.append_tokens:
  - 992
  - 993
  - 994
  - 995
  - 979
  - 990
  - 991
  pip._vendor.rich.text.Text.apply_meta:
  - 501
  - 492
  - 500
  pip._vendor.rich.text.Text.assemble:
  - 363
  - 373
  - 374
  - 375
  - 377
  - 378
  - 379
  - 349
  pip._vendor.rich.text.Text.blank_copy:
  - 411
  - 412
  pip._vendor.rich.text.Text.cell_len:
  - 209
  - 210
  pip._vendor.rich.text.Text.copy:
  - 424
  - 425
  pip._vendor.rich.text.Text.copy_styles:
  - 1000
  - 1005
  pip._vendor.rich.text.Text.detect_indentation:
  - 1221
  - 1226
  - 1220
  - 1213
  pip._vendor.rich.text.Text.divide:
  - 1052
  - 1060
  - 1062
  - 1063
  - 1066
  - 1068
  - 1074
  - 1075
  - 1083
  - 1087
  - 1090
  - 1098
  - 1100
  - 1106
  - 1114
  - 1116
  - 1122
  - 1124
  - 1125
  - 1126
  - 1127
  pip._vendor.rich.text.Text.expand_tabs:
  - 800
  - 801
  - 804
  - 806
  - 776
  - 782
  - 785
  - 788
  - 792
  - 793
  - 794
  - 795
  - 797
  - 798
  pip._vendor.rich.text.Text.fit:
  - 1197
  - 1205
  - 1207
  - 1208
  - 1209
  pip._vendor.rich.text.Text.from_ansi:
  - 299
  - 308
  - 309
  - 286
  pip._vendor.rich.text.Text.from_markup:
  - 268
  - 254
  pip._vendor.rich.text.Text.get_style_at_offset:
  - 544
  - 546
  - 547
  - 548
  - 549
  - 533
  - 543
  pip._vendor.rich.text.Text.highlight_regex:
  - 577
  - 578
  - 579
  - 580
  - 581
  - 584
  - 585
  - 586
  - 587
  - 559
  - 575
  pip._vendor.rich.text.Text.highlight_words:
  - 611
  - 614
  - 615
  - 597
  - 607
  pip._vendor.rich.text.Text.join:
  - 768
  - 737
  - 771
  - 746
  - 763
  - 764
  - 765
  - 766
  - 767
  pip._vendor.rich.text.Text.join.iter_text:
  - 749
  - 750
  - 751
  - 752
  - 753
  - 755
  pip._vendor.rich.text.Text.markup:
  - 228
  - 230
  - 233
  - 234
  - 235
  - 237
  - 238
  - 239
  - 214
  pip._vendor.rich.text.Text.on:
  - 504
  - 520
  - 519
  pip._vendor.rich.text.Text.pad:
  - 856
  - 857
  - 851
  - 862
  pip._vendor.rich.text.Text.pad_left:
  - 873
  - 874
  - 867
  - 878
  pip._vendor.rich.text.Text.pad_right:
  - 889
  - 890
  - 883
  pip._vendor.rich.text.Text.plain:
  - 384
  - 385
  - 386
  - 391
  - 392
  - 393
  - 396
  - 397
  - 398
  pip._vendor.rich.text.Text.remove_suffix:
  - 529
  - 530
  - 524
  pip._vendor.rich.text.Text.render:
  - 678
  - 689
  - 690
  - 691
  - 692
  - 694
  - 696
  - 697
  - 698
  - 704
  - 706
  - 726
  - 727
  - 728
  - 730
  - 731
  - 732
  - 733
  - 734
  pip._vendor.rich.text.Text.render.get_current_style:
  - 717
  - 718
  - 719
  - 720
  - 722
  pip._vendor.rich.text.Text.right_crop:
  - 1139
  - 1132
  - 1133
  pip._vendor.rich.text.Text.rstrip:
  - 620
  - 621
  pip._vendor.rich.text.Text.rstrip_end:
  - 624
  - 629
  - 630
  - 632
  - 633
  - 634
  - 635
  pip._vendor.rich.text.Text.set_length:
  - 640
  - 641
  - 642
  - 644
  - 638
  - 639
  pip._vendor.rich.text.Text.spans:
  - 402
  - 407
  pip._vendor.rich.text.Text.split:
  - 1027
  - 1028
  - 1030
  - 1031
  - 1032
  - 1042
  - 1043
  - 1047
  - 1014
  - 1046
  pip._vendor.rich.text.Text.split.flatten_spans:
  - 1040
  - 1037
  - 1038
  - 1039
  pip._vendor.rich.text.Text.styled:
  - 321
  - 333
  - 334
  pip._vendor.rich.text.Text.stylize:
  - 450
  - 451
  - 452
  - 454
  - 456
  - 458
  - 461
  - 443
  pip._vendor.rich.text.Text.stylize_before:
  - 480
  - 482
  - 484
  - 487
  - 469
  - 476
  - 477
  - 478
  pip._vendor.rich.text.Text.truncate:
  - 834
  - 816
  - 824
  - 825
  - 826
  - 827
  - 828
  - 830
  - 831
  pip._vendor.rich.text.Text.with_indent_guides:
  - 1272
  - 1251
  - 1253
  - 1254
  - 1257
  - 1261
  - 1262
  - 1263
  - 1266
  - 1267
  - 1269
  - 1270
  - 1271
  - 1240
  - 1274
  - 1275
  - 1276
  - 1278
  pip._vendor.rich.text.Text.wrap:
  - 1184
  - 1185
  - 1186
  - 1187
  - 1188
  - 1157
  - 1191
  - 1192
  - 1193
  - 1174
  - 1176
  - 1177
  - 1178
  - 1179
  - 1180
  - 1181
  - 1183
  pip._vendor.rich.theme:
  - 113
  - 114
  - 115
  pip._vendor.rich.theme.Theme:
  - 9
  pip._vendor.rich.theme.Theme.__init__:
  - 21
  - 22
  - 23
  - 25
  - 26
  pip._vendor.rich.theme.Theme.config:
  - 32
  - 33
  - 34
  pip._vendor.rich.theme.Theme.from_file:
  - 42
  - 52
  - 53
  - 54
  - 55
  pip._vendor.rich.theme.Theme.read:
  - 72
  - 73
  - 62
  pip._vendor.rich.theme.ThemeStack:
  - 81
  pip._vendor.rich.theme.ThemeStack.pop_theme:
  - 106
  - 107
  - 109
  pip._vendor.rich.theme.ThemeStack.push_theme:
  - 100
  - 92
  - 102
  pip._vendor.rich.theme.ThemeStackError:
  - 77
  pip._vendor.rich.themes:
  - 5
  pip._vendor.rich.traceback:
  - 722
  - 42
  - 756
  - 726
  pip._vendor.rich.traceback.Stack:
  - 199
  pip._vendor.rich.traceback.Traceback:
  - 212
  - 565
  - 604
  pip._vendor.rich.traceback.Traceback.__init__:
  - 288
  - 289
  - 258
  - 259
  - 260
  - 290
  - 264
  - 270
  - 280
  - 281
  - 285
  pip._vendor.rich.traceback.Traceback.__rich_console__:
  - 516
  - 517
  - 518
  - 519
  - 520
  - 527
  - 528
  - 529
  - 530
  - 531
  - 532
  - 533
  - 534
  - 543
  - 545
  - 547
  - 548
  - 550
  - 553
  - 555
  - 556
  - 557
  - 561
  - 491
  - 494
  - 496
  - 497
  - 498
  - 499
  - 500
  - 501
  - 502
  - 503
  - 504
  - 505
  - 506
  - 507
  - 508
  - 509
  - 510
  - 511
  pip._vendor.rich.traceback.Traceback._guess_lexer:
  - 590
  - 591
  - 595
  - 597
  - 600
  pip._vendor.rich.traceback.Traceback._render_stack:
  - 640
  - 644
  - 646
  - 647
  - 655
  - 657
  - 658
  - 659
  - 661
  - 667
  - 671
  - 674
  - 675
  - 676
  - 677
  - 678
  - 680
  - 682
  - 683
  - 687
  - 688
  - 703
  - 705
  - 709
  - 710
  - 713
  - 606
  - 631
  - 632
  - 634
  - 638
  pip._vendor.rich.traceback.Traceback._render_stack.read_code:
  - 610
  - 618
  pip._vendor.rich.traceback.Traceback._render_stack.render_locals:
  - 621
  - 622
  pip._vendor.rich.traceback.Traceback._render_syntax_error:
  - 577
  - 578
  - 580
  - 581
  - 582
  - 586
  - 567
  - 568
  - 569
  - 570
  - 571
  - 574
  pip._vendor.rich.traceback.Traceback.extract:
  - 405
  - 406
  - 407
  - 411
  - 412
  - 420
  - 437
  - 439
  - 440
  - 441
  - 442
  - 445
  - 450
  - 455
  - 460
  - 461
  - 464
  - 465
  - 475
  - 484
  - 375
  pip._vendor.rich.traceback.Traceback.extract.get_locals:
  - 426
  - 427
  - 428
  - 430
  - 431
  - 433
  - 435
  pip._vendor.rich.traceback.Traceback.extract.safe_str:
  - 400
  - 398
  pip._vendor.rich.traceback.Traceback.from_exception:
  - 312
  - 346
  - 335
  pip._vendor.rich.traceback.bar:
  - 731
  pip._vendor.rich.traceback.error:
  - 752
  - 754
  - 750
  pip._vendor.rich.traceback.foo:
  - 744
  pip._vendor.rich.traceback.install:
  - 64
  - 89
  - 165
  - 166
  pip._vendor.rich.traceback.install.excepthook:
  - 115
  - 102
  - 103
  pip._vendor.rich.traceback.install.ipy_excepthook_closure:
  - 159
  pip._vendor.rich.traceback.install.ipy_excepthook_closure.<lambda1>:
  - 159
  pip._vendor.rich.traceback.install.ipy_excepthook_closure.ipy_display_traceback:
  - 135
  - 137
  - 143
  - 144
  - 146
  - 147
  - 151
  pip._vendor.rich.traceback.install.ipy_excepthook_closure.ipy_show_traceback:
  - 130
  - 127
  pip._vendor.rich.tree:
  - 197
  - 205
  - 207
  - 208
  - 209
  - 211
  - 212
  - 213
  - 214
  - 222
  - 224
  - 233
  - 235
  - 236
  - 237
  - 238
  - 240
  - 244
  - 245
  - 247
  - 249
  - 251
  pip._vendor.rich.tree.Tree:
  - 13
  pip._vendor.rich.tree.Tree.__rich_console__:
  - 128
  - 129
  - 131
  - 132
  - 133
  - 135
  - 142
  - 143
  - 144
  - 145
  - 150
  - 151
  - 152
  - 153
  - 157
  - 158
  - 161
  - 162
  - 164
  - 165
  - 166
  - 79
  - 82
  - 83
  - 84
  - 103
  - 104
  - 106
  - 107
  - 108
  - 113
  - 115
  - 117
  - 118
  - 120
  - 121
  - 122
  - 124
  - 125
  - 126
  pip._vendor.rich.tree.Tree.__rich_console__.make_guide:
  - 96
  - 101
  - 95
  pip._vendor.rich.tree.Tree.__rich_measure__:
  - 192
  - 194
  - 172
  - 180
  - 182
  - 186
  - 187
  - 189
  - 190
  - 191
  pip._vendor.rich.tree.Tree.add:
  - 50
  - 69
  - 62
  pip._vendor.six:
  - 526
  - 21
  - 40
  - 559
  - 55
  - 57
  - 65
  - 68
  - 71
  - 585
  - 74
  - 589
  - 590
  - 591
  - 592
  - 593
  - 594
  - 597
  - 610
  - 612
  - 614
  - 628
  - 630
  - 632
  - 634
  - 635
  - 636
  - 638
  - 642
  - 650
  - 652
  - 660
  - 683
  - 690
  - 691
  - 710
  - 711
  - 737
  - 745
  - 746
  - 242
  - 757
  - 758
  - 252
  - 253
  - 254
  - 255
  - 256
  - 257
  - 258
  - 259
  - 260
  - 261
  - 262
  - 263
  - 264
  - 265
  - 266
  - 267
  - 268
  - 269
  - 270
  - 271
  - 272
  - 273
  - 274
  - 275
  - 276
  - 277
  - 278
  - 279
  - 280
  - 281
  - 282
  - 283
  - 284
  - 285
  - 286
  - 287
  - 288
  - 289
  - 290
  - 291
  - 292
  - 293
  - 294
  - 295
  - 296
  - 297
  - 298
  - 299
  - 300
  - 301
  - 302
  - 303
  - 304
  - 305
  - 306
  - 812
  - 308
  - 310
  - 311
  - 312
  - 313
  - 822
  - 315
  - 316
  - 317
  - 318
  - 319
  - 320
  - 824
  - 323
  - 325
  - 328
  - 329
  - 330
  - 331
  - 336
  - 337
  - 346
  - 347
  - 348
  - 349
  - 350
  - 351
  - 352
  - 353
  - 354
  - 355
  - 356
  - 357
  - 358
  - 359
  - 360
  - 361
  - 362
  - 363
  - 364
  - 365
  - 366
  - 367
  - 368
  - 369
  - 370
  - 372
  - 373
  - 378
  - 388
  - 389
  - 390
  - 392
  - 393
  - 398
  - 408
  - 409
  - 410
  - 411
  - 412
  - 413
  - 414
  - 415
  - 416
  - 417
  - 418
  - 419
  - 420
  - 421
  - 422
  - 423
  - 424
  - 425
  - 426
  - 427
  - 428
  - 429
  - 430
  - 431
  - 432
  - 433
  - 434
  - 435
  - 436
  - 437
  - 438
  - 439
  - 440
  - 441
  - 442
  - 444
  - 445
  - 450
  - 460
  - 461
  - 462
  - 463
  - 465
  - 466
  - 981
  - 471
  - 986
  - 987
  - 992
  - 481
  - 483
  - 484
  - 998
  - 489
  - 506
  pip._vendor.six.Iterator.next:
  - 582
  pip._vendor.six.Module_six_moves_urllib:
  - 495
  - 497
  - 498
  - 499
  - 500
  - 501
  pip._vendor.six.Module_six_moves_urllib_error:
  - 384
  pip._vendor.six.Module_six_moves_urllib_parse:
  - 342
  pip._vendor.six.Module_six_moves_urllib_request:
  - 404
  pip._vendor.six.Module_six_moves_urllib_response:
  - 456
  pip._vendor.six.Module_six_moves_urllib_robotparser:
  - 477
  pip._vendor.six.MovedAttribute.__init__:
  - 160
  - 147
  - 148
  - 149
  - 152
  - 153
  pip._vendor.six.MovedAttribute._resolve:
  - 165
  - 166
  pip._vendor.six.MovedModule.__getattr__:
  - 123
  - 124
  - 125
  pip._vendor.six.MovedModule.__init__:
  - 112
  - 113
  - 111
  pip._vendor.six.MovedModule._resolve:
  - 120
  pip._vendor.six._LazyDescr.__get__:
  - 97
  - 98
  - 102
  pip._vendor.six._LazyModule.__init__:
  - 132
  pip._vendor.six._MovedItems:
  - 247
  pip._vendor.six._SixMetaPathImporter:
  - 171
  pip._vendor.six._SixMetaPathImporter._add_module:
  - 183
  pip._vendor.six._SixMetaPathImporter.create_module:
  - 237
  pip._vendor.six._SixMetaPathImporter.find_module:
  - 190
  pip._vendor.six._SixMetaPathImporter.find_spec:
  - 195
  - 196
  pip._vendor.six._SixMetaPathImporter.get_code:
  - 232
  - 229
  pip._vendor.six._SixMetaPathImporter.is_package:
  - 226
  - 220
  pip._vendor.six._SixMetaPathImporter.load_module:
  - 211
  - 212
  - 213
  pip._vendor.six._add_doc:
  - 81
  pip._vendor.six._import_module:
  - 86
  - 87
  pip._vendor.six._update_wrapper:
  - 833
  - 835
  - 839
  - 840
  - 841
  pip._vendor.six.add_metaclass:
  - 881
  pip._vendor.six.add_metaclass.wrapper:
  - 883
  - 884
  - 885
  - 886
  - 888
  - 889
  - 890
  - 891
  - 892
  - 894
  pip._vendor.six.add_move:
  - 512
  - 511
  pip._vendor.six.advance_iterator:
  - 548
  pip._vendor.six.assertCountEqual:
  - 695
  pip._vendor.six.assertNotRegex:
  - 707
  pip._vendor.six.assertRaisesRegex:
  - 699
  pip._vendor.six.assertRegex:
  - 703
  pip._vendor.six.b:
  - 644
  pip._vendor.six.byte2int:
  - 679
  pip._vendor.six.callable:
  - 556
  pip._vendor.six.create_bound_method:
  - 574
  pip._vendor.six.create_unbound_method:
  - 577
  pip._vendor.six.ensure_binary:
  - 912
  - 899
  - 909
  - 911
  pip._vendor.six.ensure_str:
  - 928
  - 930
  - 931
  - 932
  - 933
  - 934
  - 917
  pip._vendor.six.ensure_text:
  - 952
  - 940
  - 950
  - 951
  pip._vendor.six.exec_:
  - 726
  - 727
  - 728
  - 730
  - 733
  - 735
  pip._vendor.six.indexbytes:
  - 682
  pip._vendor.six.iteritems:
  - 605
  - 623
  pip._vendor.six.iterkeys:
  - 617
  - 599
  pip._vendor.six.iterlists:
  - 608
  - 626
  pip._vendor.six.itervalues:
  - 602
  - 620
  pip._vendor.six.print_:
  - 778
  - 779
  - 780
  - 782
  - 784
  - 785
  - 786
  - 788
  - 790
  - 792
  - 793
  - 794
  - 797
  - 798
  - 799
  - 803
  - 805
  - 807
  - 808
  - 809
  - 810
  - 811
  - 816
  - 817
  - 818
  - 819
  - 820
  - 760
  - 761
  - 762
  pip._vendor.six.print_.write:
  - 769
  - 770
  - 772
  - 773
  - 775
  - 776
  - 766
  - 767
  pip._vendor.six.python_2_unicode_compatible:
  - 967
  - 972
  - 966
  - 959
  pip._vendor.six.python_2_unicode_compatible.<lambda1>:
  - 972
  pip._vendor.six.remove_move:
  - 516
  - 518
  pip._vendor.six.reraise:
  - 715
  - 716
  - 717
  pip._vendor.six.u:
  - 674
  pip._vendor.six.with_metaclass:
  - 857
  - 877
  pip._vendor.six.with_metaclass.metaclass.__new__:
  - 864
  - 867
  - 868
  - 872
  pip._vendor.six.with_metaclass.metaclass.__prepare__:
  - 876
  pip._vendor.six.wraps:
  - 848
  pip._vendor.tenacity:
  - 97
  - 98
  - 550
  - 105
  - 396
  - 144
  - 89
  pip._vendor.tenacity.AttemptManager:
  - 168
  pip._vendor.tenacity.AttemptManager.__exit__:
  - 187
  - 182
  - 183
  pip._vendor.tenacity.BaseAction:
  - 117
  pip._vendor.tenacity.BaseAction.__repr__:
  - 129
  pip._vendor.tenacity.BaseAction.__str__:
  - 133
  pip._vendor.tenacity.BaseRetrying.__init__:
  - 213
  pip._vendor.tenacity.BaseRetrying.__iter__:
  - 352
  - 353
  - 354
  - 345
  - 347
  - 349
  - 350
  - 351
  pip._vendor.tenacity.BaseRetrying.__repr__:
  - 246
  pip._vendor.tenacity.BaseRetrying.begin:
  - 302
  - 303
  pip._vendor.tenacity.BaseRetrying.copy:
  - 230
  - 231
  - 232
  - 233
  - 234
  - 235
  - 236
  - 237
  - 238
  - 239
  - 240
  - 241
  pip._vendor.tenacity.BaseRetrying.iter:
  - 309
  - 310
  - 311
  - 312
  - 314
  - 315
  - 316
  - 318
  - 319
  - 322
  - 323
  - 324
  - 325
  - 326
  - 330
  - 331
  - 334
  - 339
  - 340
  - 342
  pip._vendor.tenacity.BaseRetrying.statistics:
  - 280
  - 257
  pip._vendor.tenacity.BaseRetrying.wraps:
  - 289
  - 284
  pip._vendor.tenacity.BaseRetrying.wraps.retry_with:
  - 294
  pip._vendor.tenacity.BaseRetrying.wraps.wrapped_f:
  - 291
  pip._vendor.tenacity.Future:
  - 403
  pip._vendor.tenacity.Future.__init__:
  - 406
  pip._vendor.tenacity.Future.construct:
  - 416
  - 417
  - 418
  - 419
  - 421
  pip._vendor.tenacity.Future.failed:
  - 411
  - 412
  pip._vendor.tenacity.RetryAction.__init__:
  - 141
  pip._vendor.tenacity.RetryCallState:
  - 426
  pip._vendor.tenacity.RetryCallState.__init__:
  - 436
  pip._vendor.tenacity.RetryCallState.__repr__:
  - 484
  - 486
  - 487
  - 490
  - 492
  - 494
  pip._vendor.tenacity.RetryCallState.seconds_since_start:
  - 459
  pip._vendor.tenacity.RetryCallState.set_exception:
  - 480
  - 478
  - 479
  pip._vendor.tenacity.RetryCallState.set_result:
  - 472
  - 470
  - 471
  pip._vendor.tenacity.RetryError:
  - 152
  pip._vendor.tenacity.RetryError.__init__:
  - 156
  pip._vendor.tenacity.RetryError.reraise:
  - 159
  pip._vendor.tenacity.Retrying:
  - 369
  pip._vendor.tenacity.Retrying.__call__:
  - 384
  - 386
  - 388
  - 389
  - 390
  - 391
  - 377
  - 379
  - 381
  - 382
  pip._vendor.tenacity.TryAgain:
  - 102
  pip._vendor.tenacity._asyncio:
  - 29
  - 30
  pip._vendor.tenacity._asyncio.AsyncRetrying.__aiter__:
  - 65
  - 66
  pip._vendor.tenacity._asyncio.AsyncRetrying.__anext__:
  - 71
  - 72
  - 74
  - 75
  - 76
  - 77
  - 78
  pip._vendor.tenacity._asyncio.AsyncRetrying.__call__:
  - 43
  - 45
  - 47
  - 48
  - 50
  - 52
  - 54
  - 55
  - 56
  - 57
  pip._vendor.tenacity._asyncio.AsyncRetrying.__init__:
  - 37
  pip._vendor.tenacity._asyncio.AsyncRetrying.wraps:
  - 83
  - 86
  pip._vendor.tenacity._asyncio.AsyncRetrying.wraps.async_wrapped:
  - 88
  pip._vendor.tenacity._utils.find_ordinal:
  - 33
  - 35
  - 37
  - 40
  - 29
  - 31
  pip._vendor.tenacity._utils.get_callback_name:
  - 65
  - 66
  - 69
  - 48
  - 54
  - 57
  - 60
  - 61
  pip._vendor.tenacity._utils.to_ordinal:
  - 44
  pip._vendor.tenacity._utils.to_seconds:
  - 76
  pip._vendor.tenacity.after:
  - 21
  pip._vendor.tenacity.after.after_log:
  - 36
  pip._vendor.tenacity.after.after_log.log_it:
  - 48
  - 43
  - 44
  - 39
  pip._vendor.tenacity.after.after_nothing:
  - 28
  pip._vendor.tenacity.before:
  - 21
  pip._vendor.tenacity.before.before_log:
  - 32
  pip._vendor.tenacity.before.before_log.log_it:
  - 40
  - 43
  - 35
  - 39
  pip._vendor.tenacity.before.before_nothing:
  - 28
  pip._vendor.tenacity.before_sleep:
  - 21
  pip._vendor.tenacity.before_sleep.before_sleep_log:
  - 36
  pip._vendor.tenacity.before_sleep.before_sleep_log.log_it:
  - 65
  - 41
  - 44
  - 47
  - 48
  - 51
  - 52
  - 56
  - 59
  - 63
  pip._vendor.tenacity.before_sleep.before_sleep_nothing:
  - 28
  pip._vendor.tenacity.nap:
  - 21
  pip._vendor.tenacity.nap.sleep:
  - 26
  - 31
  pip._vendor.tenacity.nap.sleep_using_event:
  - 35
  pip._vendor.tenacity.nap.sleep_using_event.__call__:
  - 43
  pip._vendor.tenacity.retry:
  - 515
  - 519
  - 525
  - 526
  - 49
  - 499
  - 21
  - 59
  pip._vendor.tenacity.retry._retry_always:
  - 53
  pip._vendor.tenacity.retry._retry_never:
  - 43
  pip._vendor.tenacity.retry.retry_all:
  - 266
  pip._vendor.tenacity.retry.retry_all.__call__:
  - 272
  pip._vendor.tenacity.retry.retry_any:
  - 256
  pip._vendor.tenacity.retry.retry_any.__call__:
  - 262
  pip._vendor.tenacity.retry.retry_base:
  - 26
  pip._vendor.tenacity.retry.retry_base.__and__:
  - 33
  pip._vendor.tenacity.retry.retry_base.__or__:
  - 36
  pip._vendor.tenacity.retry.retry_if_exception:
  - 63
  pip._vendor.tenacity.retry.retry_if_exception.__call__:
  - 69
  - 72
  - 73
  - 74
  - 76
  pip._vendor.tenacity.retry.retry_if_exception_cause_type:
  - 137
  pip._vendor.tenacity.retry.retry_if_exception_cause_type.__call__:
  - 153
  - 156
  - 157
  - 159
  pip._vendor.tenacity.retry.retry_if_exception_message:
  - 199
  pip._vendor.tenacity.retry.retry_if_exception_message.__init__:
  - 226
  - 206
  - 210
  - 216
  - 217
  pip._vendor.tenacity.retry.retry_if_exception_message.__init__.match_fnc:
  - 220
  pip._vendor.tenacity.retry.retry_if_exception_message.__init__.message_fnc:
  - 213
  pip._vendor.tenacity.retry.retry_if_exception_type:
  - 82
  pip._vendor.tenacity.retry.retry_if_exception_type.__init__:
  - 92
  pip._vendor.tenacity.retry.retry_if_exception_type.__init__.<lambda1>:
  - 92
  pip._vendor.tenacity.retry.retry_if_not_exception_message:
  - 230
  pip._vendor.tenacity.retry.retry_if_not_exception_message.__call__:
  - 243
  - 246
  - 249
  - 250
  - 252
  pip._vendor.tenacity.retry.retry_if_not_exception_message.__init__:
  - 240
  - 237
  pip._vendor.tenacity.retry.retry_if_not_exception_message.__init__.<lambda1>:
  - 240
  pip._vendor.tenacity.retry.retry_if_not_exception_type:
  - 96
  pip._vendor.tenacity.retry.retry_if_not_exception_type.__init__:
  - 106
  pip._vendor.tenacity.retry.retry_if_not_exception_type.__init__.<lambda1>:
  - 106
  pip._vendor.tenacity.retry.retry_if_not_result:
  - 183
  pip._vendor.tenacity.retry.retry_if_not_result.__call__:
  - 192
  - 193
  - 189
  pip._vendor.tenacity.retry.retry_if_result:
  - 167
  pip._vendor.tenacity.retry.retry_if_result.__call__:
  - 176
  - 177
  - 173
  pip._vendor.tenacity.retry.retry_unless_exception_type:
  - 110
  pip._vendor.tenacity.retry.retry_unless_exception_type.__call__:
  - 130
  - 131
  - 133
  - 123
  - 127
  pip._vendor.tenacity.retry.retry_unless_exception_type.__init__:
  - 120
  pip._vendor.tenacity.retry.retry_unless_exception_type.__init__.<lambda1>:
  - 120
  pip._vendor.tenacity.retry.wrap:
  - 530
  - 531
  - 536
  - 537
  - 538
  - 539
  - 541
  - 543
  pip._vendor.tenacity.stop:
  - 21
  - 71
  pip._vendor.tenacity.stop._stop_never:
  - 65
  pip._vendor.tenacity.stop.stop_after_attempt:
  - 85
  pip._vendor.tenacity.stop.stop_after_delay:
  - 95
  pip._vendor.tenacity.stop.stop_after_delay.__call__:
  - 101
  pip._vendor.tenacity.stop.stop_after_delay.__init__:
  - 98
  pip._vendor.tenacity.stop.stop_all:
  - 55
  pip._vendor.tenacity.stop.stop_all.__call__:
  - 61
  pip._vendor.tenacity.stop.stop_any:
  - 45
  pip._vendor.tenacity.stop.stop_any.__call__:
  - 51
  pip._vendor.tenacity.stop.stop_base:
  - 28
  pip._vendor.tenacity.stop.stop_base.__and__:
  - 35
  pip._vendor.tenacity.stop.stop_base.__or__:
  - 38
  pip._vendor.tenacity.stop.stop_when_event_set:
  - 75
  pip._vendor.tenacity.stop.stop_when_event_set.__call__:
  - 81
  pip._vendor.tenacity.tornadoweb:
  - 25
  - 28
  pip._vendor.tenacity.tornadoweb.TornadoRetrying.__call__:
  - 43
  - 45
  - 47
  - 48
  - 50
  - 52
  - 54
  - 55
  - 56
  - 57
  pip._vendor.tenacity.tornadoweb.TornadoRetrying.__init__:
  - 33
  pip._vendor.tenacity.wait:
  - 23
  pip._vendor.tenacity.wait.wait_base:
  - 28
  pip._vendor.tenacity.wait.wait_base.__add__:
  - 35
  pip._vendor.tenacity.wait.wait_base.__radd__:
  - 41
  - 39
  pip._vendor.tenacity.wait.wait_chain:
  - 86
  pip._vendor.tenacity.wait.wait_chain.__call__:
  - 105
  - 107
  pip._vendor.tenacity.wait.wait_combine:
  - 76
  pip._vendor.tenacity.wait.wait_combine.__call__:
  - 82
  pip._vendor.tenacity.wait.wait_exponential:
  - 133
  pip._vendor.tenacity.wait.wait_exponential.__call__:
  - 163
  pip._vendor.tenacity.wait.wait_exponential.__init__:
  - 153
  - 154
  pip._vendor.tenacity.wait.wait_exponential_jitter:
  - 198
  pip._vendor.tenacity.wait.wait_exponential_jitter.__call__:
  - 228
  - 222
  pip._vendor.tenacity.wait.wait_fixed:
  - 48
  pip._vendor.tenacity.wait.wait_fixed.__init__:
  - 51
  pip._vendor.tenacity.wait.wait_incrementing:
  - 111
  pip._vendor.tenacity.wait.wait_incrementing.__call__:
  - 129
  pip._vendor.tenacity.wait.wait_incrementing.__init__:
  - 123
  - 124
  - 125
  pip._vendor.tenacity.wait.wait_none:
  - 58
  pip._vendor.tenacity.wait.wait_none.__init__:
  - 61
  pip._vendor.tenacity.wait.wait_random:
  - 65
  pip._vendor.tenacity.wait.wait_random.__call__:
  - 72
  pip._vendor.tenacity.wait.wait_random.__init__:
  - 68
  - 69
  pip._vendor.tenacity.wait.wait_random_exponential:
  - 167
  pip._vendor.tenacity.wait.wait_random_exponential.__call__:
  - 193
  - 194
  pip._vendor.tomli._parser:
  - 34
  - 35
  - 36
  - 37
  - 38
  - 40
  - 22
  - 26
  - 27
  pip._vendor.tomli._parser.Flags:
  - 136
  pip._vendor.tomli._parser.Flags.__init__:
  - 146
  pip._vendor.tomli._parser.Flags.add_pending:
  - 149
  pip._vendor.tomli._parser.Flags.finalize_pending:
  - 152
  - 153
  - 154
  pip._vendor.tomli._parser.Flags.is_:
  - 176
  - 179
  - 180
  - 183
  - 187
  pip._vendor.tomli._parser.Flags.set:
  - 167
  - 168
  - 169
  - 171
  - 172
  - 173
  pip._vendor.tomli._parser.Flags.unset_all:
  - 162
  - 158
  - 159
  pip._vendor.tomli._parser.NestedDict.append_nest_to_list:
  - 216
  - 218
  - 220
  - 222
  pip._vendor.tomli._parser.NestedDict.get_or_create_nest:
  - 209
  - 211
  - 205
  - 206
  pip._vendor.tomli._parser.TOMLDecodeError:
  - 54
  pip._vendor.tomli._parser.create_dict_rule:
  - 289
  - 291
  - 293
  - 297
  - 286
  - 287
  pip._vendor.tomli._parser.create_list_rule:
  - 304
  - 305
  - 307
  - 310
  - 312
  - 314
  - 318
  pip._vendor.tomli._parser.key_value_rule:
  - 352
  - 326
  - 330
  - 331
  - 333
  - 337
  - 339
  - 345
  - 348
  - 351
  pip._vendor.tomli._parser.load:
  - 66
  - 58
  - 59
  - 61
  pip._vendor.tomli._parser.loads:
  - 98
  - 101
  - 70
  - 102
  - 103
  - 104
  - 74
  - 76
  - 109
  - 78
  - 110
  - 111
  - 113
  - 114
  - 115
  - 84
  - 119
  - 126
  pip._vendor.tomli._parser.make_safe_parse_float:
  - 682
  - 674
  pip._vendor.tomli._parser.make_safe_parse_float.safe_parse_float:
  - 686
  - 687
  pip._vendor.tomli._parser.parse_array:
  - 416
  - 417
  - 420
  - 421
  - 422
  - 425
  - 427
  - 431
  - 432
  pip._vendor.tomli._parser.parse_basic_str:
  - 579
  - 553
  - 566
  - 567
  - 569
  - 573
  - 575
  pip._vendor.tomli._parser.parse_basic_str_escape:
  - 482
  - 485
  - 487
  - 488
  - 489
  - 490
  - 473
  - 476
  - 477
  pip._vendor.tomli._parser.parse_basic_str_escape_multiline:
  - 498
  pip._vendor.tomli._parser.parse_hex_char:
  - 506
  - 507
  - 509
  - 503
  pip._vendor.tomli._parser.parse_inline_table:
  - 450
  - 453
  - 456
  - 458
  - 460
  - 462
  - 463
  - 465
  - 438
  - 439
  - 441
  - 442
  - 445
  - 447
  pip._vendor.tomli._parser.parse_key:
  - 385
  - 386
  - 388
  - 374
  - 376
  - 382
  pip._vendor.tomli._parser.parse_key_part:
  - 396
  - 398
  - 400
  - 401
  - 402
  - 403
  pip._vendor.tomli._parser.parse_key_value_pair:
  - 360
  - 369
  - 368
  - 365
  pip._vendor.tomli._parser.parse_literal_str:
  - 515
  pip._vendor.tomli._parser.parse_multiline_str:
  - 546
  - 523
  - 526
  - 528
  - 539
  - 543
  pip._vendor.tomli._parser.parse_one_line_basic_str:
  - 409
  pip._vendor.tomli._parser.parse_value:
  - 643
  - 644
  - 646
  - 647
  - 595
  - 596
  - 597
  - 598
  - 601
  - 602
  - 603
  - 604
  - 607
  - 608
  - 610
  - 611
  - 615
  - 616
  - 619
  - 620
  - 623
  - 624
  - 626
  - 629
  - 630
  - 631
  - 632
  - 637
  - 638
  - 639
  pip._vendor.tomli._parser.skip_comment:
  - 268
  - 269
  pip._vendor.tomli._parser.skip_comments_and_array_ws:
  - 280
  - 278
  - 279
  pip._vendor.tomli._parser.skip_until:
  - 256
  - 250
  - 252
  - 253
  pip._vendor.tomli._parser.suffixed_err:
  - 666
  - 653
  pip._vendor.tomli._parser.suffixed_err.coord_repr:
  - 657
  - 659
  - 660
  - 663
  pip._vendor.tomli._re:
  - 19
  - 87
  - 38
  - 39
  pip._vendor.tomli._re.cached_tz:
  - 90
  - 91
  - 92
  - 93
  pip._vendor.tomli._re.match_to_datetime:
  - 70
  - 71
  - 72
  - 73
  - 74
  - 75
  - 76
  - 77
  - 80
  - 84
  - 53
  pip._vendor.tomli._re.match_to_localtime:
  - 99
  - 100
  - 101
  pip._vendor.tomli._re.match_to_number:
  - 105
  - 106
  - 107
  pip._vendor.truststore:
  - 1
  - 5
  pip._vendor.truststore._api:
  - 16
  - 18
  - 23
  pip._vendor.truststore._api.SSLContext:
  - 58
  pip._vendor.truststore._api.SSLContext.__init__:
  - 68
  pip._vendor.truststore._api.SSLContext.__init__.TruststoreSSLObject.do_handshake:
  - 76
  - 77
  pip._vendor.truststore._api.SSLContext.get_ca_certs:
  - 183
  - 179
  - 175
  pip._vendor.truststore._api.SSLContext.get_ciphers:
  - 163
  pip._vendor.truststore._api.SSLContext.load_cert_chain:
  - 144
  pip._vendor.truststore._api.SSLContext.load_default_certs:
  - 151
  pip._vendor.truststore._api.SSLContext.load_verify_locations:
  - 134
  pip._vendor.truststore._api.SSLContext.maximum_version:
  - 218
  pip._vendor.truststore._api.SSLContext.minimum_version:
  - 228
  pip._vendor.truststore._api.SSLContext.options:
  - 238
  pip._vendor.truststore._api.SSLContext.session_stats:
  - 166
  pip._vendor.truststore._api.SSLContext.set_alpn_protocols:
  - 154
  pip._vendor.truststore._api.SSLContext.set_ciphers:
  - 160
  pip._vendor.truststore._api.SSLContext.set_npn_protocols:
  - 157
  pip._vendor.truststore._api.SSLContext.verify_flags:
  - 264
  pip._vendor.truststore._api.SSLContext.verify_mode:
  - 274
  pip._vendor.truststore._api.SSLContext.wrap_bio:
  - 118
  - 119
  pip._vendor.truststore._api.SSLContext.wrap_socket:
  - 104
  - 106
  - 94
  - 95
  pip._vendor.truststore._api._verify_peercerts:
  - 288
  - 297
  - 299
  - 300
  - 282
  pip._vendor.truststore._api.extract_from_ssl:
  - 48
  - 47
  pip._vendor.truststore._api.inject_into_ssl:
  - 32
  - 41
  - 35
  pip._vendor.truststore._macos:
  - 21
  - 22
  - 23
  - 163
  - 46
  - 49
  - 191
  - 64
  - 194
  - 69
  - 70
  - 71
  - 72
  - 73
  - 77
  - 78
  - 79
  - 99
  - 111
  - 117
  pip._vendor.truststore._macos.CFConst:
  - 266
  - 268
  pip._vendor.truststore._macos._bytes_to_cf_data_ref:
  - 277
  - 278
  pip._vendor.truststore._macos._bytes_to_cf_string:
  - 288
  - 283
  - 287
  pip._vendor.truststore._macos._cf_string_ref_to_str:
  - 297
  - 303
  - 306
  - 307
  - 308
  - 311
  - 314
  - 315
  pip._vendor.truststore._macos._configure_context:
  - 354
  - 356
  - 359
  pip._vendor.truststore._macos._der_certs_to_cf_cert_array:
  - 320
  - 323
  - 326
  - 328
  - 331
  - 335
  - 336
  - 339
  - 341
  - 342
  - 343
  - 344
  pip._vendor.truststore._macos._handle_osstatus:
  - 225
  - 250
  - 236
  - 237
  - 238
  - 208
  - 211
  - 244
  - 254
  - 249
  - 218
  - 222
  - 223
  pip._vendor.truststore._macos._load_cdll:
  - 35
  - 38
  - 39
  - 41
  - 30
  pip._vendor.truststore._macos._verify_peercerts_impl:
  - 384
  - 386
  - 389
  - 391
  - 392
  - 393
  - 397
  - 398
  - 399
  - 404
  - 408
  - 409
  - 410
  - 416
  - 417
  - 422
  - 425
  - 428
  - 429
  - 431
  - 432
  - 434
  - 436
  - 437
  - 438
  - 442
  - 444
  - 452
  - 453
  - 458
  - 463
  - 471
  - 474
  - 478
  - 484
  - 485
  - 486
  - 489
  - 494
  - 495
  - 498
  - 499
  - 372
  - 500
  - 501
  - 375
  - 376
  - 378
  - 379
  - 381
  pip._vendor.truststore._openssl:
  - 19
  pip._vendor.truststore._openssl._capath_contains_certs:
  - 50
  - 51
  - 53
  - 54
  pip._vendor.truststore._openssl._configure_context:
  - 34
  - 35
  - 36
  - 41
  - 42
  - 43
  - 46
  pip._vendor.truststore._ssl_constants:
  - 8
  - 20
  pip._vendor.truststore._ssl_constants._set_ssl_context_verify_mode:
  - 31
  pip._vendor.truststore._windows:
  - 161
  - 195
  - 196
  - 233
  - 234
  - 203
  - 140
  - 109
  - 141
  - 174
  - 124
  - 49
  - 50
  - 84
  - 87
  - 60
  pip._vendor.truststore._windows.CERT_CHAIN_CONTEXT:
  - 132
  pip._vendor.truststore._windows.CERT_ENHKEY_USAGE:
  - 56
  pip._vendor.truststore._windows.CERT_SIMPLE_CHAIN:
  - 117
  pip._vendor.truststore._windows._configure_context:
  - 554
  - 549
  - 551
  pip._vendor.truststore._windows._get_and_verify_cert_chain:
  - 416
  - 417
  - 430
  - 431
  - 436
  - 437
  - 439
  - 440
  - 441
  - 443
  - 445
  - 447
  - 449
  - 450
  - 451
  - 452
  - 453
  - 462
  - 464
  - 465
  - 471
  - 478
  - 481
  - 483
  - 488
  - 489
  pip._vendor.truststore._windows._handle_win_error:
  - 238
  pip._vendor.truststore._windows._verify_peercerts_impl:
  - 386
  - 387
  - 399
  - 400
  - 401
  - 327
  - 329
  - 332
  - 333
  - 337
  - 344
  - 345
  - 349
  - 351
  - 352
  - 354
  - 356
  - 357
  - 359
  - 361
  - 369
  - 383
  pip._vendor.truststore._windows._verify_using_custom_ca_certs:
  - 517
  - 518
  - 520
  - 521
  - 522
  - 529
  - 502
  - 505
  - 506
  - 539
  - 540
  - 541
  - 510
  pip._vendor.typing_extensions:
  - 2049
  - 2052
  - 517
  - 518
  - 1541
  - 520
  - 521
  - 523
  - 2582
  - 2592
  - 2097
  - 2609
  - 1077
  - 1079
  - 2114
  - 1603
  - 587
  - 601
  - 2651
  - 606
  - 2657
  - 2172
  - 2178
  - 1163
  - 144
  - 2205
  - 1185
  - 2211
  - 2726
  - 168
  - 2728
  - 173
  - 2734
  - 1205
  - 2758
  - 2759
  - 2760
  - 1739
  - 2764
  - 206
  - 207
  - 208
  - 209
  - 210
  - 213
  - 740
  - 2801
  - 1277
  - 1789
  - 253
  - 1793
  - 2307
  - 263
  - 1813
  - 278
  - 2330
  - 1827
  - 1830
  - 2864
  - 2356
  - 321
  - 854
  - 1885
  - 1384
  - 880
  - 379
  - 397
  - 2446
  - 2449
  - 403
  - 404
  - 1448
  - 2986
  - 1451
  - 1975
  - 2487
  - 2490
  - 1467
  - 971
  - 1998
  - 987
  - 989
  - 480
  - 2019
  - 484
  - 511
  pip._vendor.typing_extensions.Annotated:
  - 1324
  pip._vendor.typing_extensions.Annotated.__class_getitem__:
  - 1363
  - 1368
  - 1372
  - 1373
  - 1374
  pip._vendor.typing_extensions.Any:
  - 229
  pip._vendor.typing_extensions.Any.__new__:
  - 240
  - 238
  pip._vendor.typing_extensions.Buffer:
  - 2738
  pip._vendor.typing_extensions.Concatenate:
  - 1796
  - 1806
  pip._vendor.typing_extensions.IntVar:
  - 317
  pip._vendor.typing_extensions.LiteralString:
  - 1980
  pip._vendor.typing_extensions.NamedTuple:
  - 2659
  - 2694
  - 2695
  - 2709
  - 2678
  - 2679
  - 2712
  - 2713
  - 2714
  - 2718
  - 2719
  pip._vendor.typing_extensions.Never:
  - 2024
  pip._vendor.typing_extensions.NewType:
  - 2853
  - 2805
  pip._vendor.typing_extensions.NewType.__init__:
  - 2824
  - 2827
  - 2828
  - 2823
  pip._vendor.typing_extensions.NotRequired:
  - 2088
  - 2075
  - 2087
  pip._vendor.typing_extensions.ParamSpec:
  - 1638
  - 1607
  pip._vendor.typing_extensions.ParamSpec.__hash__:
  - 1725
  pip._vendor.typing_extensions.ParamSpec.__init__:
  - 1697
  - 1699
  - 1700
  - 1701
  - 1702
  - 1703
  - 1706
  - 1709
  - 1710
  pip._vendor.typing_extensions.ParamSpec.__new__:
  - 1614
  - 1616
  - 1621
  - 1626
  - 1627
  pip._vendor.typing_extensions.ParamSpec.__repr__:
  - 1714
  - 1716
  - 1718
  pip._vendor.typing_extensions.ParamSpec.args:
  - 1689
  pip._vendor.typing_extensions.ParamSpec.kwargs:
  - 1693
  pip._vendor.typing_extensions.ParamSpecArgs:
  - 1557
  pip._vendor.typing_extensions.ParamSpecArgs.__eq__:
  - 1575
  pip._vendor.typing_extensions.ParamSpecKwargs:
  - 1580
  pip._vendor.typing_extensions.ParamSpecKwargs.__eq__:
  - 1598
  pip._vendor.typing_extensions.Protocol:
  - 767
  pip._vendor.typing_extensions.Protocol.__class_getitem__:
  - 808
  - 810
  - 814
  - 815
  - 817
  - 819
  - 824
  - 829
  - 830
  pip._vendor.typing_extensions.Protocol.__init_subclass__:
  - 833
  - 837
  - 839
  - 842
  - 843
  - 748
  - 846
  - 751
  - 752
  - 850
  - 755
  - 759
  pip._vendor.typing_extensions.Protocol.__new__:
  - 801
  - 804
  pip._vendor.typing_extensions.Required:
  - 2071
  - 2070
  - 2055
  pip._vendor.typing_extensions.Self:
  - 2003
  pip._vendor.typing_extensions.SupportsAbs:
  - 935
  pip._vendor.typing_extensions.SupportsBytes:
  - 918
  pip._vendor.typing_extensions.SupportsComplex:
  - 909
  pip._vendor.typing_extensions.SupportsFloat:
  - 900
  pip._vendor.typing_extensions.SupportsInt:
  - 891
  pip._vendor.typing_extensions.SupportsRound:
  - 946
  pip._vendor.typing_extensions.TypeAlias:
  - 1454
  pip._vendor.typing_extensions.TypeAliasType:
  - 2972
  - 2877
  pip._vendor.typing_extensions.TypeAliasType.__delattr__:
  - 2929
  pip._vendor.typing_extensions.TypeAliasType.__getitem__:
  - 2952
  - 2949
  - 2957
  pip._vendor.typing_extensions.TypeAliasType.__init__:
  - 2912
  - 2913
  - 2915
  - 2916
  - 2917
  - 2918
  - 2905
  - 2911
  pip._vendor.typing_extensions.TypeAliasType.__or__:
  - 2976
  pip._vendor.typing_extensions.TypeAliasType.__ror__:
  - 2981
  pip._vendor.typing_extensions.TypeAliasType.__setattr__:
  - 2924
  - 2925
  - 2926
  pip._vendor.typing_extensions.TypeAliasType._raise_attribute_error:
  - 2933
  - 2935
  pip._vendor.typing_extensions.TypeGuard:
  - 1833
  - 1875
  - 1876
  pip._vendor.typing_extensions.TypeVar:
  - 1514
  pip._vendor.typing_extensions.TypeVar.__new__:
  - 1521
  - 1523
  - 1527
  - 1529
  - 1532
  - 1533
  pip._vendor.typing_extensions.TypeVarTuple:
  - 2230
  - 2215
  pip._vendor.typing_extensions.TypeVarTuple.__hash__:
  - 2294
  pip._vendor.typing_extensions.TypeVarTuple.__init__:
  - 2281
  - 2284
  - 2285
  pip._vendor.typing_extensions.TypeVarTuple.__init_subclass__:
  - 2303
  pip._vendor.typing_extensions.TypeVarTuple.__iter__:
  - 2277
  pip._vendor.typing_extensions.TypeVarTuple.__new__:
  - 2220
  - 2221
  - 2222
  pip._vendor.typing_extensions.TypedDict:
  - 1145
  - 1153
  - 1154
  - 1155
  - 1127
  - 1128
  - 1159
  - 1139
  - 1141
  - 1144
  - 1081
  pip._vendor.typing_extensions.Unpack:
  - 2189
  - 2190
  pip._vendor.typing_extensions._AnnotatedAlias:
  - 1285
  pip._vendor.typing_extensions._AnnotatedAlias.__eq__:
  - 1314
  - 1316
  pip._vendor.typing_extensions._AnnotatedAlias.__hash__:
  - 1321
  pip._vendor.typing_extensions._AnnotatedAlias.__init__:
  - 1296
  - 1293
  pip._vendor.typing_extensions._AnnotatedAlias.__repr__:
  - 1305
  - 1306
  pip._vendor.typing_extensions._AnnotatedAlias.copy_with:
  - 1300
  - 1302
  pip._vendor.typing_extensions._AnyMeta.__instancecheck__:
  - 219
  - 221
  pip._vendor.typing_extensions._AnyMeta.__repr__:
  - 224
  - 226
  pip._vendor.typing_extensions._ConcatenateForm.__getitem__:
  - 1811
  pip._vendor.typing_extensions._ConcatenateGenericAlias.__hash__:
  - 1760
  pip._vendor.typing_extensions._ConcatenateGenericAlias.__init__:
  - 1750
  pip._vendor.typing_extensions._ConcatenateGenericAlias.__parameters__:
  - 1768
  - 1769
  pip._vendor.typing_extensions._ConcatenateGenericAlias.__repr__:
  - 1756
  - 1757
  pip._vendor.typing_extensions._DefaultMixin:
  - 1500
  pip._vendor.typing_extensions._FinalForm.__getitem__:
  - 259
  - 261
  pip._vendor.typing_extensions._Immutable:
  - 1547
  pip._vendor.typing_extensions._LiteralForm.__getitem__:
  - 355
  - 358
  - 360
  - 362
  - 368
  - 370
  - 371
  - 372
  - 373
  - 375
  - 377
  pip._vendor.typing_extensions._LiteralGenericAlias.__eq__:
  - 340
  - 342
  - 343
  pip._vendor.typing_extensions._LiteralGenericAlias.__hash__:
  - 347
  pip._vendor.typing_extensions._NamedTupleMeta.__new__:
  - 2614
  - 2615
  - 2618
  - 2619
  - 2621
  - 2622
  - 2623
  - 2624
  - 2629
  - 2630
  - 2635
  - 2636
  - 2637
  - 2640
  - 2642
  - 2643
  - 2645
  - 2646
  - 2647
  - 2648
  pip._vendor.typing_extensions._ProtocolMeta.__eq__:
  - 706
  - 703
  pip._vendor.typing_extensions._ProtocolMeta.__hash__:
  - 713
  pip._vendor.typing_extensions._ProtocolMeta.__init__:
  - 640
  - 641
  - 635
  - 636
  - 637
  pip._vendor.typing_extensions._ProtocolMeta.__instancecheck__:
  - 672
  - 673
  - 675
  - 677
  - 678
  - 679
  - 684
  - 687
  - 689
  - 692
  - 671
  pip._vendor.typing_extensions._ProtocolMeta.__new__:
  - 619
  - 621
  - 622
  - 623
  - 625
  - 626
  - 632
  pip._vendor.typing_extensions._ProtocolMeta.__subclasscheck__:
  - 645
  - 646
  - 647
  - 648
  - 649
  - 651
  - 654
  - 656
  - 661
  - 666
  pip._vendor.typing_extensions._RequiredForm.__getitem__:
  - 2093
  - 2095
  pip._vendor.typing_extensions._SpecialForm.__getattr__:
  - 1941
  pip._vendor.typing_extensions._SpecialForm.__getitem__:
  - 1972
  pip._vendor.typing_extensions._TypeGuardForm.__getitem__:
  - 1881
  - 1883
  pip._vendor.typing_extensions._TypeVarLikeMeta.__instancecheck__:
  - 1509
  pip._vendor.typing_extensions._TypedDictMeta.__new__:
  - 1024
  - 1026
  - 1028
  - 1029
  - 1033
  - 1034
  - 1036
  - 1037
  - 1039
  - 1040
  - 1041
  - 1042
  - 1044
  - 1045
  - 1046
  - 1047
  - 1048
  - 1049
  - 1051
  - 1053
  - 1054
  - 1055
  - 1056
  - 1057
  - 1058
  - 1060
  - 1063
  - 1064
  - 1065
  - 996
  - 1003
  - 1004
  - 1008
  - 1015
  - 1017
  - 1020
  pip._vendor.typing_extensions._UnpackForm.__getitem__:
  - 2201
  - 2203
  pip._vendor.typing_extensions._UnpackSpecialForm.__init__:
  - 2181
  pip._vendor.typing_extensions._allow_reckless_class_checks:
  - 595
  - 591
  pip._vendor.typing_extensions._caller:
  - 580
  pip._vendor.typing_extensions._check_generic:
  - 160
  - 161
  - 162
  - 148
  - 151
  - 153
  - 154
  - 156
  - 157
  - 158
  - 159
  pip._vendor.typing_extensions._collect_type_vars:
  - 192
  - 194
  - 196
  - 197
  - 198
  - 199
  - 182
  - 187
  - 190
  - 191
  pip._vendor.typing_extensions._concatenate_getitem:
  - 1776
  - 1778
  - 1780
  - 1784
  - 1785
  pip._vendor.typing_extensions._ensure_subclassable.inner:
  - 960
  - 961
  - 963
  - 964
  - 958
  pip._vendor.typing_extensions._flatten_literal_params:
  - 325
  - 327
  - 328
  - 329
  - 331
  - 332
  pip._vendor.typing_extensions._get_protocol_attrs:
  - 527
  - 528
  - 529
  - 531
  - 532
  - 533
  - 534
  pip._vendor.typing_extensions._is_unionable:
  - 2868
  - 2869
  pip._vendor.typing_extensions._is_unpack:
  - 2176
  - 2193
  - 2208
  pip._vendor.typing_extensions._make_nmtuple:
  - 2604
  - 2597
  - 2599
  pip._vendor.typing_extensions._maybe_adjust_parameters:
  - 546
  - 547
  - 554
  - 555
  - 559
  - 564
  - 567
  - 568
  - 569
  - 570
  - 539
  - 571
  - 575
  pip._vendor.typing_extensions._no_init:
  - 598
  pip._vendor.typing_extensions._proto_hook:
  - 717
  - 720
  - 721
  - 723
  - 724
  - 729
  - 730
  - 731
  - 733
  pip._vendor.typing_extensions._set_default:
  - 1483
  - 1484
  - 1486
  - 1487
  pip._vendor.typing_extensions._set_module:
  - 1494
  - 1495
  pip._vendor.typing_extensions._should_collect_from_parameters:
  - 178
  - 170
  - 175
  pip._vendor.typing_extensions._strip_extras:
  - 1216
  - 1217
  - 1219
  - 1220
  - 1221
  - 1222
  - 1224
  - 1225
  - 1226
  - 1227
  - 1229
  - 1210
  - 1211
  - 1212
  - 1213
  - 1214
  - 1215
  pip._vendor.typing_extensions._value_and_type_iter:
  - 336
  - 335
  pip._vendor.typing_extensions.assert_never:
  - 2334
  pip._vendor.typing_extensions.assert_type:
  - 1190
  pip._vendor.typing_extensions.clear_overloads:
  - 459
  - 460
  pip._vendor.typing_extensions.dataclass_transform:
  - 2372
  pip._vendor.typing_extensions.deprecated:
  - 2498
  pip._vendor.typing_extensions.deprecated.decorator:
  - 2537
  - 2540
  - 2544
  - 2555
  - 2558
  - 2559
  pip._vendor.typing_extensions.deprecated.decorator.__new__:
  - 2546
  - 2547
  - 2548
  - 2550
  - 2553
  pip._vendor.typing_extensions.deprecated.decorator.wrapper:
  - 2561
  - 2562
  pip._vendor.typing_extensions.final:
  - 285
  pip._vendor.typing_extensions.get_args:
  - 1441
  - 1442
  - 1425
  - 1435
  - 1437
  - 1438
  pip._vendor.typing_extensions.get_origin:
  - 1401
  - 1417
  - 1420
  - 1415
  pip._vendor.typing_extensions.get_original_bases:
  - 2768
  pip._vendor.typing_extensions.get_overloads:
  - 448
  - 450
  - 451
  - 454
  - 456
  pip._vendor.typing_extensions.get_protocol_members:
  - 3012
  - 3025
  - 3027
  - 3028
  - 3029
  pip._vendor.typing_extensions.get_type_hints:
  - 1265
  - 1234
  - 1266
  - 1270
  - 1271
  - 1273
  pip._vendor.typing_extensions.is_protocol:
  - 3008
  - 3005
  - 3006
  - 2991
  pip._vendor.typing_extensions.is_typeddict:
  - 1169
  - 1180
  - 1182
  pip._vendor.typing_extensions.overload:
  - 408
  - 437
  pip._vendor.typing_extensions.override:
  - 2452
  pip._vendor.typing_extensions.reveal_type:
  - 2326
  - 2311
  pip._vendor.typing_extensions.runtime_checkable:
  - 865
  - 858
  - 867
  - 866
  pip._vendor.urllib3:
  - 1
  - 89
  - 91
  - 60
  - 93
  - 95
  - 31
  pip._vendor.urllib3._collections:
  - 28
  pip._vendor.urllib3._collections.HTTPHeaderDict:
  - 178
  - 108
  - 182
  pip._vendor.urllib3._collections.HTTPHeaderDict.__contains__:
  - 164
  pip._vendor.urllib3._collections.HTTPHeaderDict.__delitem__:
  - 161
  pip._vendor.urllib3._collections.HTTPHeaderDict.__eq__:
  - 167
  - 169
  - 170
  - 171
  - 172
  pip._vendor.urllib3._collections.HTTPHeaderDict.__getitem__:
  - 157
  - 158
  pip._vendor.urllib3._collections.HTTPHeaderDict.__init__:
  - 142
  - 143
  - 144
  - 145
  - 146
  - 148
  - 149
  - 150
  pip._vendor.urllib3._collections.HTTPHeaderDict.__iter__:
  - 189
  - 190
  pip._vendor.urllib3._collections.HTTPHeaderDict.__len__:
  - 185
  pip._vendor.urllib3._collections.HTTPHeaderDict.__ne__:
  - 176
  pip._vendor.urllib3._collections.HTTPHeaderDict.__repr__:
  - 280
  pip._vendor.urllib3._collections.HTTPHeaderDict.__setitem__:
  - 153
  - 154
  pip._vendor.urllib3._collections.HTTPHeaderDict._copy_from:
  - 288
  - 283
  - 284
  - 285
  - 287
  pip._vendor.urllib3._collections.HTTPHeaderDict.add:
  - 224
  - 227
  - 228
  - 229
  - 216
  pip._vendor.urllib3._collections.HTTPHeaderDict.copy:
  - 291
  - 292
  pip._vendor.urllib3._collections.HTTPHeaderDict.extend:
  - 256
  - 257
  - 232
  - 236
  - 241
  - 243
  - 244
  - 245
  - 246
  - 247
  - 248
  - 249
  - 250
  - 251
  - 253
  - 254
  pip._vendor.urllib3._collections.HTTPHeaderDict.from_httplib:
  - 320
  - 321
  - 322
  - 331
  - 334
  - 335
  - 337
  - 313
  pip._vendor.urllib3._collections.HTTPHeaderDict.getlist:
  - 265
  - 260
  - 263
  pip._vendor.urllib3._collections.HTTPHeaderDict.items:
  - 309
  pip._vendor.urllib3._collections.HTTPHeaderDict.iteritems:
  - 296
  - 297
  - 298
  - 299
  - 300
  pip._vendor.urllib3._collections.HTTPHeaderDict.itermerged:
  - 304
  - 305
  - 306
  - 303
  pip._vendor.urllib3._collections.HTTPHeaderDict.pop:
  - 193
  - 202
  pip._vendor.urllib3._collections.RecentlyUsedContainer:
  - 32
  pip._vendor.urllib3._collections.RecentlyUsedContainer.__delitem__:
  - 80
  - 81
  - 78
  pip._vendor.urllib3._collections.RecentlyUsedContainer.__getitem__:
  - 57
  pip._vendor.urllib3._collections.RecentlyUsedContainer.__init__:
  - 51
  - 52
  pip._vendor.urllib3._collections.RecentlyUsedContainer.__len__:
  - 85
  pip._vendor.urllib3._collections.RecentlyUsedContainer.__setitem__:
  - 65
  - 70
  - 71
  - 73
  - 74
  pip._vendor.urllib3._collections.RecentlyUsedContainer.clear:
  - 96
  - 98
  - 99
  - 100
  - 95
  pip._vendor.urllib3._collections.RecentlyUsedContainer.keys:
  - 104
  pip._vendor.urllib3.add_stderr_logger:
  - 64
  - 72
  - 73
  - 74
  - 75
  - 76
  - 77
  pip._vendor.urllib3.connection:
  - 73
  - 65
  - 568
  - 71
  pip._vendor.urllib3.connection.DummyConnection:
  - 563
  pip._vendor.urllib3.connection.HTTPConnection:
  - 77
  pip._vendor.urllib3.connection.HTTPConnection.__init__:
  - 128
  - 130
  - 116
  - 117
  - 120
  - 124
  - 127
  pip._vendor.urllib3.connection.HTTPConnection._is_using_tunnel:
  - 194
  pip._vendor.urllib3.connection.HTTPConnection._new_conn:
  - 170
  - 162
  - 174
  - 167
  pip._vendor.urllib3.connection.HTTPConnection._prepare_conn:
  - 200
  - 198
  pip._vendor.urllib3.connection.HTTPConnection.connect:
  - 205
  - 206
  pip._vendor.urllib3.connection.HTTPConnection.host:
  - 153
  - 149
  - 134
  pip._vendor.urllib3.connection.HTTPConnection.putheader:
  - 224
  - 225
  - 222
  - 223
  pip._vendor.urllib3.connection.HTTPConnection.putrequest:
  - 209
  - 219
  - 212
  - 213
  pip._vendor.urllib3.connection.HTTPConnection.request:
  - 234
  - 235
  - 237
  - 241
  - 242
  - 243
  - 244
  pip._vendor.urllib3.connection.HTTPConnection.request_chunked:
  - 258
  - 259
  - 260
  - 261
  - 262
  - 263
  - 264
  - 266
  - 268
  - 270
  - 271
  - 273
  - 274
  - 275
  - 276
  - 280
  - 283
  - 247
  - 252
  - 255
  pip._vendor.urllib3.connection.HTTPSConnection:
  - 287
  pip._vendor.urllib3.connection.HTTPSConnection.__init__:
  - 316
  pip._vendor.urllib3.connection.HTTPSConnection._connect_tls_proxy:
  - 480
  - 513
  - 485
  - 519
  - 488
  - 520
  - 521
  - 523
  - 494
  - 530
  - 504
  pip._vendor.urllib3.connection.HTTPSConnection.connect:
  - 385
  - 386
  - 387
  - 388
  - 398
  - 400
  - 401
  - 402
  - 406
  - 410
  - 415
  - 417
  - 419
  - 435
  - 438
  - 439
  - 441
  - 445
  - 449
  - 450
  - 451
  - 453
  - 455
  - 461
  - 462
  - 463
  - 465
  - 472
  - 363
  - 367
  - 368
  - 369
  - 374
  - 382
  pip._vendor.urllib3.connection.HTTPSConnection.set_cert:
  - 357
  - 358
  - 340
  - 345
  - 346
  - 349
  pip._vendor.urllib3.connection._match_hostname:
  - 545
  - 547
  - 540
  - 541
  pip._vendor.urllib3.connectionpool:
  - 64
  - 62
  pip._vendor.urllib3.connectionpool.ConnectionPool:
  - 69
  pip._vendor.urllib3.connectionpool.ConnectionPool.__exit__:
  - 97
  pip._vendor.urllib3.connectionpool.ConnectionPool.__init__:
  - 83
  - 86
  - 87
  pip._vendor.urllib3.connectionpool.ConnectionPool.__str__:
  - 91
  pip._vendor.urllib3.connectionpool.ConnectionPool.close:
  - 102
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool:
  - 113
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool.__init__:
  - 192
  - 225
  - 196
  - 197
  - 199
  - 205
  - 238
  - 213
  - 214
  - 221
  - 191
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool._absolute_url:
  - 498
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_conn:
  - 289
  - 290
  - 291
  - 292
  - 262
  - 298
  - 275
  - 281
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool._get_timeout:
  - 342
  - 343
  - 344
  - 346
  - 347
  - 351
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool._make_request:
  - 397
  - 398
  - 399
  - 403
  - 406
  - 412
  - 413
  - 415
  - 427
  - 438
  - 444
  - 448
  - 449
  - 451
  - 457
  - 461
  - 466
  - 468
  - 472
  - 473
  - 486
  - 488
  - 490
  - 381
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool._new_conn:
  - 241
  - 252
  - 245
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool._put_conn:
  - 322
  - 325
  - 328
  - 329
  - 301
  - 315
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool._raise_timeout:
  - 371
  - 354
  - 363
  - 356
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool._validate_conn:
  - 332
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool.close:
  - 504
  - 501
  - 510
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool.is_same_host:
  - 513
  - 517
  - 521
  - 522
  - 523
  - 526
  - 527
  - 528
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool.urlopen:
  - 642
  - 645
  - 648
  - 649
  - 777
  - 651
  - 652
  - 778
  - 780
  - 655
  - 784
  - 659
  - 660
  - 789
  - 662
  - 791
  - 792
  - 793
  - 794
  - 795
  - 796
  - 798
  - 799
  - 801
  - 549
  - 677
  - 807
  - 684
  - 685
  - 686
  - 812
  - 815
  - 819
  - 821
  - 823
  - 698
  - 826
  - 702
  - 703
  - 707
  - 710
  - 711
  - 714
  - 843
  - 844
  - 845
  - 849
  - 851
  - 852
  - 856
  - 857
  - 858
  - 859
  - 734
  - 876
  - 877
  - 879
  - 881
  - 882
  - 886
  - 887
  - 888
  - 889
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool.urlopen._is_ssl_error_message_from_http_proxy:
  - 768
  pip._vendor.urllib3.connectionpool.HTTPSConnectionPool:
  - 909
  pip._vendor.urllib3.connectionpool.HTTPSConnectionPool.__init__:
  - 949
  pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._new_conn:
  - 1028
  - 1032
  - 1010
  - 1043
  - 1014
  - 1021
  pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_conn:
  - 980
  - 981
  - 975
  pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._prepare_proxy:
  - 1002
  - 995
  - 1004
  - 1007
  pip._vendor.urllib3.connectionpool.HTTPSConnectionPool._validate_conn:
  - 1056
  - 1066
  - 1067
  - 1046
  - 1049
  - 1052
  - 1053
  - 1055
  pip._vendor.urllib3.connectionpool._close_pool_connections:
  - 1128
  - 1129
  - 1130
  - 1125
  pip._vendor.urllib3.connectionpool._normalize_host:
  - 1107
  - 1119
  - 1111
  pip._vendor.urllib3.connectionpool.connection_from_url:
  - 1098
  - 1099
  - 1100
  - 1101
  - 1103
  - 1079
  pip._vendor.urllib3.contrib._appengine_environ:
  - 1
  pip._vendor.urllib3.contrib._appengine_environ.is_appengine:
  - 9
  pip._vendor.urllib3.contrib._appengine_environ.is_appengine_sandbox:
  - 19
  - 13
  pip._vendor.urllib3.contrib._appengine_environ.is_local_appengine:
  - 23
  pip._vendor.urllib3.contrib._appengine_environ.is_prod_appengine:
  - 29
  pip._vendor.urllib3.contrib._appengine_environ.is_prod_appengine_mvms:
  - 35
  pip._vendor.urllib3.contrib._securetransport.bindings:
  - 1
  - 260
  - 264
  - 139
  - 140
  - 142
  - 144
  - 273
  - 401
  - 404
  - 407
  - 410
  - 169
  - 179
  - 53
  - 56
  - 57
  - 58
  - 189
  - 320
  - 193
  - 194
  - 195
  - 323
  - 81
  - 84
  - 219
  - 222
  - 228
  - 102
  - 233
  - 234
  - 107
  - 108
  - 109
  - 110
  - 111
  - 240
  - 250
  - 366
  - 367
  - 116
  - 245
  - 379
  - 119
  - 122
  - 251
  - 125
  - 126
  - 255
  pip._vendor.urllib3.contrib._securetransport.bindings.CFConst:
  - 424
  - 429
  pip._vendor.urllib3.contrib._securetransport.bindings.SecurityConst:
  - 433
  pip._vendor.urllib3.contrib._securetransport.bindings.load_cdll:
  - 66
  - 70
  - 73
  - 74
  - 76
  - 78
  pip._vendor.urllib3.contrib._securetransport.low_level:
  - 1
  - 22
  pip._vendor.urllib3.contrib._securetransport.low_level._assert_no_error:
  - 130
  - 134
  - 137
  - 138
  - 139
  - 141
  - 144
  pip._vendor.urllib3.contrib._securetransport.low_level._build_tls_unknown_ca_alert:
  - 393
  - 394
  - 387
  - 396
  pip._vendor.urllib3.contrib._securetransport.low_level._cert_array_from_pem:
  - 161
  - 164
  - 167
  - 169
  - 173
  - 174
  - 175
  - 177
  - 180
  - 181
  - 151
  - 184
  - 185
  - 156
  - 190
  - 159
  pip._vendor.urllib3.contrib._securetransport.low_level._cf_data_from_bytes:
  - 32
  - 33
  - 28
  pip._vendor.urllib3.contrib._securetransport.low_level._cf_dictionary_from_tuples:
  - 38
  - 41
  - 46
  - 47
  - 49
  pip._vendor.urllib3.contrib._securetransport.low_level._cf_string_to_unicode:
  - 105
  - 111
  - 113
  - 116
  - 117
  - 118
  - 121
  - 124
  - 125
  pip._vendor.urllib3.contrib._securetransport.low_level._cfstr:
  - 64
  - 65
  - 60
  pip._vendor.urllib3.contrib._securetransport.low_level._create_cfstring_array:
  - 96
  - 98
  - 99
  - 74
  - 82
  - 85
  - 87
  - 89
  - 90
  - 91
  - 94
  pip._vendor.urllib3.contrib._securetransport.low_level._is_cert:
  - 200
  - 201
  - 197
  pip._vendor.urllib3.contrib._securetransport.low_level._is_identity:
  - 208
  - 209
  - 205
  pip._vendor.urllib3.contrib._securetransport.low_level._load_client_cert_chain:
  - 353
  - 354
  - 358
  - 361
  - 364
  - 366
  - 303
  - 369
  - 341
  - 342
  - 343
  - 344
  - 373
  - 374
  - 348
  - 349
  - 350
  - 351
  pip._vendor.urllib3.contrib._securetransport.low_level._load_items_from_file:
  - 258
  - 259
  - 262
  - 263
  - 265
  - 266
  - 274
  - 276
  - 282
  - 283
  - 284
  - 285
  - 287
  - 288
  - 289
  - 290
  - 291
  - 292
  - 294
  - 295
  - 297
  - 248
  pip._vendor.urllib3.contrib._securetransport.low_level._temporary_keychain:
  - 229
  - 230
  - 231
  - 232
  - 234
  - 237
  - 238
  - 239
  - 241
  - 213
  pip._vendor.urllib3.contrib.appengine:
  - 1
  - 68
  pip._vendor.urllib3.contrib.appengine.AppEngineManager:
  - 80
  pip._vendor.urllib3.contrib.appengine.AppEngineManager.__init__:
  - 106
  - 118
  - 111
  pip._vendor.urllib3.contrib.appengine.AppEngineManager._get_absolute_timeout:
  - 282
  - 284
  - 285
  - 286
  pip._vendor.urllib3.contrib.appengine.AppEngineManager._get_retries:
  - 296
  - 298
  - 299
  - 295
  pip._vendor.urllib3.contrib.appengine.AppEngineManager._urlfetch_response_to_http_response:
  - 258
  - 259
  - 260
  - 261
  - 263
  - 266
  - 273
  - 274
  - 247
  - 250
  - 252
  - 255
  pip._vendor.urllib3.contrib.appengine.AppEngineManager.urlopen:
  - 143
  - 147
  - 154
  - 161
  - 170
  - 189
  - 194
  - 195
  - 197
  - 200
  - 204
  - 208
  - 212
  - 213
  - 214
  - 215
  - 227
  - 228
  - 229
  - 230
  - 231
  - 232
  pip._vendor.urllib3.contrib.ntlmpool:
  - 16
  - 1
  - 24
  pip._vendor.urllib3.contrib.ntlmpool.NTLMConnectionPool:
  - 28
  pip._vendor.urllib3.contrib.ntlmpool.NTLMConnectionPool.__init__:
  - 40
  - 43
  - 35
  - 44
  pip._vendor.urllib3.contrib.ntlmpool.NTLMConnectionPool._new_conn:
  - 52
  - 63
  - 66
  - 69
  - 70
  - 71
  - 72
  - 73
  - 74
  - 75
  - 82
  - 84
  - 85
  - 87
  - 93
  - 96
  - 100
  - 101
  - 102
  - 103
  - 104
  - 105
  - 106
  - 107
  - 112
  pip._vendor.urllib3.contrib.ntlmpool.NTLMConnectionPool.urlopen:
  - 128
  - 125
  pip._vendor.urllib3.contrib.pyopenssl:
  - 1
  - 102
  - 105
  - 108
  - 82
  - 118
  - 411
  - 127
  pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext:
  - 424
  pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.__init__:
  - 432
  pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.load_cert_chain:
  - 474
  - 475
  - 476
  - 477
  - 478
  - 479
  pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.load_verify_locations:
  - 462
  - 463
  - 464
  - 465
  - 467
  - 468
  - 469
  pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.options:
  - 443
  pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.set_alpn_protocols:
  - 482
  - 483
  pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.set_ciphers:
  - 457
  - 458
  - 459
  pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.set_default_verify_paths:
  - 454
  pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.verify_mode:
  - 451
  - 447
  pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext.wrap_socket:
  - 514
  - 493
  - 495
  - 496
  - 498
  - 499
  - 501
  - 505
  - 507
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket:
  - 277
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket._decref_socketios:
  - 297
  - 298
  - 295
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket._drop:
  - 405
  - 406
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket._send_until_done:
  - 354
  - 356
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.close:
  - 378
  - 375
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.fileno:
  - 291
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.getpeercert:
  - 385
  - 387
  - 390
  - 391
  - 394
  - 395
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.recv:
  - 302
  - 304
  - 309
  - 314
  - 317
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.recv_into:
  - 327
  - 329
  - 334
  - 339
  - 342
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.sendall:
  - 364
  - 365
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.settimeout:
  - 349
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.shutdown:
  - 372
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket.version:
  - 399
  pip._vendor.urllib3.contrib.pyopenssl._dnsname_to_stdlib:
  - 212
  - 181
  - 215
  - 216
  - 218
  - 219
  pip._vendor.urllib3.contrib.pyopenssl._dnsname_to_stdlib.idna_encode:
  - 195
  - 203
  - 204
  - 205
  - 206
  - 207
  pip._vendor.urllib3.contrib.pyopenssl._validate_dependencies_met:
  - 162
  - 155
  - 172
  - 173
  pip._vendor.urllib3.contrib.pyopenssl.extract_from_urllib3:
  - 144
  pip._vendor.urllib3.contrib.pyopenssl.get_subj_alt_name:
  - 224
  - 228
  - 229
  - 231
  - 232
  - 266
  - 237
  - 269
  - 270
  - 249
  pip._vendor.urllib3.contrib.pyopenssl.inject_into_urllib3:
  - 131
  - 133
  pip._vendor.urllib3.contrib.pyopenssl.makefile:
  - 415
  pip._vendor.urllib3.contrib.securetransport:
  - 1
  - 162
  - 322
  - 323
  - 167
  - 172
  - 111
  - 112
  - 177
  - 182
  - 767
  pip._vendor.urllib3.contrib.securetransport.SecureTransportContext:
  - 786
  pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.check_hostname:
  - 804
  - 812
  pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.load_default_certs:
  - 854
  pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.load_verify_locations:
  - 867
  - 868
  - 863
  pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.set_alpn_protocols:
  - 888
  - 884
  - 879
  pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.set_ciphers:
  - 858
  pip._vendor.urllib3.contrib.securetransport.SecureTransportContext.wrap_socket:
  - 907
  - 910
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket:
  - 327
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket.__init__:
  - 349
  - 350
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket._custom_validate:
  - 416
  - 424
  - 425
  - 429
  - 430
  - 431
  - 400
  - 407
  - 415
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket._decref_socketios:
  - 572
  - 574
  - 575
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket._drop:
  - 761
  - 762
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket._evaluate_trust:
  - 436
  - 437
  - 438
  - 441
  - 445
  - 451
  - 452
  - 453
  - 456
  - 457
  - 459
  - 460
  - 462
  - 463
  - 464
  - 466
  - 467
  - 469
  - 470
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket._raise_on_error:
  - 368
  - 354
  - 370
  - 367
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket._set_alpn_protocols:
  - 387
  - 390
  - 392
  - 394
  - 395
  - 397
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket._set_ciphers:
  - 384
  - 374
  - 380
  - 381
  - 382
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket.close:
  - 672
  - 674
  - 661
  - 663
  - 664
  - 666
  - 667
  - 669
  - 670
  - 671
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket.fileno:
  - 568
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket.getpeercert:
  - 706
  - 707
  - 708
  - 732
  - 712
  - 713
  - 718
  - 722
  - 725
  - 726
  - 727
  - 729
  - 698
  - 731
  - 700
  - 730
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket.handshake:
  - 513
  - 514
  - 515
  - 517
  - 518
  - 520
  - 523
  - 526
  - 529
  - 530
  - 532
  - 533
  - 539
  - 540
  - 543
  - 546
  - 547
  - 548
  - 551
  - 552
  - 555
  - 556
  - 558
  - 560
  - 561
  - 564
  - 486
  - 492
  - 495
  - 498
  - 504
  - 509
  - 510
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket.recv:
  - 578
  - 579
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket.recv_into:
  - 610
  - 585
  - 618
  - 588
  - 589
  - 620
  - 591
  - 592
  - 594
  - 595
  - 596
  - 602
  - 607
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket.send:
  - 640
  - 644
  - 633
  - 635
  - 636
  - 637
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket.sendall:
  - 651
  - 652
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket.shutdown:
  - 656
  - 657
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket.version:
  - 737
  - 738
  - 739
  - 741
  - 742
  - 744
  - 746
  - 748
  - 750
  - 752
  pip._vendor.urllib3.contrib.securetransport._read_callback:
  - 258
  - 227
  - 263
  - 233
  - 234
  - 238
  - 241
  - 243
  - 244
  - 252
  - 214
  - 250
  - 220
  - 221
  pip._vendor.urllib3.contrib.securetransport._write_callback:
  - 289
  - 290
  - 292
  - 269
  - 301
  - 303
  - 275
  - 276
  - 309
  - 281
  - 314
  - 283
  pip._vendor.urllib3.contrib.securetransport.extract_from_urllib3:
  - 202
  pip._vendor.urllib3.contrib.securetransport.inject_into_urllib3:
  - 190
  pip._vendor.urllib3.contrib.securetransport.makefile:
  - 779
  - 771
  pip._vendor.urllib3.contrib.socks:
  - 2
  - 50
  pip._vendor.urllib3.contrib.socks.SOCKSConnection:
  - 76
  pip._vendor.urllib3.contrib.socks.SOCKSConnection.__init__:
  - 81
  - 82
  pip._vendor.urllib3.contrib.socks.SOCKSConnection._new_conn:
  - 96
  - 85
  - 118
  - 120
  - 89
  - 92
  pip._vendor.urllib3.contrib.socks.SOCKSProxyManager:
  - 160
  pip._vendor.urllib3.contrib.socks.SOCKSProxyManager.__init__:
  - 194
  - 179
  - 212
  - 181
  - 182
  - 183
  - 185
  - 188
  - 191
  pip._vendor.urllib3.disable_warnings:
  - 99
  - 102
  pip._vendor.urllib3.exceptions.BodyNotHttplibCompatible:
  - 237
  pip._vendor.urllib3.exceptions.ClosedPoolError:
  - 147
  pip._vendor.urllib3.exceptions.ConnectTimeoutError:
  - 129
  pip._vendor.urllib3.exceptions.DecodeError:
  - 59
  pip._vendor.urllib3.exceptions.DependencyWarning:
  - 222
  pip._vendor.urllib3.exceptions.EmptyPoolError:
  - 141
  pip._vendor.urllib3.exceptions.HTTPError:
  - 9
  pip._vendor.urllib3.exceptions.HTTPWarning:
  - 15
  pip._vendor.urllib3.exceptions.HeaderParsingError:
  - 313
  pip._vendor.urllib3.exceptions.HeaderParsingError.__init__:
  - 317
  pip._vendor.urllib3.exceptions.HostChangedError:
  - 96
  pip._vendor.urllib3.exceptions.HostChangedError.__init__:
  - 100
  pip._vendor.urllib3.exceptions.IncompleteRead:
  - 246
  pip._vendor.urllib3.exceptions.IncompleteRead.__init__:
  - 254
  pip._vendor.urllib3.exceptions.InsecurePlatformWarning:
  - 210
  pip._vendor.urllib3.exceptions.InsecureRequestWarning:
  - 198
  pip._vendor.urllib3.exceptions.InvalidChunkLength:
  - 264
  pip._vendor.urllib3.exceptions.InvalidChunkLength.__init__:
  - 267
  - 268
  pip._vendor.urllib3.exceptions.InvalidHeader:
  - 281
  pip._vendor.urllib3.exceptions.LocationParseError:
  - 159
  pip._vendor.urllib3.exceptions.LocationParseError.__init__:
  - 163
  pip._vendor.urllib3.exceptions.LocationValueError:
  - 153
  pip._vendor.urllib3.exceptions.MaxRetryError:
  - 78
  pip._vendor.urllib3.exceptions.MaxRetryError.__init__:
  - 92
  pip._vendor.urllib3.exceptions.NewConnectionError:
  - 135
  pip._vendor.urllib3.exceptions.PoolError:
  - 21
  pip._vendor.urllib3.exceptions.PoolError.__init__:
  - 25
  pip._vendor.urllib3.exceptions.ProtocolError:
  - 65
  pip._vendor.urllib3.exceptions.ProxyError:
  - 51
  pip._vendor.urllib3.exceptions.ProxyError.__init__:
  - 54
  pip._vendor.urllib3.exceptions.ProxySchemeUnknown:
  - 287
  pip._vendor.urllib3.exceptions.ProxySchemeUnknown.__init__:
  - 296
  - 294
  - 303
  pip._vendor.urllib3.exceptions.ProxySchemeUnsupported:
  - 307
  pip._vendor.urllib3.exceptions.ReadTimeoutError:
  - 121
  pip._vendor.urllib3.exceptions.RequestError:
  - 33
  pip._vendor.urllib3.exceptions.RequestError.__init__:
  - 37
  pip._vendor.urllib3.exceptions.ResponseError:
  - 179
  pip._vendor.urllib3.exceptions.ResponseNotChunked:
  - 231
  pip._vendor.urllib3.exceptions.SNIMissingWarning:
  - 216
  pip._vendor.urllib3.exceptions.SSLError:
  - 45
  pip._vendor.urllib3.exceptions.SecurityWarning:
  - 186
  pip._vendor.urllib3.exceptions.SubjectAltNameWarning:
  - 192
  pip._vendor.urllib3.exceptions.SystemTimeWarning:
  - 204
  pip._vendor.urllib3.exceptions.TimeoutError:
  - 111
  pip._vendor.urllib3.exceptions.TimeoutStateError:
  - 105
  pip._vendor.urllib3.exceptions.URLSchemeUnknown:
  - 169
  pip._vendor.urllib3.exceptions.URLSchemeUnknown.__init__:
  - 173
  pip._vendor.urllib3.exceptions.UnrewindableBodyError:
  - 321
  pip._vendor.urllib3.fields:
  - 73
  - 75
  - 76
  pip._vendor.urllib3.fields.RequestField:
  - 127
  pip._vendor.urllib3.fields.RequestField.__init__:
  - 155
  - 156
  pip._vendor.urllib3.fields.RequestField._render_part:
  - 196
  - 206
  pip._vendor.urllib3.fields.RequestField._render_parts:
  - 224
  - 225
  - 226
  - 228
  - 209
  - 221
  - 222
  pip._vendor.urllib3.fields.RequestField.from_tuples:
  - 161
  - 177
  - 178
  - 182
  - 188
  - 191
  pip._vendor.urllib3.fields.RequestField.make_multipart:
  - 265
  - 252
  pip._vendor.urllib3.fields.RequestField.render_headers:
  - 231
  - 237
  - 238
  - 239
  - 241
  - 242
  - 243
  - 244
  - 246
  - 247
  pip._vendor.urllib3.fields._replace_multiple:
  - 90
  - 86
  - 87
  pip._vendor.urllib3.fields._replace_multiple.replacer:
  - 84
  pip._vendor.urllib3.fields.format_header_param_html5:
  - 96
  - 114
  - 115
  - 117
  pip._vendor.urllib3.fields.format_header_param_rfc2231:
  - 40
  - 41
  - 43
  - 46
  - 52
  - 53
  - 25
  - 60
  - 61
  - 57
  pip._vendor.urllib3.fields.guess_content_type:
  - 19
  - 11
  - 20
  pip._vendor.urllib3.filepost:
  - 12
  pip._vendor.urllib3.filepost.choose_boundary:
  - 16
  - 19
  - 20
  - 21
  pip._vendor.urllib3.filepost.encode_multipart_formdata:
  - 64
  - 96
  - 98
  - 74
  - 75
  - 76
  - 78
  - 79
  - 81
  - 84
  - 85
  - 87
  - 88
  - 90
  - 92
  - 94
  pip._vendor.urllib3.filepost.iter_field_objects:
  - 33
  - 34
  - 36
  - 38
  - 39
  - 40
  - 42
  - 26
  pip._vendor.urllib3.filepost.iter_fields:
  - 57
  - 58
  - 46
  pip._vendor.urllib3.packages.backports.makefile:
  - 2
  pip._vendor.urllib3.packages.backports.makefile.backport_makefile:
  - 32
  - 34
  - 36
  - 37
  - 40
  - 41
  - 42
  - 43
  - 46
  - 47
  - 16
  - 49
  - 19
  - 26
  - 28
  - 30
  pip._vendor.urllib3.packages.backports.weakref_finalize:
  - 2
  pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize:
  - 18
  - 36
  pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.__call__:
  - 64
  - 65
  - 66
  - 62
  pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.__init__:
  - 44
  - 49
  - 51
  - 52
  - 57
  pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.__repr__:
  - 102
  - 103
  - 104
  - 105
  - 108
  - 109
  - 110
  - 111
  pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize._exitfunc:
  - 128
  - 131
  - 133
  - 136
  - 137
  - 139
  - 141
  - 147
  - 149
  - 154
  - 155
  pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize._select_for_exit:
  - 117
  - 118
  pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.alive:
  - 86
  pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.atexit:
  - 97
  - 98
  - 99
  - 91
  - 92
  - 93
  pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.detach:
  - 72
  - 73
  - 69
  - 71
  pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize.peek:
  - 80
  - 81
  - 77
  - 79
  pip._vendor.urllib3.packages.six:
  - 875
  - 517
  - 518
  - 815
  - 21
  - 539
  - 540
  - 1057
  - 1062
  - 1063
  - 40
  - 1068
  - 1069
  - 560
  - 1076
  - 55
  - 57
  - 65
  - 68
  - 71
  - 74
  - 597
  - 624
  - 629
  - 630
  - 631
  - 632
  - 633
  - 634
  - 637
  - 651
  - 653
  - 655
  - 670
  - 672
  - 674
  - 676
  - 677
  - 678
  - 679
  - 684
  - 695
  - 697
  - 706
  - 733
  - 741
  - 742
  - 240
  - 761
  - 762
  - 251
  - 252
  - 253
  - 256
  - 257
  - 258
  - 259
  - 260
  - 261
  - 262
  - 263
  - 266
  - 267
  - 268
  - 269
  - 270
  - 271
  - 272
  - 273
  - 274
  - 277
  - 278
  - 279
  - 789
  - 284
  - 285
  - 286
  - 287
  - 799
  - 800
  - 292
  - 293
  - 294
  - 295
  - 296
  - 297
  - 298
  - 299
  - 300
  - 814
  - 303
  - 304
  - 305
  - 306
  - 307
  - 308
  - 309
  - 310
  - 311
  - 312
  - 313
  - 314
  - 315
  - 316
  - 317
  - 318
  - 319
  - 320
  - 321
  - 322
  - 323
  - 324
  - 325
  - 326
  - 327
  - 328
  - 329
  - 330
  - 331
  - 332
  - 335
  - 337
  - 340
  - 341
  - 342
  - 343
  - 348
  - 349
  - 358
  - 359
  - 360
  - 361
  - 362
  - 363
  - 364
  - 365
  - 366
  - 367
  - 368
  - 369
  - 370
  - 371
  - 372
  - 886
  - 375
  - 376
  - 377
  - 378
  - 379
  - 380
  - 381
  - 382
  - 383
  - 384
  - 888
  - 386
  - 387
  - 392
  - 393
  - 405
  - 406
  - 407
  - 409
  - 410
  - 415
  - 416
  - 428
  - 429
  - 430
  - 431
  - 432
  - 433
  - 434
  - 435
  - 436
  - 437
  - 438
  - 439
  - 440
  - 441
  - 442
  - 443
  - 444
  - 445
  - 446
  - 447
  - 448
  - 449
  - 450
  - 451
  - 452
  - 453
  - 454
  - 455
  - 456
  - 457
  - 458
  - 459
  - 460
  - 461
  - 462
  - 464
  - 465
  - 470
  - 471
  - 483
  - 484
  - 485
  - 486
  - 488
  - 489
  - 494
  - 495
  - 507
  - 509
  - 510
  pip._vendor.urllib3.packages.six.Iterator.next:
  - 621
  pip._vendor.urllib3.packages.six.Module_six_moves_urllib:
  - 526
  - 529
  - 530
  - 531
  - 532
  - 533
  pip._vendor.urllib3.packages.six.Module_six_moves_urllib_error:
  - 401
  pip._vendor.urllib3.packages.six.Module_six_moves_urllib_parse:
  - 354
  pip._vendor.urllib3.packages.six.Module_six_moves_urllib_request:
  - 424
  pip._vendor.urllib3.packages.six.Module_six_moves_urllib_response:
  - 479
  pip._vendor.urllib3.packages.six.Module_six_moves_urllib_robotparser:
  - 503
  pip._vendor.urllib3.packages.six.MovedAttribute.__init__:
  - 143
  - 144
  - 145
  - 148
  - 149
  - 156
  pip._vendor.urllib3.packages.six.MovedAttribute._resolve:
  - 161
  - 162
  pip._vendor.urllib3.packages.six.MovedModule.__getattr__:
  - 121
  - 122
  - 123
  pip._vendor.urllib3.packages.six.MovedModule.__init__:
  - 109
  - 110
  - 111
  pip._vendor.urllib3.packages.six.MovedModule._resolve:
  - 118
  pip._vendor.urllib3.packages.six._LazyDescr.__get__:
  - 96
  - 97
  - 101
  pip._vendor.urllib3.packages.six._LazyModule.__init__:
  - 129
  pip._vendor.urllib3.packages.six._MovedItems:
  - 245
  pip._vendor.urllib3.packages.six._SixMetaPathImporter:
  - 167
  pip._vendor.urllib3.packages.six._SixMetaPathImporter._add_module:
  - 179
  pip._vendor.urllib3.packages.six._SixMetaPathImporter.create_module:
  - 234
  pip._vendor.urllib3.packages.six._SixMetaPathImporter.find_module:
  - 186
  pip._vendor.urllib3.packages.six._SixMetaPathImporter.find_spec:
  - 192
  - 191
  pip._vendor.urllib3.packages.six._SixMetaPathImporter.get_code:
  - 225
  - 228
  pip._vendor.urllib3.packages.six._SixMetaPathImporter.is_package:
  - 216
  - 222
  pip._vendor.urllib3.packages.six._SixMetaPathImporter.load_module:
  - 208
  - 209
  - 207
  pip._vendor.urllib3.packages.six._add_doc:
  - 81
  pip._vendor.urllib3.packages.six._import_module:
  - 86
  - 87
  pip._vendor.urllib3.packages.six._update_wrapper:
  - 900
  - 902
  - 906
  - 907
  - 908
  pip._vendor.urllib3.packages.six.add_metaclass:
  - 954
  pip._vendor.urllib3.packages.six.add_metaclass.wrapper:
  - 960
  - 962
  - 963
  - 964
  - 965
  - 966
  - 968
  - 957
  - 958
  - 959
  pip._vendor.urllib3.packages.six.add_move:
  - 545
  - 546
  pip._vendor.urllib3.packages.six.advance_iterator:
  - 583
  pip._vendor.urllib3.packages.six.assertCountEqual:
  - 746
  pip._vendor.urllib3.packages.six.assertNotRegex:
  - 758
  pip._vendor.urllib3.packages.six.assertRaisesRegex:
  - 750
  pip._vendor.urllib3.packages.six.assertRegex:
  - 754
  pip._vendor.urllib3.packages.six.b:
  - 687
  pip._vendor.urllib3.packages.six.byte2int:
  - 728
  pip._vendor.urllib3.packages.six.callable:
  - 594
  pip._vendor.urllib3.packages.six.create_bound_method:
  - 614
  pip._vendor.urllib3.packages.six.create_unbound_method:
  - 617
  pip._vendor.urllib3.packages.six.ensure_binary:
  - 984
  - 986
  - 987
  - 974
  pip._vendor.urllib3.packages.six.ensure_str:
  - 992
  - 1003
  - 1005
  - 1006
  - 1007
  - 1008
  - 1009
  pip._vendor.urllib3.packages.six.ensure_text:
  - 1025
  - 1026
  - 1027
  - 1015
  pip._vendor.urllib3.packages.six.exec_:
  - 778
  - 779
  - 780
  - 782
  - 785
  - 787
  pip._vendor.urllib3.packages.six.indexbytes:
  - 731
  pip._vendor.urllib3.packages.six.iteritems:
  - 665
  - 646
  pip._vendor.urllib3.packages.six.iterkeys:
  - 640
  - 659
  pip._vendor.urllib3.packages.six.iterlists:
  - 649
  - 668
  pip._vendor.urllib3.packages.six.itervalues:
  - 643
  - 662
  pip._vendor.urllib3.packages.six.print_:
  - 818
  - 819
  - 820
  - 839
  - 840
  - 841
  - 843
  - 845
  - 846
  - 847
  - 849
  - 851
  - 853
  - 854
  - 855
  - 858
  - 859
  - 860
  - 864
  - 866
  - 868
  - 869
  - 870
  - 871
  - 872
  - 879
  - 880
  - 881
  - 882
  - 883
  pip._vendor.urllib3.packages.six.print_.write:
  - 832
  - 833
  - 835
  - 836
  - 824
  - 825
  - 827
  - 828
  - 829
  pip._vendor.urllib3.packages.six.python_2_unicode_compatible:
  - 1048
  - 1041
  - 1034
  - 1042
  pip._vendor.urllib3.packages.six.python_2_unicode_compatible.<lambda1>:
  - 1048
  pip._vendor.urllib3.packages.six.remove_move:
  - 552
  - 550
  pip._vendor.urllib3.packages.six.reraise:
  - 768
  - 766
  - 767
  pip._vendor.urllib3.packages.six.u:
  - 722
  pip._vendor.urllib3.packages.six.with_metaclass:
  - 930
  - 950
  pip._vendor.urllib3.packages.six.with_metaclass.metaclass.__new__:
  - 936
  - 939
  - 940
  - 944
  pip._vendor.urllib3.packages.six.with_metaclass.metaclass.__prepare__:
  - 948
  pip._vendor.urllib3.packages.six.wraps:
  - 919
  pip._vendor.urllib3.poolmanager:
  - 133
  - 134
  - 73
  - 76
  - 26
  pip._vendor.urllib3.poolmanager.PoolManager:
  - 141
  pip._vendor.urllib3.poolmanager.PoolManager.__exit__:
  - 185
  pip._vendor.urllib3.poolmanager.PoolManager.__init__:
  - 179
  - 172
  - 174
  pip._vendor.urllib3.poolmanager.PoolManager._merge_pool_kwargs:
  - 304
  - 311
  - 312
  - 313
  - 314
  pip._vendor.urllib3.poolmanager.PoolManager._new_pool:
  - 200
  - 201
  - 207
  - 208
  - 210
  - 211
  - 212
  - 214
  - 190
  pip._vendor.urllib3.poolmanager.PoolManager._proxy_requires_url_absolute_form:
  - 329
  - 324
  - 332
  pip._vendor.urllib3.poolmanager.PoolManager._validate_proxy_scheme_url_selection:
  - 344
  - 337
  - 347
  - 341
  pip._vendor.urllib3.poolmanager.PoolManager.clear:
  - 217
  - 223
  pip._vendor.urllib3.poolmanager.PoolManager.connection_from_context:
  - 256
  - 257
  - 259
  - 261
  - 249
  - 255
  pip._vendor.urllib3.poolmanager.PoolManager.connection_from_host:
  - 226
  - 236
  - 239
  - 241
  - 242
  - 246
  pip._vendor.urllib3.poolmanager.PoolManager.connection_from_pool_key:
  - 264
  - 282
  - 274
  - 275
  pip._vendor.urllib3.poolmanager.PoolManager.connection_from_url:
  - 288
  - 298
  - 299
  pip._vendor.urllib3.poolmanager.PoolManager.urlopen:
  - 386
  - 389
  - 390
  - 391
  - 396
  - 399
  - 400
  - 401
  - 402
  - 405
  - 407
  - 408
  - 415
  - 417
  - 418
  - 354
  - 362
  - 363
  - 365
  - 370
  - 371
  - 373
  - 374
  - 376
  - 378
  - 379
  - 383
  pip._vendor.urllib3.poolmanager.ProxyManager:
  - 422
  pip._vendor.urllib3.poolmanager.ProxyManager.__init__:
  - 480
  - 483
  - 484
  - 485
  - 490
  - 496
  - 472
  - 478
  pip._vendor.urllib3.poolmanager.ProxyManager._set_proxy_headers:
  - 515
  - 516
  - 519
  - 520
  - 509
  pip._vendor.urllib3.poolmanager.ProxyManager.connection_from_host:
  - 504
  - 499
  - 500
  pip._vendor.urllib3.poolmanager.ProxyManager.urlopen:
  - 524
  - 525
  - 526
  - 530
  - 531
  - 533
  pip._vendor.urllib3.poolmanager._default_key_normalizer:
  - 100
  - 101
  - 102
  - 105
  - 106
  - 107
  - 111
  - 80
  - 112
  - 113
  - 117
  - 118
  - 121
  - 122
  - 125
  pip._vendor.urllib3.poolmanager.proxy_from_url:
  - 537
  pip._vendor.urllib3.request:
  - 176
  pip._vendor.urllib3.request.RequestMethods:
  - 13
  pip._vendor.urllib3.request.RequestMethods.request:
  - 72
  - 76
  - 77
  - 81
  - 62
  pip._vendor.urllib3.request.RequestMethods.request_encode_body:
  - 163
  - 170
  - 171
  - 173
  - 111
  - 146
  - 151
  - 152
  - 157
  - 158
  pip._vendor.urllib3.request.RequestMethods.request_encode_url:
  - 96
  - 97
  - 99
  - 86
  - 90
  - 94
  pip._vendor.urllib3.request.RequestModule.__call__:
  - 180
  pip._vendor.urllib3.response:
  - 32
  - 104
  pip._vendor.urllib3.response.BrotliDecoder.__init__:
  - 112
  - 111
  pip._vendor.urllib3.response.BrotliDecoder.flush:
  - 118
  - 119
  pip._vendor.urllib3.response.DeflateDecoder.__getattr__:
  - 42
  pip._vendor.urllib3.response.DeflateDecoder.__init__:
  - 39
  pip._vendor.urllib3.response.DeflateDecoder.decompress:
  - 45
  - 48
  - 49
  - 53
  - 54
  - 60
  - 62
  pip._vendor.urllib3.response.GzipDecoder.__getattr__:
  - 80
  pip._vendor.urllib3.response.GzipDecoder.__init__:
  - 76
  pip._vendor.urllib3.response.GzipDecoder.decompress:
  - 98
  - 99
  - 101
  - 83
  - 84
  - 85
  - 88
  - 93
  - 95
  pip._vendor.urllib3.response.HTTPResponse:
  - 389
  - 158
  - 191
  pip._vendor.urllib3.response.HTTPResponse.__init__:
  - 256
  - 259
  - 260
  - 237
  - 251
  - 243
  - 216
  - 249
  - 219
  - 252
  pip._vendor.urllib3.response.HTTPResponse.__iter__:
  - 866
  - 867
  - 868
  - 869
  - 870
  - 871
  - 872
  - 877
  - 878
  - 879
  pip._vendor.urllib3.response.HTTPResponse._decode:
  - 393
  - 396
  - 400
  - 401
  - 403
  - 409
  - 410
  pip._vendor.urllib3.response.HTTPResponse._error_catcher:
  - 479
  - 427
  - 463
  - 467
  - 468
  - 438
  - 473
  - 474
  - 478
  - 447
  pip._vendor.urllib3.response.HTTPResponse._flush_decoder:
  - 419
  - 420
  - 421
  - 415
  pip._vendor.urllib3.response.HTTPResponse._fp_read:
  - 482
  - 515
  - 514
  - 519
  - 520
  - 522
  - 524
  - 527
  - 497
  - 505
  pip._vendor.urllib3.response.HTTPResponse._handle_chunk:
  - 768
  - 769
  - 772
  - 773
  - 774
  - 778
  - 779
  - 763
  - 764
  - 766
  pip._vendor.urllib3.response.HTTPResponse._init_decoder:
  - 385
  - 386
  - 370
  - 375
  - 376
  - 377
  - 378
  - 379
  - 381
  - 382
  - 383
  pip._vendor.urllib3.response.HTTPResponse._init_length:
  - 321
  - 353
  - 323
  - 324
  - 359
  - 328
  - 364
  - 343
  - 344
  - 349
  - 318
  pip._vendor.urllib3.response.HTTPResponse._update_chunk_length:
  - 750
  - 752
  - 753
  - 755
  - 758
  pip._vendor.urllib3.response.HTTPResponse.close:
  - 684
  - 685
  - 687
  - 688
  - 690
  - 691
  pip._vendor.urllib3.response.HTTPResponse.closed:
  - 695
  - 696
  - 697
  - 699
  - 700
  - 701
  pip._vendor.urllib3.response.HTTPResponse.data:
  - 296
  - 299
  - 300
  pip._vendor.urllib3.response.HTTPResponse.drain_conn:
  - 289
  - 283
  pip._vendor.urllib3.response.HTTPResponse.fileno:
  - 707
  - 709
  - 710
  pip._vendor.urllib3.response.HTTPResponse.flush:
  - 720
  - 721
  - 723
  - 718
  pip._vendor.urllib3.response.HTTPResponse.from_httplib:
  - 641
  - 643
  - 646
  - 647
  - 629
  - 638
  - 639
  pip._vendor.urllib3.response.HTTPResponse.get_redirect_location:
  - 271
  - 270
  - 263
  pip._vendor.urllib3.response.HTTPResponse.getheader:
  - 676
  - 670
  pip._vendor.urllib3.response.HTTPResponse.getheaders:
  - 661
  pip._vendor.urllib3.response.HTTPResponse.geturl:
  - 859
  - 854
  pip._vendor.urllib3.response.HTTPResponse.isclosed:
  - 307
  pip._vendor.urllib3.response.HTTPResponse.read:
  - 576
  - 578
  - 550
  - 551
  - 554
  - 589
  - 558
  - 590
  - 560
  - 561
  - 530
  - 562
  - 591
  - 592
  - 566
  - 594
  - 596
  pip._vendor.urllib3.response.HTTPResponse.read_chunked:
  - 784
  - 797
  - 799
  - 804
  - 810
  - 812
  - 813
  - 818
  - 822
  - 823
  - 825
  - 826
  - 829
  - 830
  - 832
  - 836
  - 837
  - 838
  - 842
  - 843
  - 846
  - 850
  - 851
  pip._vendor.urllib3.response.HTTPResponse.readinto:
  - 736
  - 731
  - 732
  - 735
  pip._vendor.urllib3.response.HTTPResponse.release_conn:
  - 276
  - 279
  pip._vendor.urllib3.response.HTTPResponse.stream:
  - 617
  - 618
  - 619
  - 621
  - 622
  - 624
  - 625
  - 602
  pip._vendor.urllib3.response.HTTPResponse.supports_chunked_reads:
  - 745
  - 739
  pip._vendor.urllib3.response.HTTPResponse.tell:
  - 310
  pip._vendor.urllib3.response.MultiDecoder:
  - 124
  pip._vendor.urllib3.response.MultiDecoder.__init__:
  - 133
  pip._vendor.urllib3.response.MultiDecoder.decompress:
  - 139
  - 140
  pip._vendor.urllib3.response.MultiDecoder.flush:
  - 136
  pip._vendor.urllib3.response._get_decoder:
  - 145
  - 146
  - 148
  - 149
  - 151
  - 152
  - 154
  pip._vendor.urllib3.util.connection:
  - 149
  pip._vendor.urllib3.util.connection._has_ipv6:
  - 128
  - 131
  - 138
  - 139
  - 144
  - 145
  - 120
  pip._vendor.urllib3.util.connection._set_socket_options:
  - 104
  - 105
  - 101
  pip._vendor.urllib3.util.connection.allowed_gai_family:
  - 114
  - 109
  pip._vendor.urllib3.util.connection.create_connection:
  - 66
  - 68
  - 69
  - 72
  - 43
  - 76
  - 79
  - 81
  - 82
  - 83
  - 84
  - 85
  - 56
  - 57
  - 90
  - 91
  - 94
  - 63
  pip._vendor.urllib3.util.connection.is_connection_dropped:
  - 12
  - 21
  - 22
  - 24
  - 28
  pip._vendor.urllib3.util.proxy.connection_requires_http_tunnel:
  - 18
  - 26
  - 22
  - 7
  pip._vendor.urllib3.util.proxy.create_proxy_ssl_context:
  - 40
  - 44
  - 45
  - 46
  - 49
  - 53
  - 55
  pip._vendor.urllib3.util.queue:
  - 6
  pip._vendor.urllib3.util.queue.LifoQueue._get:
  - 22
  pip._vendor.urllib3.util.queue.LifoQueue._init:
  - 13
  pip._vendor.urllib3.util.queue.LifoQueue._put:
  - 19
  pip._vendor.urllib3.util.queue.LifoQueue._qsize:
  - 16
  pip._vendor.urllib3.util.request:
  - 17
  - 13
  pip._vendor.urllib3.util.request.make_headers:
  - 64
  - 66
  - 67
  - 72
  - 75
  - 78
  - 79
  - 81
  - 82
  - 83
  - 86
  - 28
  - 63
  pip._vendor.urllib3.util.request.rewind_body:
  - 129
  - 111
  - 121
  - 122
  - 124
  pip._vendor.urllib3.util.request.set_file_position:
  - 97
  - 98
  - 99
  - 101
  - 93
  pip._vendor.urllib3.util.response.assert_header_parsing:
  - 65
  - 66
  - 68
  - 90
  - 70
  - 41
  - 85
  - 55
  - 58
  - 59
  - 62
  pip._vendor.urllib3.util.response.is_fp_closed:
  - 10
  - 20
  pip._vendor.urllib3.util.response.is_response_to_head:
  - 105
  - 107
  - 95
  pip._vendor.urllib3.util.retry:
  - 32
  - 26
  - 620
  - 22
  pip._vendor.urllib3.util.retry.Retry:
  - 235
  - 93
  - 230
  - 238
  pip._vendor.urllib3.util.retry.Retry.__getattr__:
  - 616
  - 605
  - 614
  - 607
  pip._vendor.urllib3.util.retry.Retry.__init__:
  - 288
  - 293
  - 263
  - 264
  - 298
  - 300
  - 301
  - 270
  - 277
  - 279
  pip._vendor.urllib3.util.retry.Retry.__repr__:
  - 602
  - 599
  pip._vendor.urllib3.util.retry.Retry._is_connection_error:
  - 440
  - 435
  - 438
  pip._vendor.urllib3.util.retry.Retry._is_method_retryable:
  - 464
  - 449
  - 454
  - 455
  pip._vendor.urllib3.util.retry.Retry._is_read_error:
  - 443
  - 446
  pip._vendor.urllib3.util.retry.Retry._sleep_backoff:
  - 416
  - 413
  - 414
  pip._vendor.urllib3.util.retry.Retry.from_int:
  - 342
  - 343
  - 346
  - 349
  - 350
  - 351
  pip._vendor.urllib3.util.retry.Retry.get_backoff_time:
  - 355
  - 360
  - 361
  - 362
  - 365
  - 369
  pip._vendor.urllib3.util.retry.Retry.get_retry_after:
  - 402
  - 395
  - 397
  - 399
  pip._vendor.urllib3.util.retry.Retry.increment:
  - 513
  - 523
  - 528
  - 540
  - 542
  - 544
  - 547
  - 549
  - 551
  - 554
  - 556
  - 559
  - 561
  - 564
  - 571
  - 572
  - 574
  - 578
  - 581
  - 591
  - 594
  pip._vendor.urllib3.util.retry.Retry.is_exhausted:
  - 489
  - 498
  - 499
  - 502
  pip._vendor.urllib3.util.retry.Retry.is_retry:
  - 475
  - 469
  - 478
  pip._vendor.urllib3.util.retry.Retry.new:
  - 326
  - 327
  - 328
  - 305
  - 337
  - 338
  pip._vendor.urllib3.util.retry.Retry.parse_retry_after:
  - 386
  - 387
  - 389
  - 373
  - 374
  - 376
  - 377
  - 379
  pip._vendor.urllib3.util.retry.Retry.sleep:
  - 419
  - 427
  - 428
  - 429
  - 432
  pip._vendor.urllib3.util.retry.Retry.sleep_for_retry:
  - 405
  - 406
  - 407
  pip._vendor.urllib3.util.retry._RetryMeta.BACKOFF_MAX:
  - 74
  - 83
  pip._vendor.urllib3.util.retry._RetryMeta.DEFAULT_METHOD_WHITELIST:
  - 38
  - 47
  pip._vendor.urllib3.util.retry._RetryMeta.DEFAULT_REDIRECT_HEADERS_BLACKLIST:
  - 56
  - 65
  pip._vendor.urllib3.util.ssl_:
  - 43
  - 110
  pip._vendor.urllib3.util.ssl_.SSLContext.load_verify_locations:
  - 152
  - 155
  pip._vendor.urllib3.util.ssl_.SSLContext.wrap_socket:
  - 162
  - 179
  pip._vendor.urllib3.util.ssl_._const_compare_digest_backport:
  - 37
  - 38
  - 31
  pip._vendor.urllib3.util.ssl_._is_key_file_encrypted:
  - 472
  - 473
  - 475
  - 471
  pip._vendor.urllib3.util.ssl_._ssl_wrap_socket_impl:
  - 482
  - 483
  - 489
  - 490
  - 492
  - 493
  - 495
  pip._vendor.urllib3.util.ssl_.assert_fingerprint:
  - 192
  - 193
  - 194
  - 195
  - 199
  - 201
  - 203
  - 183
  pip._vendor.urllib3.util.ssl_.create_urllib3_context:
  - 320
  - 290
  - 292
  - 297
  - 349
  - 338
  - 340
  - 342
  - 347
  - 348
  - 253
  - 287
  pip._vendor.urllib3.util.ssl_.create_urllib3_context.disable_check_hostname:
  - 326
  - 327
  pip._vendor.urllib3.util.ssl_.is_ipaddress:
  - 464
  - 466
  - 458
  - 467
  pip._vendor.urllib3.util.ssl_.resolve_cert_reqs:
  - 225
  - 226
  - 227
  - 228
  - 212
  - 222
  pip._vendor.urllib3.util.ssl_.resolve_ssl_version:
  - 235
  - 238
  - 241
  - 242
  - 243
  - 244
  pip._vendor.urllib3.util.ssl_.ssl_wrap_socket:
  - 394
  - 398
  - 400
  - 402
  - 406
  - 408
  - 413
  - 416
  - 417
  - 418
  - 420
  - 423
  - 424
  - 430
  - 436
  - 437
  - 448
  - 449
  - 453
  - 370
  pip._vendor.urllib3.util.ssl_match_hostname:
  - 1
  pip._vendor.urllib3.util.ssl_match_hostname._dnsname_match:
  - 66
  - 36
  - 69
  - 40
  - 41
  - 72
  - 73
  - 75
  - 76
  - 51
  - 52
  - 57
  - 26
  - 60
  - 61
  - 31
  pip._vendor.urllib3.util.ssl_match_hostname._ipaddress_match:
  - 94
  - 87
  pip._vendor.urllib3.util.ssl_match_hostname._to_unicode:
  - 80
  - 82
  pip._vendor.urllib3.util.ssl_match_hostname.match_hostname:
  - 128
  - 129
  - 130
  - 131
  - 133
  - 134
  - 135
  - 137
  - 138
  - 141
  - 142
  - 145
  - 146
  - 148
  - 149
  - 154
  - 99
  - 106
  - 114
  - 123
  pip._vendor.urllib3.util.ssltransport.SSLTransport:
  - 12
  pip._vendor.urllib3.util.ssltransport.SSLTransport.__exit__:
  - 67
  pip._vendor.urllib3.util.ssltransport.SSLTransport.__init__:
  - 47
  - 50
  - 51
  - 56
  - 61
  pip._vendor.urllib3.util.ssltransport.SSLTransport._decref_socketios:
  - 184
  pip._vendor.urllib3.util.ssltransport.SSLTransport._ssl_io_loop:
  - 196
  - 203
  - 205
  - 210
  - 211
  - 213
  - 215
  - 216
  - 217
  - 218
  - 220
  pip._vendor.urllib3.util.ssltransport.SSLTransport._validate_ssl_context_for_tls_in_tls:
  - 24
  - 33
  - 32
  pip._vendor.urllib3.util.ssltransport.SSLTransport._wrap_ssl_read:
  - 188
  - 190
  pip._vendor.urllib3.util.ssltransport.SSLTransport.cipher:
  - 163
  pip._vendor.urllib3.util.ssltransport.SSLTransport.close:
  - 154
  pip._vendor.urllib3.util.ssltransport.SSLTransport.compression:
  - 175
  pip._vendor.urllib3.util.ssltransport.SSLTransport.fileno:
  - 70
  pip._vendor.urllib3.util.ssltransport.SSLTransport.getpeercert:
  - 157
  pip._vendor.urllib3.util.ssltransport.SSLTransport.gettimeout:
  - 181
  pip._vendor.urllib3.util.ssltransport.SSLTransport.makefile:
  - 129
  - 131
  - 133
  - 134
  - 137
  - 138
  - 139
  - 108
  - 140
  - 143
  - 144
  - 146
  - 115
  - 123
  - 125
  - 127
  pip._vendor.urllib3.util.ssltransport.SSLTransport.read:
  - 73
  pip._vendor.urllib3.util.ssltransport.SSLTransport.recv:
  - 76
  - 78
  pip._vendor.urllib3.util.ssltransport.SSLTransport.recv_into:
  - 81
  - 83
  - 84
  - 85
  - 87
  pip._vendor.urllib3.util.ssltransport.SSLTransport.selected_alpn_protocol:
  - 166
  pip._vendor.urllib3.util.ssltransport.SSLTransport.selected_npn_protocol:
  - 169
  pip._vendor.urllib3.util.ssltransport.SSLTransport.send:
  - 100
  - 102
  pip._vendor.urllib3.util.ssltransport.SSLTransport.sendall:
  - 96
  - 90
  - 93
  - 94
  pip._vendor.urllib3.util.ssltransport.SSLTransport.settimeout:
  - 178
  pip._vendor.urllib3.util.ssltransport.SSLTransport.shared_ciphers:
  - 172
  pip._vendor.urllib3.util.ssltransport.SSLTransport.unwrap:
  - 151
  pip._vendor.urllib3.util.ssltransport.SSLTransport.version:
  - 160
  pip._vendor.urllib3.util.timeout:
  - 16
  - 12
  pip._vendor.urllib3.util.timeout.Timeout:
  - 20
  pip._vendor.urllib3.util.timeout.Timeout.__init__:
  - 104
  - 102
  - 103
  pip._vendor.urllib3.util.timeout.Timeout.__repr__:
  - 109
  pip._vendor.urllib3.util.timeout.Timeout._validate_timeout:
  - 133
  - 136
  - 139
  - 145
  - 153
  - 124
  pip._vendor.urllib3.util.timeout.Timeout.clone:
  - 185
  - 196
  pip._vendor.urllib3.util.timeout.Timeout.connect_timeout:
  - 225
  - 236
  - 233
  - 239
  pip._vendor.urllib3.util.timeout.Timeout.from_float:
  - 170
  - 182
  pip._vendor.urllib3.util.timeout.Timeout.get_connect_duration:
  - 217
  - 210
  - 221
  pip._vendor.urllib3.util.timeout.Timeout.read_timeout:
  - 258
  - 265
  - 267
  - 268
  - 269
  - 243
  pip._vendor.urllib3.util.timeout.Timeout.resolve_default_timeout:
  - 120
  pip._vendor.urllib3.util.timeout.Timeout.start_connect:
  - 204
  - 206
  - 199
  pip._vendor.urllib3.util.url:
  - 64
  - 71
  - 73
  - 76
  - 17
  - 18
  - 19
  - 54
  - 62
  - 58
  - 60
  - 61
  - 30
  - 63
  pip._vendor.urllib3.util.url.Url:
  - 83
  pip._vendor.urllib3.util.url.Url.__new__:
  - 104
  - 105
  - 101
  - 103
  pip._vendor.urllib3.util.url.Url.hostname:
  - 111
  pip._vendor.urllib3.util.url.Url.netloc:
  - 126
  - 127
  pip._vendor.urllib3.util.url.Url.request_uri:
  - 116
  - 119
  pip._vendor.urllib3.util.url.Url.url:
  - 160
  - 161
  - 162
  - 164
  - 133
  - 166
  - 154
  - 156
  - 158
  pip._vendor.urllib3.util.url._encode_invalid_chars:
  - 226
  - 227
  - 228
  - 230
  - 233
  - 234
  - 235
  - 239
  - 241
  - 211
  - 214
  - 217
  - 222
  - 223
  pip._vendor.urllib3.util.url._encode_invalid_chars.<lambda1>:
  - 223
  pip._vendor.urllib3.util.url._encode_target:
  - 324
  - 325
  - 326
  - 327
  - 328
  pip._vendor.urllib3.util.url._idna_encode:
  - 320
  - 306
  - 310
  - 311
  - 315
  - 317
  - 318
  pip._vendor.urllib3.util.url._normalize_host:
  - 290
  - 294
  - 295
  - 297
  - 298
  - 299
  - 300
  - 275
  - 276
  - 277
  - 279
  - 280
  - 281
  - 285
  - 286
  - 287
  pip._vendor.urllib3.util.url._remove_path_dot_segments:
  - 258
  - 259
  - 263
  - 264
  - 268
  - 269
  - 271
  - 246
  - 249
  - 251
  - 254
  - 255
  pip._vendor.urllib3.util.url.get_host:
  - 434
  - 431
  pip._vendor.urllib3.util.url.parse_url:
  - 386
  - 388
  - 389
  - 390
  - 391
  - 392
  - 393
  - 394
  - 397
  - 403
  - 404
  - 411
  - 419
  - 420
  - 421
  - 422
  - 424
  - 425
  - 426
  - 334
  - 355
  - 357
  - 360
  - 364
  - 365
  - 367
  - 368
  - 370
  - 371
  - 373
  - 374
  - 375
  - 376
  - 381
  - 382
  - 383
  pip._vendor.urllib3.util.url.parse_url.ensure_type:
  - 417
  pip._vendor.urllib3.util.url.split_first:
  - 195
  - 196
  - 197
  - 200
  - 204
  - 176
  pip._vendor.urllib3.util.wait:
  - 40
  pip._vendor.urllib3.util.wait._have_working_poll:
  - 118
  - 119
  pip._vendor.urllib3.util.wait._retry_on_intr:
  - 65
  - 43
  - 48
  - 49
  - 51
  - 55
  - 59
  - 62
  - 63
  pip._vendor.urllib3.util.wait.poll_wait_for_socket:
  - 97
  - 98
  - 106
  - 90
  - 93
  - 95
  pip._vendor.urllib3.util.wait.poll_wait_for_socket.do_poll:
  - 104
  - 102
  pip._vendor.urllib3.util.wait.select_wait_for_socket:
  - 71
  - 75
  - 76
  - 77
  - 78
  - 84
  - 85
  - 86
  pip._vendor.urllib3.util.wait.wait_for_read:
  - 145
  - 142
  pip._vendor.urllib3.util.wait.wait_for_socket:
  - 138
  - 132
  - 134
  pip._vendor.urllib3.util.wait.wait_for_write:
  - 152
  - 149
  pip._vendor.vendored:
  - 46
  - 33
  - 30
  - 47
  pip._vendor.webencodings:
  - 136
  - 2
  - 133
  - 135
  pip._vendor.webencodings.Encoding:
  - 110
  pip._vendor.webencodings.IncrementalDecoder:
  - 273
  pip._vendor.webencodings.IncrementalDecoder.__init__:
  - 285
  pip._vendor.webencodings.IncrementalDecoder.decode:
  - 320
  - 296
  - 306
  - 307
  - 310
  - 311
  - 312
  - 317
  pip._vendor.webencodings.IncrementalEncoder:
  - 324
  pip._vendor.webencodings.IncrementalEncoder.__init__:
  - 341
  - 342
  pip._vendor.webencodings._detect_bom:
  - 162
  - 163
  - 165
  - 167
  pip._vendor.webencodings._get_encoding:
  - 100
  - 92
  - 104
  - 103
  pip._vendor.webencodings._iter_decode_generator:
  - 225
  - 226
  - 237
  - 238
  - 239
  - 240
  - 241
  - 242
  - 243
  - 215
  - 220
  - 221
  - 222
  - 223
  pip._vendor.webencodings._iter_encode_generator:
  - 263
  - 264
  - 265
  - 266
  - 267
  - 268
  - 269
  pip._vendor.webencodings.ascii_lower:
  - 58
  - 36
  pip._vendor.webencodings.decode:
  - 156
  - 155
  - 140
  - 158
  pip._vendor.webencodings.encode:
  - 173
  - 183
  pip._vendor.webencodings.iter_decode:
  - 208
  - 209
  - 210
  - 187
  pip._vendor.webencodings.iter_encode:
  - 258
  - 259
  - 247
  pip._vendor.webencodings.labels:
  - 1
  pip._vendor.webencodings.lookup:
  - 74
  - 75
  - 76
  - 78
  - 79
  - 80
  - 83
  - 85
  - 86
  - 62
  pip._vendor.webencodings.mklabels:
  - 1
  - 58
  - 59
  pip._vendor.webencodings.mklabels.assert_lower:
  - 21
  pip._vendor.webencodings.mklabels.generate:
  - 45
  - 46
  - 47
  - 50
  - 51
  - 52
  - 54
  - 55
  pip._vendor.webencodings.tests:
  - 2
  pip._vendor.webencodings.tests.assert_raises:
  - 22
  pip._vendor.webencodings.tests.test_all_labels:
  - 64
  - 49
  - 50
  - 51
  - 52
  - 53
  - 54
  - 55
  - 56
  - 57
  - 58
  - 59
  - 60
  - 61
  - 63
  pip._vendor.webencodings.tests.test_decode:
  - 77
  - 78
  - 79
  - 80
  - 81
  - 82
  - 84
  - 85
  - 86
  - 87
  - 89
  - 90
  - 91
  - 93
  - 94
  - 95
  pip._vendor.webencodings.tests.test_encode:
  - 99
  - 100
  - 101
  - 102
  - 103
  - 104
  pip._vendor.webencodings.tests.test_invalid_label:
  - 68
  - 69
  - 70
  - 71
  - 72
  - 73
  pip._vendor.webencodings.tests.test_iter_decode:
  - 128
  - 129
  - 131
  - 111
  - 112
  - 113
  - 114
  - 115
  - 116
  - 117
  - 118
  - 119
  - 121
  - 123
  - 125
  - 126
  - 127
  pip._vendor.webencodings.tests.test_iter_decode.iter_decode_to_string:
  - 109
  - 110
  pip._vendor.webencodings.tests.test_iter_encode:
  - 136
  - 137
  - 138
  - 139
  - 140
  - 141
  - 142
  - 143
  pip._vendor.webencodings.tests.test_labels:
  - 32
  - 33
  - 34
  - 35
  - 36
  - 37
  - 38
  - 40
  - 41
  - 42
  - 43
  - 44
  - 45
  - 30
  - 31
  pip._vendor.webencodings.tests.test_x_user_defined:
  - 152
  - 153
  pip._vendor.webencodings.x_user_defined:
  - 2
  - 325
  - 50
  - 52
  - 53
  pip._vendor.webencodings.x_user_defined.Codec.decode:
  - 27
  pip._vendor.webencodings.x_user_defined.Codec.encode:
  - 24
  pip._vendor.webencodings.x_user_defined.IncrementalDecoder.decode:
  - 37
  pip._vendor.webencodings.x_user_defined.IncrementalEncoder.encode:
  - 32
  pip.main:
  - 13
  - 7
Fuzzer filename: /src/fuzz_requirements.py
Inheritance:
  pip.__pip-runner__.PipImportRedirectingFinder: []
  pip._internal.build_env.BuildEnvironment: []
  pip._internal.build_env.NoOpBuildEnvironment:
  - BuildEnvironment
  pip._internal.build_env._Prefix: []
  pip._internal.cache.Cache: []
  pip._internal.cache.CacheEntry: []
  pip._internal.cache.EphemWheelCache:
  - SimpleWheelCache
  pip._internal.cache.SimpleWheelCache:
  - Cache
  pip._internal.cache.WheelCache:
  - Cache
  pip._internal.cli.base_command.Command:
  - CommandContextMixIn
  pip._internal.cli.cmdoptions.PipOption:
  - Option
  pip._internal.cli.command_context.CommandContextMixIn: []
  pip._internal.cli.parser.ConfigOptionParser:
  - CustomOptionParser
  pip._internal.cli.parser.CustomOptionParser: []
  pip._internal.cli.parser.PrettyHelpFormatter: []
  pip._internal.cli.parser.UpdatingDefaultsHelpFormatter:
  - PrettyHelpFormatter
  pip._internal.cli.req_command.IndexGroupCommand:
  - SessionCommandMixin
  - Command
  pip._internal.cli.req_command.RequirementCommand:
  - IndexGroupCommand
  pip._internal.cli.req_command.SessionCommandMixin:
  - CommandContextMixIn
  pip._internal.cli.spinners.InteractiveSpinner:
  - SpinnerInterface
  pip._internal.cli.spinners.NonInteractiveSpinner:
  - SpinnerInterface
  pip._internal.cli.spinners.RateLimiter: []
  pip._internal.cli.spinners.SpinnerInterface: []
  pip._internal.commands.cache.CacheCommand:
  - Command
  pip._internal.commands.check.CheckCommand:
  - Command
  pip._internal.commands.completion.CompletionCommand:
  - Command
  pip._internal.commands.configuration.ConfigurationCommand:
  - Command
  pip._internal.commands.debug.DebugCommand:
  - Command
  pip._internal.commands.download.DownloadCommand:
  - RequirementCommand
  pip._internal.commands.freeze.FreezeCommand:
  - Command
  pip._internal.commands.hash.HashCommand:
  - Command
  pip._internal.commands.help.HelpCommand:
  - Command
  pip._internal.commands.index.IndexCommand:
  - IndexGroupCommand
  pip._internal.commands.inspect.InspectCommand:
  - Command
  pip._internal.commands.install.InstallCommand:
  - RequirementCommand
  pip._internal.commands.list.ListCommand:
  - IndexGroupCommand
  pip._internal.commands.list._DistWithLatestInfo:
  - BaseDistribution
  pip._internal.commands.search.SearchCommand:
  - SessionCommandMixin
  - Command
  pip._internal.commands.search.TransformedHit:
  - TypedDict
  pip._internal.commands.show.ShowCommand:
  - Command
  pip._internal.commands.show._PackageInfo:
  - NamedTuple
  pip._internal.commands.uninstall.UninstallCommand:
  - SessionCommandMixin
  - Command
  pip._internal.commands.wheel.WheelCommand:
  - RequirementCommand
  pip._internal.configuration.Configuration: []
  pip._internal.distributions.base.AbstractDistribution: []
  pip._internal.distributions.installed.InstalledDistribution:
  - AbstractDistribution
  pip._internal.distributions.sdist.SourceDistribution:
  - AbstractDistribution
  pip._internal.distributions.wheel.WheelDistribution:
  - AbstractDistribution
  pip._internal.exceptions.BadCommand:
  - PipError
  pip._internal.exceptions.BestVersionAlreadyInstalled:
  - PipError
  pip._internal.exceptions.CommandError:
  - PipError
  pip._internal.exceptions.ConfigurationError:
  - PipError
  pip._internal.exceptions.ConfigurationFileCouldNotBeLoaded:
  - ConfigurationError
  pip._internal.exceptions.DiagnosticPipError:
  - PipError
  pip._internal.exceptions.DirectoryUrlHashUnsupported:
  - HashError
  pip._internal.exceptions.DistributionNotFound:
  - InstallationError
  pip._internal.exceptions.ExternallyManagedEnvironment:
  - DiagnosticPipError
  pip._internal.exceptions.HashError:
  - InstallationError
  pip._internal.exceptions.HashErrors:
  - InstallationError
  pip._internal.exceptions.HashMismatch:
  - HashError
  pip._internal.exceptions.HashMissing:
  - HashError
  pip._internal.exceptions.HashUnpinned:
  - HashError
  pip._internal.exceptions.InstallationError:
  - PipError
  pip._internal.exceptions.InstallationSubprocessError:
  - InstallationError
  - DiagnosticPipError
  pip._internal.exceptions.InvalidPyProjectBuildRequires:
  - DiagnosticPipError
  pip._internal.exceptions.InvalidSchemeCombination:
  - InstallationError
  pip._internal.exceptions.InvalidWheel:
  - InstallationError
  pip._internal.exceptions.InvalidWheelFilename:
  - InstallationError
  pip._internal.exceptions.MetadataGenerationFailed:
  - InstallationSubprocessError
  - InstallationError
  pip._internal.exceptions.MetadataInconsistent:
  - InstallationError
  pip._internal.exceptions.MissingPyProjectBuildRequires:
  - DiagnosticPipError
  pip._internal.exceptions.NetworkConnectionError:
  - PipError
  pip._internal.exceptions.NoneMetadataError:
  - PipError
  pip._internal.exceptions.PipError:
  - Exception
  pip._internal.exceptions.PreviousBuildDirError:
  - PipError
  pip._internal.exceptions.RequirementsFileParseError:
  - InstallationError
  pip._internal.exceptions.UninstallationError:
  - PipError
  pip._internal.exceptions.UnsupportedPythonVersion:
  - InstallationError
  pip._internal.exceptions.UnsupportedWheel:
  - InstallationError
  pip._internal.exceptions.UserInstallationInvalid:
  - InstallationError
  pip._internal.exceptions.VcsHashUnsupported:
  - HashError
  pip._internal.index.collector.CacheablePageContent: []
  pip._internal.index.collector.CollectedSources:
  - NamedTuple
  pip._internal.index.collector.HTMLLinkParser:
  - HTMLParser
  pip._internal.index.collector.IndexContent: []
  pip._internal.index.collector.LinkCollector: []
  pip._internal.index.collector.ParseLinks:
  - Protocol
  pip._internal.index.collector._NotAPIContent:
  - Exception
  pip._internal.index.collector._NotHTTP:
  - Exception
  pip._internal.index.package_finder.BestCandidateResult: []
  pip._internal.index.package_finder.CandidateEvaluator: []
  pip._internal.index.package_finder.CandidatePreferences: []
  pip._internal.index.package_finder.LinkEvaluator: []
  pip._internal.index.package_finder.LinkType: []
  pip._internal.index.package_finder.PackageFinder: []
  pip._internal.index.sources.LinkSource: []
  pip._internal.index.sources._FlatDirectorySource:
  - LinkSource
  pip._internal.index.sources._FlatDirectoryToUrls: []
  pip._internal.index.sources._IndexDirectorySource:
  - LinkSource
  pip._internal.index.sources._LocalFileSource:
  - LinkSource
  pip._internal.index.sources._RemoteFileSource:
  - LinkSource
  pip._internal.metadata.Backend:
  - Protocol
  pip._internal.metadata.base.BaseDistribution:
  - Protocol
  pip._internal.metadata.base.BaseEntryPoint:
  - Protocol
  pip._internal.metadata.base.BaseEnvironment: []
  pip._internal.metadata.base.FilesystemWheel:
  - Wheel
  pip._internal.metadata.base.MemoryWheel:
  - Wheel
  pip._internal.metadata.base.RequiresEntry:
  - NamedTuple
  pip._internal.metadata.base.Wheel:
  - Protocol
  pip._internal.metadata.importlib._compat.BadMetadata:
  - ValueError
  pip._internal.metadata.importlib._compat.BasePath:
  - Protocol
  pip._internal.metadata.importlib._dists.Distribution:
  - BaseDistribution
  pip._internal.metadata.importlib._dists.WheelDistribution: []
  pip._internal.metadata.importlib._envs.Environment:
  - BaseEnvironment
  pip._internal.metadata.importlib._envs._DistributionFinder: []
  pip._internal.metadata.pkg_resources.Distribution:
  - BaseDistribution
  pip._internal.metadata.pkg_resources.EntryPoint:
  - NamedTuple
  pip._internal.metadata.pkg_resources.Environment:
  - BaseEnvironment
  pip._internal.metadata.pkg_resources.InMemoryMetadata: []
  pip._internal.models.candidate.InstallationCandidate:
  - KeyBasedCompareMixin
  pip._internal.models.direct_url.ArchiveInfo: []
  pip._internal.models.direct_url.DirInfo: []
  pip._internal.models.direct_url.DirectUrl: []
  pip._internal.models.direct_url.DirectUrlValidationError:
  - Exception
  pip._internal.models.direct_url.VcsInfo: []
  pip._internal.models.format_control.FormatControl: []
  pip._internal.models.index.PackageIndex: []
  pip._internal.models.installation_report.InstallationReport: []
  pip._internal.models.link.Link:
  - KeyBasedCompareMixin
  pip._internal.models.link.LinkHash: []
  pip._internal.models.link.MetadataFile: []
  pip._internal.models.link._CleanResult:
  - NamedTuple
  pip._internal.models.scheme.Scheme: []
  pip._internal.models.search_scope.SearchScope: []
  pip._internal.models.selection_prefs.SelectionPreferences: []
  pip._internal.models.target_python.TargetPython: []
  pip._internal.models.wheel.Wheel: []
  pip._internal.network.auth.Credentials:
  - NamedTuple
  pip._internal.network.auth.KeyRingBaseProvider:
  - ABC
  pip._internal.network.auth.KeyRingCliProvider:
  - KeyRingBaseProvider
  pip._internal.network.auth.KeyRingNullProvider:
  - KeyRingBaseProvider
  pip._internal.network.auth.KeyRingPythonProvider:
  - KeyRingBaseProvider
  pip._internal.network.auth.MultiDomainBasicAuth:
  - AuthBase
  pip._internal.network.cache.SafeFileCache:
  - SeparateBodyBaseCache
  pip._internal.network.download.BatchDownloader: []
  pip._internal.network.download.Downloader: []
  pip._internal.network.lazy_wheel.HTTPRangeRequestUnsupported:
  - Exception
  pip._internal.network.lazy_wheel.LazyZipOverHTTP: []
  pip._internal.network.session.CacheControlAdapter:
  - _BaseCacheControlAdapter
  - _SSLContextAdapterMixin
  pip._internal.network.session.HTTPAdapter:
  - _SSLContextAdapterMixin
  - _BaseHTTPAdapter
  pip._internal.network.session.InsecureCacheControlAdapter:
  - CacheControlAdapter
  pip._internal.network.session.InsecureHTTPAdapter:
  - HTTPAdapter
  pip._internal.network.session.LocalFSAdapter:
  - BaseAdapter
  pip._internal.network.session.PipSession: []
  pip._internal.network.session._SSLContextAdapterMixin: []
  pip._internal.network.xmlrpc.PipXmlrpcTransport: []
  pip._internal.operations.build.build_tracker.BuildTracker: []
  pip._internal.operations.build.build_tracker.TrackerId:
  - str
  pip._internal.operations.check.PackageDetails:
  - NamedTuple
  pip._internal.operations.freeze.FrozenRequirement: []
  pip._internal.operations.freeze._EditableInfo:
  - NamedTuple
  pip._internal.operations.install.wheel.File:
  - Protocol
  pip._internal.operations.install.wheel.MissingCallableSuffix:
  - InstallationError
  pip._internal.operations.install.wheel.PipScriptMaker:
  - ScriptMaker
  pip._internal.operations.install.wheel.ScriptFile: []
  pip._internal.operations.install.wheel.ZipBackedFile: []
  pip._internal.operations.prepare.File: []
  pip._internal.operations.prepare.RequirementPreparer: []
  pip._internal.req.InstallationResult: []
  pip._internal.req.constructors.RequirementParts: []
  pip._internal.req.req_file.OptionParsingError:
  - Exception
  pip._internal.req.req_file.ParsedLine: []
  pip._internal.req.req_file.ParsedRequirement: []
  pip._internal.req.req_file.RequirementsFileParser: []
  pip._internal.req.req_install.InstallRequirement: []
  pip._internal.req.req_set.RequirementSet: []
  pip._internal.req.req_uninstall.StashedUninstallPathSet: []
  pip._internal.req.req_uninstall.UninstallPathSet: []
  pip._internal.req.req_uninstall.UninstallPthEntries: []
  pip._internal.resolution.base.BaseResolver: []
  pip._internal.resolution.legacy.resolver.Resolver:
  - BaseResolver
  pip._internal.resolution.resolvelib.base.Candidate: []
  pip._internal.resolution.resolvelib.base.Constraint: []
  pip._internal.resolution.resolvelib.base.Requirement: []
  pip._internal.resolution.resolvelib.candidates.AlreadyInstalledCandidate:
  - Candidate
  pip._internal.resolution.resolvelib.candidates.EditableCandidate:
  - _InstallRequirementBackedCandidate
  pip._internal.resolution.resolvelib.candidates.ExtrasCandidate:
  - Candidate
  pip._internal.resolution.resolvelib.candidates.LinkCandidate:
  - _InstallRequirementBackedCandidate
  pip._internal.resolution.resolvelib.candidates.RequiresPythonCandidate:
  - Candidate
  pip._internal.resolution.resolvelib.candidates._InstallRequirementBackedCandidate:
  - Candidate
  pip._internal.resolution.resolvelib.factory.CollectedRootRequirements:
  - NamedTuple
  pip._internal.resolution.resolvelib.factory.ConflictCause:
  - Protocol
  pip._internal.resolution.resolvelib.factory.Factory: []
  pip._internal.resolution.resolvelib.found_candidates.FoundCandidates:
  - SequenceCandidate
  pip._internal.resolution.resolvelib.provider.PipProvider:
  - _ProviderBase
  pip._internal.resolution.resolvelib.reporter.PipDebuggingReporter:
  - BaseReporter
  pip._internal.resolution.resolvelib.reporter.PipReporter:
  - BaseReporter
  pip._internal.resolution.resolvelib.requirements.ExplicitRequirement:
  - Requirement
  pip._internal.resolution.resolvelib.requirements.RequiresPythonRequirement:
  - Requirement
  pip._internal.resolution.resolvelib.requirements.SpecifierRequirement:
  - Requirement
  pip._internal.resolution.resolvelib.requirements.SpecifierWithoutExtrasRequirement:
  - SpecifierRequirement
  pip._internal.resolution.resolvelib.requirements.UnsatisfiableRequirement:
  - Requirement
  pip._internal.resolution.resolvelib.resolver.Resolver:
  - BaseResolver
  pip._internal.self_outdated_check.SelfCheckState: []
  pip._internal.self_outdated_check.UpgradePrompt: []
  pip._internal.utils._log.VerboseLogger: []
  pip._internal.utils.deprecation.PipDeprecationWarning:
  - Warning
  pip._internal.utils.hashes.Hashes: []
  pip._internal.utils.hashes.MissingHashes:
  - Hashes
  pip._internal.utils.logging.BetterRotatingFileHandler: []
  pip._internal.utils.logging.BrokenStdoutLoggingError:
  - Exception
  pip._internal.utils.logging.ExcludeLoggerFilter:
  - Filter
  pip._internal.utils.logging.IndentedRenderable: []
  pip._internal.utils.logging.IndentingFormatter: []
  pip._internal.utils.logging.MaxLevelFilter:
  - Filter
  pip._internal.utils.logging.RichPipStreamHandler:
  - RichHandler
  pip._internal.utils.misc.ConfiguredBuildBackendHookCaller:
  - BuildBackendHookCaller
  pip._internal.utils.misc.HiddenText: []
  pip._internal.utils.misc.StreamWrapper:
  - StringIO
  pip._internal.utils.models.KeyBasedCompareMixin: []
  pip._internal.utils.temp_dir.AdjacentTempDirectory:
  - TempDirectory
  pip._internal.utils.temp_dir.TempDirectory: []
  pip._internal.utils.temp_dir.TempDirectoryTypeRegistry: []
  pip._internal.utils.temp_dir._Default: []
  pip._internal.vcs.bazaar.Bazaar:
  - VersionControl
  pip._internal.vcs.git.Git:
  - VersionControl
  pip._internal.vcs.mercurial.Mercurial:
  - VersionControl
  pip._internal.vcs.subversion.Subversion:
  - VersionControl
  pip._internal.vcs.versioncontrol.RemoteNotFoundError:
  - Exception
  pip._internal.vcs.versioncontrol.RemoteNotValidError:
  - Exception
  pip._internal.vcs.versioncontrol.RevOptions: []
  pip._internal.vcs.versioncontrol.VcsSupport: []
  pip._internal.vcs.versioncontrol.VersionControl: []
  pip._vendor.cachecontrol.adapter.CacheControlAdapter:
  - HTTPAdapter
  pip._vendor.cachecontrol.cache.BaseCache: []
  pip._vendor.cachecontrol.cache.DictCache:
  - BaseCache
  pip._vendor.cachecontrol.cache.SeparateBodyBaseCache:
  - BaseCache
  pip._vendor.cachecontrol.caches.file_cache.FileCache:
  - BaseCache
  - _FileCacheMixin
  pip._vendor.cachecontrol.caches.file_cache.SeparateBodyFileCache:
  - SeparateBodyBaseCache
  - _FileCacheMixin
  pip._vendor.cachecontrol.caches.file_cache._FileCacheMixin: []
  pip._vendor.cachecontrol.caches.redis_cache.RedisCache:
  - BaseCache
  pip._vendor.cachecontrol.controller.CacheController: []
  pip._vendor.cachecontrol.filewrapper.CallbackFileWrapper: []
  pip._vendor.cachecontrol.heuristics.BaseHeuristic: []
  pip._vendor.cachecontrol.heuristics.ExpiresAfter:
  - BaseHeuristic
  pip._vendor.cachecontrol.heuristics.LastModified:
  - BaseHeuristic
  pip._vendor.cachecontrol.heuristics.OneDayCache:
  - BaseHeuristic
  pip._vendor.cachecontrol.serialize.Serializer: []
  pip._vendor.chardet.big5prober.Big5Prober:
  - MultiByteCharSetProber
  pip._vendor.chardet.chardistribution.Big5DistributionAnalysis:
  - CharDistributionAnalysis
  pip._vendor.chardet.chardistribution.CharDistributionAnalysis: []
  pip._vendor.chardet.chardistribution.EUCJPDistributionAnalysis:
  - CharDistributionAnalysis
  pip._vendor.chardet.chardistribution.EUCKRDistributionAnalysis:
  - CharDistributionAnalysis
  pip._vendor.chardet.chardistribution.EUCTWDistributionAnalysis:
  - CharDistributionAnalysis
  pip._vendor.chardet.chardistribution.GB2312DistributionAnalysis:
  - CharDistributionAnalysis
  pip._vendor.chardet.chardistribution.JOHABDistributionAnalysis:
  - CharDistributionAnalysis
  pip._vendor.chardet.chardistribution.SJISDistributionAnalysis:
  - CharDistributionAnalysis
  pip._vendor.chardet.charsetgroupprober.CharSetGroupProber:
  - CharSetProber
  pip._vendor.chardet.charsetprober.CharSetProber: []
  pip._vendor.chardet.codingstatemachine.CodingStateMachine: []
  pip._vendor.chardet.codingstatemachinedict.CodingStateMachineDict:
  - TypedDict
  pip._vendor.chardet.cp949prober.CP949Prober:
  - MultiByteCharSetProber
  pip._vendor.chardet.enums.CharacterCategory: []
  pip._vendor.chardet.enums.InputState: []
  pip._vendor.chardet.enums.LanguageFilter:
  - Flag
  pip._vendor.chardet.enums.MachineState: []
  pip._vendor.chardet.enums.ProbingState:
  - Enum
  pip._vendor.chardet.enums.SequenceLikelihood: []
  pip._vendor.chardet.escprober.EscCharSetProber:
  - CharSetProber
  pip._vendor.chardet.eucjpprober.EUCJPProber:
  - MultiByteCharSetProber
  pip._vendor.chardet.euckrprober.EUCKRProber:
  - MultiByteCharSetProber
  pip._vendor.chardet.euctwprober.EUCTWProber:
  - MultiByteCharSetProber
  pip._vendor.chardet.gb2312prober.GB2312Prober:
  - MultiByteCharSetProber
  pip._vendor.chardet.hebrewprober.HebrewProber:
  - CharSetProber
  pip._vendor.chardet.johabprober.JOHABProber:
  - MultiByteCharSetProber
  pip._vendor.chardet.jpcntx.EUCJPContextAnalysis:
  - JapaneseContextAnalysis
  pip._vendor.chardet.jpcntx.JapaneseContextAnalysis: []
  pip._vendor.chardet.jpcntx.SJISContextAnalysis:
  - JapaneseContextAnalysis
  pip._vendor.chardet.latin1prober.Latin1Prober:
  - CharSetProber
  pip._vendor.chardet.macromanprober.MacRomanProber:
  - CharSetProber
  pip._vendor.chardet.mbcharsetprober.MultiByteCharSetProber:
  - CharSetProber
  pip._vendor.chardet.mbcsgroupprober.MBCSGroupProber:
  - CharSetGroupProber
  pip._vendor.chardet.metadata.languages.Language: []
  pip._vendor.chardet.resultdict.ResultDict:
  - TypedDict
  pip._vendor.chardet.sbcharsetprober.SingleByteCharSetModel:
  - NamedTuple
  pip._vendor.chardet.sbcharsetprober.SingleByteCharSetProber:
  - CharSetProber
  pip._vendor.chardet.sbcsgroupprober.SBCSGroupProber:
  - CharSetGroupProber
  pip._vendor.chardet.sjisprober.SJISProber:
  - MultiByteCharSetProber
  pip._vendor.chardet.universaldetector.UniversalDetector: []
  pip._vendor.chardet.utf1632prober.UTF1632Prober:
  - CharSetProber
  pip._vendor.chardet.utf8prober.UTF8Prober:
  - CharSetProber
  pip._vendor.colorama.ansi.AnsiBack:
  - AnsiCodes
  pip._vendor.colorama.ansi.AnsiCodes:
  - object
  pip._vendor.colorama.ansi.AnsiCursor:
  - object
  pip._vendor.colorama.ansi.AnsiFore:
  - AnsiCodes
  pip._vendor.colorama.ansi.AnsiStyle:
  - AnsiCodes
  pip._vendor.colorama.ansitowin32.AnsiToWin32:
  - object
  pip._vendor.colorama.ansitowin32.StreamWrapper:
  - object
  pip._vendor.colorama.win32.CONSOLE_SCREEN_BUFFER_INFO:
  - Structure
  pip._vendor.colorama.winterm.WinColor:
  - object
  pip._vendor.colorama.winterm.WinStyle:
  - object
  pip._vendor.colorama.winterm.WinTerm:
  - object
  pip._vendor.distlib.DistlibException:
  - Exception
  pip._vendor.distlib.NullHandler: []
  pip._vendor.distlib.compat.BaseConfigurator:
  - object
  pip._vendor.distlib.compat.CertificateError:
  - ValueError
  pip._vendor.distlib.compat.ChainMap:
  - MutableMapping
  pip._vendor.distlib.compat.Container:
  - object
  pip._vendor.distlib.compat.ConvertingDict:
  - dict
  pip._vendor.distlib.compat.ConvertingList:
  - list
  pip._vendor.distlib.compat.ConvertingTuple:
  - tuple
  pip._vendor.distlib.compat.OrderedDict:
  - dict
  pip._vendor.distlib.compat.ZipExtFile:
  - BaseZipExtFile
  pip._vendor.distlib.compat.ZipFile:
  - BaseZipFile
  pip._vendor.distlib.database.BaseInstalledDistribution:
  - Distribution
  pip._vendor.distlib.database.DependencyGraph:
  - object
  pip._vendor.distlib.database.Distribution:
  - object
  pip._vendor.distlib.database.DistributionPath:
  - object
  pip._vendor.distlib.database.EggInfoDistribution:
  - BaseInstalledDistribution
  pip._vendor.distlib.database.InstalledDistribution:
  - BaseInstalledDistribution
  pip._vendor.distlib.database._Cache:
  - object
  pip._vendor.distlib.index.PackageIndex:
  - object
  pip._vendor.distlib.locators.AggregatingLocator:
  - Locator
  pip._vendor.distlib.locators.DependencyFinder:
  - object
  pip._vendor.distlib.locators.DirectoryLocator:
  - Locator
  pip._vendor.distlib.locators.DistPathLocator:
  - Locator
  pip._vendor.distlib.locators.JSONLocator:
  - Locator
  pip._vendor.distlib.locators.Locator:
  - object
  pip._vendor.distlib.locators.Page:
  - object
  pip._vendor.distlib.locators.PyPIJSONLocator:
  - Locator
  pip._vendor.distlib.locators.PyPIRPCLocator:
  - Locator
  pip._vendor.distlib.locators.RedirectHandler:
  - BaseRedirectHandler
  pip._vendor.distlib.locators.SimpleScrapingLocator:
  - Locator
  pip._vendor.distlib.manifest.Manifest:
  - object
  pip._vendor.distlib.markers.Evaluator:
  - object
  pip._vendor.distlib.metadata.LegacyMetadata:
  - object
  pip._vendor.distlib.metadata.Metadata:
  - object
  pip._vendor.distlib.metadata.MetadataConflictError:
  - DistlibException
  pip._vendor.distlib.metadata.MetadataInvalidError:
  - DistlibException
  pip._vendor.distlib.metadata.MetadataMissingError:
  - DistlibException
  pip._vendor.distlib.metadata.MetadataUnrecognizedVersionError:
  - DistlibException
  pip._vendor.distlib.resources.Resource:
  - ResourceBase
  pip._vendor.distlib.resources.ResourceBase:
  - object
  pip._vendor.distlib.resources.ResourceCache:
  - Cache
  pip._vendor.distlib.resources.ResourceContainer:
  - ResourceBase
  pip._vendor.distlib.resources.ResourceFinder:
  - object
  pip._vendor.distlib.resources.ZipResourceFinder:
  - ResourceFinder
  pip._vendor.distlib.scripts.ScriptMaker:
  - object
  pip._vendor.distlib.util.CSVBase:
  - object
  pip._vendor.distlib.util.CSVReader:
  - CSVBase
  pip._vendor.distlib.util.CSVWriter:
  - CSVBase
  pip._vendor.distlib.util.Cache:
  - object
  pip._vendor.distlib.util.Configurator:
  - BaseConfigurator
  pip._vendor.distlib.util.EventMixin:
  - object
  pip._vendor.distlib.util.ExportEntry:
  - object
  pip._vendor.distlib.util.FileOperator:
  - object
  pip._vendor.distlib.util.HTTPSConnection: []
  pip._vendor.distlib.util.HTTPSHandler:
  - BaseHTTPSHandler
  pip._vendor.distlib.util.HTTPSOnlyHandler:
  - HTTPSHandler
  - HTTPHandler
  pip._vendor.distlib.util.Progress:
  - object
  pip._vendor.distlib.util.PyPIRCFile:
  - object
  pip._vendor.distlib.util.SafeTransport: []
  pip._vendor.distlib.util.Sequencer:
  - object
  pip._vendor.distlib.util.ServerProxy: []
  pip._vendor.distlib.util.SubprocessMixin:
  - object
  pip._vendor.distlib.util.Transport: []
  pip._vendor.distlib.util.cached_property:
  - object
  pip._vendor.distlib.version.LegacyMatcher:
  - Matcher
  pip._vendor.distlib.version.LegacyVersion:
  - Version
  pip._vendor.distlib.version.Matcher:
  - object
  pip._vendor.distlib.version.NormalizedMatcher:
  - Matcher
  pip._vendor.distlib.version.NormalizedVersion:
  - Version
  pip._vendor.distlib.version.SemanticMatcher:
  - Matcher
  pip._vendor.distlib.version.SemanticVersion:
  - Version
  pip._vendor.distlib.version.UnsupportedVersionError:
  - ValueError
  pip._vendor.distlib.version.Version:
  - object
  pip._vendor.distlib.version.VersionScheme:
  - object
  pip._vendor.distlib.wheel.Mounter:
  - object
  pip._vendor.distlib.wheel.Wheel:
  - object
  pip._vendor.distro.distro.InfoDict:
  - TypedDict
  pip._vendor.distro.distro.LinuxDistribution: []
  pip._vendor.distro.distro.VersionDict:
  - TypedDict
  pip._vendor.distro.distro.cached_property: []
  pip._vendor.idna.codec.Codec: []
  pip._vendor.idna.codec.IncrementalDecoder: []
  pip._vendor.idna.codec.IncrementalEncoder: []
  pip._vendor.idna.codec.StreamReader:
  - Codec
  pip._vendor.idna.codec.StreamWriter:
  - Codec
  pip._vendor.idna.core.IDNABidiError:
  - IDNAError
  pip._vendor.idna.core.IDNAError:
  - UnicodeError
  pip._vendor.idna.core.InvalidCodepoint:
  - IDNAError
  pip._vendor.idna.core.InvalidCodepointContext:
  - IDNAError
  pip._vendor.msgpack.exceptions.BufferFull:
  - UnpackException
  pip._vendor.msgpack.exceptions.ExtraData:
  - UnpackValueError
  pip._vendor.msgpack.exceptions.FormatError:
  - ValueError
  - UnpackException
  pip._vendor.msgpack.exceptions.OutOfData:
  - UnpackException
  pip._vendor.msgpack.exceptions.StackError:
  - ValueError
  - UnpackException
  pip._vendor.msgpack.exceptions.UnpackException:
  - Exception
  pip._vendor.msgpack.ext.ExtType: []
  pip._vendor.msgpack.ext.Timestamp:
  - object
  pip._vendor.msgpack.fallback.Packer:
  - object
  pip._vendor.msgpack.fallback.StringIO:
  - object
  pip._vendor.msgpack.fallback.Unpacker:
  - object
  pip._vendor.packaging._manylinux._ELFFileHeader: []
  pip._vendor.packaging._manylinux._ELFFileHeader._InvalidELFFileHeader:
  - ValueError
  pip._vendor.packaging._manylinux._GLibCVersion:
  - NamedTuple
  pip._vendor.packaging._musllinux._MuslVersion:
  - NamedTuple
  pip._vendor.packaging._structures.InfinityType: []
  pip._vendor.packaging._structures.NegativeInfinityType: []
  pip._vendor.packaging.markers.InvalidMarker:
  - ValueError
  pip._vendor.packaging.markers.Marker: []
  pip._vendor.packaging.markers.Node: []
  pip._vendor.packaging.markers.Op:
  - Node
  pip._vendor.packaging.markers.Undefined: []
  pip._vendor.packaging.markers.UndefinedComparison:
  - ValueError
  pip._vendor.packaging.markers.UndefinedEnvironmentName:
  - ValueError
  pip._vendor.packaging.markers.Value:
  - Node
  pip._vendor.packaging.markers.Variable:
  - Node
  pip._vendor.packaging.requirements.InvalidRequirement:
  - ValueError
  pip._vendor.packaging.requirements.Requirement: []
  pip._vendor.packaging.specifiers.BaseSpecifier: []
  pip._vendor.packaging.specifiers.InvalidSpecifier:
  - ValueError
  pip._vendor.packaging.specifiers.LegacySpecifier:
  - _IndividualSpecifier
  pip._vendor.packaging.specifiers.Specifier:
  - _IndividualSpecifier
  pip._vendor.packaging.specifiers.SpecifierSet:
  - BaseSpecifier
  pip._vendor.packaging.specifiers._IndividualSpecifier:
  - BaseSpecifier
  pip._vendor.packaging.tags.Tag: []
  pip._vendor.packaging.utils.InvalidSdistFilename:
  - ValueError
  pip._vendor.packaging.utils.InvalidWheelFilename:
  - ValueError
  pip._vendor.packaging.version.InvalidVersion:
  - ValueError
  pip._vendor.packaging.version.LegacyVersion:
  - _BaseVersion
  pip._vendor.packaging.version.Version:
  - _BaseVersion
  pip._vendor.packaging.version._BaseVersion: []
  pip._vendor.pkg_resources.ContextualVersionConflict:
  - VersionConflict
  pip._vendor.pkg_resources.DefaultProvider:
  - EggProvider
  pip._vendor.pkg_resources.DistInfoDistribution:
  - Distribution
  pip._vendor.pkg_resources.Distribution: []
  pip._vendor.pkg_resources.DistributionNotFound:
  - ResolutionError
  pip._vendor.pkg_resources.EggInfoDistribution:
  - Distribution
  pip._vendor.pkg_resources.EggMetadata:
  - ZipProvider
  pip._vendor.pkg_resources.EggProvider:
  - NullProvider
  pip._vendor.pkg_resources.EmptyProvider:
  - NullProvider
  pip._vendor.pkg_resources.EntryPoint: []
  pip._vendor.pkg_resources.Environment: []
  pip._vendor.pkg_resources.ExtractionError:
  - RuntimeError
  pip._vendor.pkg_resources.FileMetadata:
  - EmptyProvider
  pip._vendor.pkg_resources.IMetadataProvider: []
  pip._vendor.pkg_resources.IResourceProvider:
  - IMetadataProvider
  pip._vendor.pkg_resources.MemoizedZipManifests:
  - ZipManifests
  pip._vendor.pkg_resources.NoDists: []
  pip._vendor.pkg_resources.NullProvider: []
  pip._vendor.pkg_resources.PEP440Warning:
  - RuntimeWarning
  pip._vendor.pkg_resources.PathMetadata:
  - DefaultProvider
  pip._vendor.pkg_resources.PkgResourcesDeprecationWarning:
  - Warning
  pip._vendor.pkg_resources.Requirement: []
  pip._vendor.pkg_resources.RequirementParseError: []
  pip._vendor.pkg_resources.ResolutionError:
  - Exception
  pip._vendor.pkg_resources.ResourceManager: []
  pip._vendor.pkg_resources.UnknownExtra:
  - ResolutionError
  pip._vendor.pkg_resources.VersionConflict:
  - ResolutionError
  pip._vendor.pkg_resources.WorkingSet: []
  pip._vendor.pkg_resources.ZipManifests:
  - dict
  pip._vendor.pkg_resources.ZipProvider:
  - EggProvider
  pip._vendor.pkg_resources._ReqExtras:
  - dict
  pip._vendor.platformdirs.android.Android:
  - PlatformDirsABC
  pip._vendor.platformdirs.api.PlatformDirsABC:
  - ABC
  pip._vendor.platformdirs.macos.MacOS:
  - PlatformDirsABC
  pip._vendor.platformdirs.unix.Unix:
  - PlatformDirsABC
  pip._vendor.platformdirs.windows.Windows:
  - PlatformDirsABC
  pip._vendor.pygments.cmdline.HelpFormatter: []
  pip._vendor.pygments.filter.Filter: []
  pip._vendor.pygments.filter.FunctionFilter:
  - Filter
  pip._vendor.pygments.filters.CodeTagFilter:
  - Filter
  pip._vendor.pygments.filters.ErrorToken:
  - Exception
  pip._vendor.pygments.filters.GobbleFilter:
  - Filter
  pip._vendor.pygments.filters.KeywordCaseFilter:
  - Filter
  pip._vendor.pygments.filters.NameHighlightFilter:
  - Filter
  pip._vendor.pygments.filters.RaiseOnErrorTokenFilter:
  - Filter
  pip._vendor.pygments.filters.SymbolFilter:
  - Filter
  pip._vendor.pygments.filters.TokenMergeFilter:
  - Filter
  pip._vendor.pygments.filters.VisibleWhitespaceFilter:
  - Filter
  pip._vendor.pygments.formatter.Formatter: []
  pip._vendor.pygments.formatters._automodule: []
  pip._vendor.pygments.formatters.bbcode.BBCodeFormatter:
  - Formatter
  pip._vendor.pygments.formatters.groff.GroffFormatter:
  - Formatter
  pip._vendor.pygments.formatters.html.HtmlFormatter:
  - Formatter
  pip._vendor.pygments.formatters.img.BmpImageFormatter:
  - ImageFormatter
  pip._vendor.pygments.formatters.img.FontManager: []
  pip._vendor.pygments.formatters.img.FontNotFound:
  - Exception
  pip._vendor.pygments.formatters.img.GifImageFormatter:
  - ImageFormatter
  pip._vendor.pygments.formatters.img.ImageFormatter:
  - Formatter
  pip._vendor.pygments.formatters.img.JpgImageFormatter:
  - ImageFormatter
  pip._vendor.pygments.formatters.img.PilNotAvailable:
  - ImportError
  pip._vendor.pygments.formatters.irc.IRCFormatter:
  - Formatter
  pip._vendor.pygments.formatters.latex.LatexEmbeddedLexer:
  - Lexer
  pip._vendor.pygments.formatters.latex.LatexFormatter:
  - Formatter
  pip._vendor.pygments.formatters.other.NullFormatter:
  - Formatter
  pip._vendor.pygments.formatters.other.RawTokenFormatter:
  - Formatter
  pip._vendor.pygments.formatters.other.TestcaseFormatter:
  - Formatter
  pip._vendor.pygments.formatters.pangomarkup.PangoMarkupFormatter:
  - Formatter
  pip._vendor.pygments.formatters.rtf.RtfFormatter:
  - Formatter
  pip._vendor.pygments.formatters.svg.SvgFormatter:
  - Formatter
  pip._vendor.pygments.formatters.terminal.TerminalFormatter:
  - Formatter
  pip._vendor.pygments.formatters.terminal256.EscapeSequence: []
  pip._vendor.pygments.formatters.terminal256.Terminal256Formatter:
  - Formatter
  pip._vendor.pygments.formatters.terminal256.TerminalTrueColorFormatter:
  - Terminal256Formatter
  pip._vendor.pygments.lexer.DelegatingLexer:
  - Lexer
  pip._vendor.pygments.lexer.ExtendedRegexLexer:
  - RegexLexer
  pip._vendor.pygments.lexer.Lexer: []
  pip._vendor.pygments.lexer.LexerContext: []
  pip._vendor.pygments.lexer.LexerMeta:
  - type
  pip._vendor.pygments.lexer.ProfilingRegexLexer:
  - RegexLexer
  pip._vendor.pygments.lexer.ProfilingRegexLexerMeta:
  - RegexLexerMeta
  pip._vendor.pygments.lexer.RegexLexer:
  - Lexer
  pip._vendor.pygments.lexer.RegexLexerMeta:
  - LexerMeta
  pip._vendor.pygments.lexer._PseudoMatch: []
  pip._vendor.pygments.lexer._This: []
  pip._vendor.pygments.lexer._inherit: []
  pip._vendor.pygments.lexer.combined:
  - tuple
  pip._vendor.pygments.lexer.default: []
  pip._vendor.pygments.lexer.include:
  - str
  pip._vendor.pygments.lexer.words:
  - Future
  pip._vendor.pygments.lexers._automodule: []
  pip._vendor.pygments.lexers.python.CythonLexer:
  - RegexLexer
  pip._vendor.pygments.lexers.python.DgLexer:
  - RegexLexer
  pip._vendor.pygments.lexers.python.NumPyLexer:
  - PythonLexer
  pip._vendor.pygments.lexers.python.Python2Lexer:
  - RegexLexer
  pip._vendor.pygments.lexers.python.Python2TracebackLexer:
  - RegexLexer
  pip._vendor.pygments.lexers.python.PythonConsoleLexer:
  - DelegatingLexer
  pip._vendor.pygments.lexers.python.PythonConsoleLexer.__init__._ReplaceInnerCode:
  - DelegatingLexer
  pip._vendor.pygments.lexers.python.PythonLexer:
  - RegexLexer
  pip._vendor.pygments.lexers.python.PythonTracebackLexer:
  - RegexLexer
  pip._vendor.pygments.lexers.python._PythonConsoleLexerBase:
  - RegexLexer
  pip._vendor.pygments.scanner.EndOfText:
  - RuntimeError
  pip._vendor.pygments.scanner.Scanner: []
  pip._vendor.pygments.sphinxext.PygmentsDoc:
  - Directive
  pip._vendor.pygments.style.Style: []
  pip._vendor.pygments.style.StyleMeta:
  - type
  pip._vendor.pygments.token._TokenType:
  - tuple
  pip._vendor.pygments.util.ClassNotFound:
  - ValueError
  pip._vendor.pygments.util.Future: []
  pip._vendor.pygments.util.OptionError:
  - Exception
  pip._vendor.pygments.util.UnclosingTextIOWrapper:
  - TextIOWrapper
  pip._vendor.pyparsing.actions.OnlyOnce: []
  pip._vendor.pyparsing.common.pyparsing_common: []
  pip._vendor.pyparsing.core.And:
  - ParseExpression
  pip._vendor.pyparsing.core.And._ErrorStop:
  - Empty
  pip._vendor.pyparsing.core.AtLineStart:
  - ParseElementEnhance
  pip._vendor.pyparsing.core.AtStringStart:
  - ParseElementEnhance
  pip._vendor.pyparsing.core.CaselessKeyword:
  - Keyword
  pip._vendor.pyparsing.core.CaselessLiteral:
  - Literal
  pip._vendor.pyparsing.core.Char:
  - Word
  pip._vendor.pyparsing.core.CharsNotIn:
  - Token
  pip._vendor.pyparsing.core.CloseMatch:
  - Token
  pip._vendor.pyparsing.core.Combine:
  - TokenConverter
  pip._vendor.pyparsing.core.DelimitedList:
  - ParseElementEnhance
  pip._vendor.pyparsing.core.Diagnostics:
  - Enum
  pip._vendor.pyparsing.core.Dict:
  - TokenConverter
  pip._vendor.pyparsing.core.Each:
  - ParseExpression
  pip._vendor.pyparsing.core.Empty:
  - Literal
  pip._vendor.pyparsing.core.FollowedBy:
  - ParseElementEnhance
  pip._vendor.pyparsing.core.Forward:
  - ParseElementEnhance
  pip._vendor.pyparsing.core.GoToColumn:
  - PositionToken
  pip._vendor.pyparsing.core.Group:
  - TokenConverter
  pip._vendor.pyparsing.core.IndentedBlock:
  - ParseElementEnhance
  pip._vendor.pyparsing.core.IndentedBlock._Indent:
  - Empty
  pip._vendor.pyparsing.core.IndentedBlock._IndentGreater:
  - Empty
  pip._vendor.pyparsing.core.Keyword:
  - Token
  pip._vendor.pyparsing.core.LineEnd:
  - PositionToken
  pip._vendor.pyparsing.core.LineStart:
  - PositionToken
  pip._vendor.pyparsing.core.Literal:
  - Token
  pip._vendor.pyparsing.core.Located:
  - ParseElementEnhance
  pip._vendor.pyparsing.core.MatchFirst:
  - ParseExpression
  pip._vendor.pyparsing.core.NoMatch:
  - Token
  pip._vendor.pyparsing.core.NotAny:
  - ParseElementEnhance
  pip._vendor.pyparsing.core.OneOrMore:
  - _MultipleMatch
  pip._vendor.pyparsing.core.Opt:
  - ParseElementEnhance
  pip._vendor.pyparsing.core.Or:
  - ParseExpression
  pip._vendor.pyparsing.core.ParseElementEnhance:
  - ParserElement
  pip._vendor.pyparsing.core.ParseExpression:
  - ParserElement
  pip._vendor.pyparsing.core.ParserElement:
  - ABC
  pip._vendor.pyparsing.core.ParserElement.DebugActions:
  - NamedTuple
  pip._vendor.pyparsing.core.ParserElement._CacheType:
  - dict
  pip._vendor.pyparsing.core.PositionToken:
  - Token
  pip._vendor.pyparsing.core.PrecededBy:
  - ParseElementEnhance
  pip._vendor.pyparsing.core.QuotedString:
  - Token
  pip._vendor.pyparsing.core.Regex:
  - Token
  pip._vendor.pyparsing.core.SkipTo:
  - ParseElementEnhance
  pip._vendor.pyparsing.core.StringEnd:
  - PositionToken
  pip._vendor.pyparsing.core.StringStart:
  - PositionToken
  pip._vendor.pyparsing.core.Suppress:
  - TokenConverter
  pip._vendor.pyparsing.core.Token:
  - ParserElement
  pip._vendor.pyparsing.core.TokenConverter:
  - ParseElementEnhance
  pip._vendor.pyparsing.core.White:
  - Token
  pip._vendor.pyparsing.core.Word:
  - Token
  pip._vendor.pyparsing.core.WordEnd:
  - PositionToken
  pip._vendor.pyparsing.core.WordStart:
  - PositionToken
  pip._vendor.pyparsing.core.ZeroOrMore:
  - _MultipleMatch
  pip._vendor.pyparsing.core._MultipleMatch:
  - ParseElementEnhance
  pip._vendor.pyparsing.core._NullToken: []
  pip._vendor.pyparsing.core._PendingSkip:
  - ParserElement
  pip._vendor.pyparsing.core._SingleCharLiteral:
  - Literal
  pip._vendor.pyparsing.core.__compat__:
  - __config_flags
  pip._vendor.pyparsing.core.__diag__:
  - __config_flags
  pip._vendor.pyparsing.core.cached_property: []
  pip._vendor.pyparsing.diagram.AnnotatedItem: []
  pip._vendor.pyparsing.diagram.ConverterState: []
  pip._vendor.pyparsing.diagram.EachItem: []
  pip._vendor.pyparsing.diagram.EditablePartial: []
  pip._vendor.pyparsing.diagram.ElementState: []
  pip._vendor.pyparsing.exceptions.ExceptionWordUnicode: []
  pip._vendor.pyparsing.exceptions.ParseBaseException:
  - Exception
  pip._vendor.pyparsing.exceptions.ParseException:
  - ParseBaseException
  pip._vendor.pyparsing.exceptions.ParseFatalException:
  - ParseBaseException
  pip._vendor.pyparsing.exceptions.ParseSyntaxException:
  - ParseFatalException
  pip._vendor.pyparsing.exceptions.RecursiveGrammarException:
  - Exception
  pip._vendor.pyparsing.helpers.OpAssoc:
  - Enum
  pip._vendor.pyparsing.helpers.infix_notation._FB:
  - FollowedBy
  pip._vendor.pyparsing.results.ParseResults: []
  pip._vendor.pyparsing.results.ParseResults.List:
  - list
  pip._vendor.pyparsing.results._ParseResultsWithOffset: []
  pip._vendor.pyparsing.testing.pyparsing_test: []
  pip._vendor.pyparsing.testing.pyparsing_test.TestParseResultsAsserts: []
  pip._vendor.pyparsing.testing.pyparsing_test.reset_pyparsing_context: []
  pip._vendor.pyparsing.unicode._lazyclassproperty: []
  pip._vendor.pyparsing.unicode.pyparsing_unicode:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Arabic:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.BasicMultilingualPlane:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.CJK:
  - Chinese
  - Hangul
  - Japanese
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Chinese:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Cyrillic:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Devanagari:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Greek:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Hangul:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Hebrew:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Japanese:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Japanese.Hiragana:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Japanese.Kanji:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Japanese.Katakana:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Latin1:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.LatinA:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.LatinB:
  - unicode_set
  pip._vendor.pyparsing.unicode.pyparsing_unicode.Thai:
  - unicode_set
  pip._vendor.pyparsing.unicode.unicode_set: []
  pip._vendor.pyparsing.util.LRUMemo: []
  pip._vendor.pyparsing.util.UnboundedMemo:
  - dict
  pip._vendor.pyparsing.util._FifoCache: []
  pip._vendor.pyparsing.util._UnboundedCache: []
  pip._vendor.pyparsing.util.__config_flags: []
  pip._vendor.pyparsing.version_info:
  - NamedTuple
  pip._vendor.pyproject_hooks._impl.BackendInvalid:
  - Exception
  pip._vendor.pyproject_hooks._impl.BackendUnavailable:
  - Exception
  pip._vendor.pyproject_hooks._impl.BuildBackendHookCaller: []
  pip._vendor.pyproject_hooks._impl.HookMissing:
  - Exception
  pip._vendor.pyproject_hooks._impl.UnsupportedOperation:
  - Exception
  pip._vendor.pyproject_hooks._in_process._in_process.BackendInvalid:
  - Exception
  pip._vendor.pyproject_hooks._in_process._in_process.BackendUnavailable:
  - Exception
  pip._vendor.pyproject_hooks._in_process._in_process.GotUnsupportedOperation:
  - Exception
  pip._vendor.pyproject_hooks._in_process._in_process.HookMissing:
  - Exception
  pip._vendor.pyproject_hooks._in_process._in_process._DummyException:
  - Exception
  pip._vendor.requests.adapters.BaseAdapter: []
  pip._vendor.requests.adapters.HTTPAdapter:
  - BaseAdapter
  pip._vendor.requests.auth.AuthBase: []
  pip._vendor.requests.auth.HTTPBasicAuth:
  - AuthBase
  pip._vendor.requests.auth.HTTPDigestAuth:
  - AuthBase
  pip._vendor.requests.auth.HTTPProxyAuth:
  - HTTPBasicAuth
  pip._vendor.requests.cookies.CookieConflictError:
  - RuntimeError
  pip._vendor.requests.cookies.MockRequest: []
  pip._vendor.requests.cookies.MockResponse: []
  pip._vendor.requests.cookies.RequestsCookieJar:
  - MutableMapping
  pip._vendor.requests.exceptions.ChunkedEncodingError:
  - RequestException
  pip._vendor.requests.exceptions.ConnectTimeout:
  - ConnectionError
  - Timeout
  pip._vendor.requests.exceptions.ConnectionError:
  - RequestException
  pip._vendor.requests.exceptions.ContentDecodingError:
  - RequestException
  - BaseHTTPError
  pip._vendor.requests.exceptions.FileModeWarning:
  - DeprecationWarning
  - RequestsWarning
  pip._vendor.requests.exceptions.HTTPError:
  - RequestException
  pip._vendor.requests.exceptions.InvalidHeader:
  - RequestException
  - ValueError
  pip._vendor.requests.exceptions.InvalidJSONError:
  - RequestException
  pip._vendor.requests.exceptions.InvalidProxyURL:
  - InvalidURL
  pip._vendor.requests.exceptions.InvalidSchema:
  - RequestException
  - ValueError
  pip._vendor.requests.exceptions.InvalidURL:
  - RequestException
  - ValueError
  pip._vendor.requests.exceptions.JSONDecodeError:
  - CompatJSONDecodeError
  - InvalidJSONError
  pip._vendor.requests.exceptions.MissingSchema:
  - RequestException
  - ValueError
  pip._vendor.requests.exceptions.ProxyError:
  - ConnectionError
  pip._vendor.requests.exceptions.ReadTimeout:
  - Timeout
  pip._vendor.requests.exceptions.RequestException:
  - IOError
  pip._vendor.requests.exceptions.RequestsDependencyWarning:
  - RequestsWarning
  pip._vendor.requests.exceptions.RequestsWarning:
  - Warning
  pip._vendor.requests.exceptions.RetryError:
  - RequestException
  pip._vendor.requests.exceptions.SSLError:
  - ConnectionError
  pip._vendor.requests.exceptions.StreamConsumedError:
  - RequestException
  - TypeError
  pip._vendor.requests.exceptions.Timeout:
  - RequestException
  pip._vendor.requests.exceptions.TooManyRedirects:
  - RequestException
  pip._vendor.requests.exceptions.URLRequired:
  - RequestException
  pip._vendor.requests.exceptions.UnrewindableBodyError:
  - RequestException
  pip._vendor.requests.models.PreparedRequest:
  - RequestEncodingMixin
  - RequestHooksMixin
  pip._vendor.requests.models.Request:
  - RequestHooksMixin
  pip._vendor.requests.models.RequestEncodingMixin: []
  pip._vendor.requests.models.RequestHooksMixin: []
  pip._vendor.requests.models.Response: []
  pip._vendor.requests.sessions.Session:
  - SessionRedirectMixin
  pip._vendor.requests.sessions.SessionRedirectMixin: []
  pip._vendor.requests.structures.CaseInsensitiveDict:
  - MutableMapping
  pip._vendor.requests.structures.LookupDict:
  - dict
  pip._vendor.resolvelib.providers.AbstractProvider:
  - object
  pip._vendor.resolvelib.providers.AbstractResolver:
  - object
  pip._vendor.resolvelib.reporters.BaseReporter:
  - object
  pip._vendor.resolvelib.resolvers.Criterion:
  - object
  pip._vendor.resolvelib.resolvers.InconsistentCandidate:
  - ResolverException
  pip._vendor.resolvelib.resolvers.RequirementsConflicted:
  - ResolverException
  pip._vendor.resolvelib.resolvers.Resolution:
  - object
  pip._vendor.resolvelib.resolvers.ResolutionError:
  - ResolverException
  pip._vendor.resolvelib.resolvers.ResolutionImpossible:
  - ResolutionError
  pip._vendor.resolvelib.resolvers.ResolutionTooDeep:
  - ResolutionError
  pip._vendor.resolvelib.resolvers.Resolver:
  - AbstractResolver
  pip._vendor.resolvelib.resolvers.ResolverException:
  - Exception
  pip._vendor.resolvelib.structs.DirectedGraph:
  - object
  pip._vendor.resolvelib.structs.IteratorMapping: []
  pip._vendor.resolvelib.structs._FactoryIterableView:
  - object
  pip._vendor.resolvelib.structs._SequenceIterableView:
  - object
  pip._vendor.rich.__main__.ColorBox: []
  pip._vendor.rich._inspect.Inspect:
  - JupyterMixin
  pip._vendor.rich._log_render.LogRender: []
  pip._vendor.rich._null_file.NullFile: []
  pip._vendor.rich._ratio.E: []
  pip._vendor.rich._ratio.Edge:
  - Protocol
  pip._vendor.rich._stack.Stack: []
  pip._vendor.rich._win32_console.CONSOLE_CURSOR_INFO: []
  pip._vendor.rich._win32_console.CONSOLE_SCREEN_BUFFER_INFO:
  - Structure
  pip._vendor.rich._win32_console.LegacyWindowsError:
  - Exception
  pip._vendor.rich._win32_console.LegacyWindowsTerm: []
  pip._vendor.rich._win32_console.WindowsCoordinates:
  - NamedTuple
  pip._vendor.rich._windows.WindowsConsoleFeatures: []
  pip._vendor.rich.abc.Foo: []
  pip._vendor.rich.abc.RichRenderable:
  - ABC
  pip._vendor.rich.align.Align:
  - JupyterMixin
  pip._vendor.rich.align.VerticalCenter:
  - JupyterMixin
  pip._vendor.rich.ansi.AnsiDecoder: []
  pip._vendor.rich.ansi._AnsiToken:
  - NamedTuple
  pip._vendor.rich.bar.Bar:
  - JupyterMixin
  pip._vendor.rich.box.Box: []
  pip._vendor.rich.color.Color:
  - NamedTuple
  pip._vendor.rich.color.ColorParseError:
  - Exception
  pip._vendor.rich.color.ColorSystem:
  - IntEnum
  pip._vendor.rich.color.ColorType:
  - IntEnum
  pip._vendor.rich.color_triplet.ColorTriplet:
  - NamedTuple
  pip._vendor.rich.columns.Columns:
  - JupyterMixin
  pip._vendor.rich.console.Capture: []
  pip._vendor.rich.console.CaptureError:
  - Exception
  pip._vendor.rich.console.Console: []
  pip._vendor.rich.console.ConsoleDimensions:
  - NamedTuple
  pip._vendor.rich.console.ConsoleOptions: []
  pip._vendor.rich.console.ConsoleRenderable:
  - Protocol
  pip._vendor.rich.console.ConsoleThreadLocals: []
  pip._vendor.rich.console.Group: []
  pip._vendor.rich.console.NewLine: []
  pip._vendor.rich.console.NoChange: []
  pip._vendor.rich.console.PagerContext: []
  pip._vendor.rich.console.RenderHook:
  - ABC
  pip._vendor.rich.console.RichCast:
  - Protocol
  pip._vendor.rich.console.ScreenContext: []
  pip._vendor.rich.console.ScreenUpdate: []
  pip._vendor.rich.console.ThemeContext: []
  pip._vendor.rich.constrain.Constrain:
  - JupyterMixin
  pip._vendor.rich.containers.Lines: []
  pip._vendor.rich.containers.Renderables: []
  pip._vendor.rich.control.Control: []
  pip._vendor.rich.emoji.Emoji:
  - JupyterMixin
  pip._vendor.rich.emoji.NoEmoji:
  - Exception
  pip._vendor.rich.errors.ConsoleError:
  - Exception
  pip._vendor.rich.errors.LiveError:
  - ConsoleError
  pip._vendor.rich.errors.MarkupError:
  - ConsoleError
  pip._vendor.rich.errors.MissingStyle:
  - StyleError
  pip._vendor.rich.errors.NoAltScreen:
  - ConsoleError
  pip._vendor.rich.errors.NotRenderableError:
  - ConsoleError
  pip._vendor.rich.errors.StyleError:
  - Exception
  pip._vendor.rich.errors.StyleStackError:
  - ConsoleError
  pip._vendor.rich.errors.StyleSyntaxError:
  - ConsoleError
  pip._vendor.rich.file_proxy.FileProxy: []
  pip._vendor.rich.highlighter.Highlighter:
  - ABC
  pip._vendor.rich.highlighter.ISO8601Highlighter:
  - RegexHighlighter
  pip._vendor.rich.highlighter.JSONHighlighter:
  - RegexHighlighter
  pip._vendor.rich.highlighter.NullHighlighter:
  - Highlighter
  pip._vendor.rich.highlighter.RegexHighlighter:
  - Highlighter
  pip._vendor.rich.highlighter.ReprHighlighter:
  - RegexHighlighter
  pip._vendor.rich.json.JSON: []
  pip._vendor.rich.jupyter.JupyterMixin: []
  pip._vendor.rich.jupyter.JupyterRenderable: []
  pip._vendor.rich.layout.ColumnSplitter:
  - Splitter
  pip._vendor.rich.layout.Layout: []
  pip._vendor.rich.layout.LayoutError:
  - Exception
  pip._vendor.rich.layout.LayoutRender:
  - NamedTuple
  pip._vendor.rich.layout.NoSplitter:
  - LayoutError
  pip._vendor.rich.layout.RowSplitter:
  - Splitter
  pip._vendor.rich.layout.Splitter:
  - ABC
  pip._vendor.rich.layout._Placeholder: []
  pip._vendor.rich.live.Live:
  - JupyterMixin
  - RenderHook
  pip._vendor.rich.live._RefreshThread:
  - Thread
  pip._vendor.rich.live_render.LiveRender: []
  pip._vendor.rich.logging.RichHandler:
  - Handler
  pip._vendor.rich.markup.Tag:
  - NamedTuple
  pip._vendor.rich.measure.Measurement:
  - NamedTuple
  pip._vendor.rich.padding.Padding:
  - JupyterMixin
  pip._vendor.rich.pager.Pager:
  - ABC
  pip._vendor.rich.pager.SystemPager:
  - Pager
  pip._vendor.rich.palette.ColorBox: []
  pip._vendor.rich.palette.Palette: []
  pip._vendor.rich.panel.Panel:
  - JupyterMixin
  pip._vendor.rich.pretty.BrokenRepr: []
  pip._vendor.rich.pretty.Node: []
  pip._vendor.rich.pretty.Pretty:
  - JupyterMixin
  pip._vendor.rich.pretty.StockKeepingUnit:
  - NamedTuple
  pip._vendor.rich.pretty.Thing: []
  pip._vendor.rich.pretty._Line: []
  pip._vendor.rich.pretty.install.RichFormatter:
  - BaseFormatter
  pip._vendor.rich.progress.BarColumn:
  - ProgressColumn
  pip._vendor.rich.progress.DownloadColumn:
  - ProgressColumn
  pip._vendor.rich.progress.FileSizeColumn:
  - ProgressColumn
  pip._vendor.rich.progress.MofNCompleteColumn:
  - ProgressColumn
  pip._vendor.rich.progress.Progress:
  - JupyterMixin
  pip._vendor.rich.progress.ProgressColumn:
  - ABC
  pip._vendor.rich.progress.ProgressSample:
  - NamedTuple
  pip._vendor.rich.progress.RenderableColumn:
  - ProgressColumn
  pip._vendor.rich.progress.SpinnerColumn:
  - ProgressColumn
  pip._vendor.rich.progress.Task: []
  pip._vendor.rich.progress.TaskProgressColumn:
  - TextColumn
  pip._vendor.rich.progress.TextColumn:
  - ProgressColumn
  pip._vendor.rich.progress.TimeElapsedColumn:
  - ProgressColumn
  pip._vendor.rich.progress.TimeRemainingColumn:
  - ProgressColumn
  pip._vendor.rich.progress.TotalFileSizeColumn:
  - ProgressColumn
  pip._vendor.rich.progress.TransferSpeedColumn:
  - ProgressColumn
  pip._vendor.rich.progress._ReadContext: []
  pip._vendor.rich.progress._Reader:
  - BinaryIO
  - RawIOBase
  pip._vendor.rich.progress._TrackThread:
  - Thread
  pip._vendor.rich.progress_bar.ProgressBar:
  - JupyterMixin
  pip._vendor.rich.prompt.Confirm: []
  pip._vendor.rich.prompt.FloatPrompt: []
  pip._vendor.rich.prompt.IntPrompt: []
  pip._vendor.rich.prompt.InvalidResponse:
  - PromptError
  pip._vendor.rich.prompt.Prompt: []
  pip._vendor.rich.prompt.PromptBase: []
  pip._vendor.rich.prompt.PromptError:
  - Exception
  pip._vendor.rich.region.Region:
  - NamedTuple
  pip._vendor.rich.repr.Foo: []
  pip._vendor.rich.repr.ReprError:
  - Exception
  pip._vendor.rich.rule.Rule:
  - JupyterMixin
  pip._vendor.rich.screen.Screen: []
  pip._vendor.rich.segment.ControlType:
  - IntEnum
  pip._vendor.rich.segment.Segment:
  - NamedTuple
  pip._vendor.rich.segment.SegmentLines: []
  pip._vendor.rich.segment.Segments: []
  pip._vendor.rich.spinner.Spinner: []
  pip._vendor.rich.status.Status:
  - JupyterMixin
  pip._vendor.rich.style.Style: []
  pip._vendor.rich.style.StyleStack: []
  pip._vendor.rich.style._Bit: []
  pip._vendor.rich.styled.Styled: []
  pip._vendor.rich.syntax.ANSISyntaxTheme:
  - SyntaxTheme
  pip._vendor.rich.syntax.PygmentsSyntaxTheme:
  - SyntaxTheme
  pip._vendor.rich.syntax.Syntax:
  - JupyterMixin
  pip._vendor.rich.syntax.SyntaxTheme:
  - ABC
  pip._vendor.rich.syntax._SyntaxHighlightRange:
  - NamedTuple
  pip._vendor.rich.table.Column: []
  pip._vendor.rich.table.Row: []
  pip._vendor.rich.table.Table:
  - JupyterMixin
  pip._vendor.rich.table._Cell:
  - NamedTuple
  pip._vendor.rich.terminal_theme.TerminalTheme: []
  pip._vendor.rich.text.Span:
  - NamedTuple
  pip._vendor.rich.text.Text:
  - JupyterMixin
  pip._vendor.rich.theme.Theme: []
  pip._vendor.rich.theme.ThemeStack: []
  pip._vendor.rich.theme.ThemeStackError:
  - Exception
  pip._vendor.rich.traceback.Frame: []
  pip._vendor.rich.traceback.PathHighlighter:
  - RegexHighlighter
  pip._vendor.rich.traceback.Stack: []
  pip._vendor.rich.traceback.Trace: []
  pip._vendor.rich.traceback.Traceback: []
  pip._vendor.rich.traceback._SyntaxError: []
  pip._vendor.rich.tree.Tree:
  - JupyterMixin
  pip._vendor.six.Iterator:
  - object
  pip._vendor.six.Module_six_moves_urllib: []
  pip._vendor.six.Module_six_moves_urllib_error:
  - _LazyModule
  pip._vendor.six.Module_six_moves_urllib_parse:
  - _LazyModule
  pip._vendor.six.Module_six_moves_urllib_request:
  - _LazyModule
  pip._vendor.six.Module_six_moves_urllib_response:
  - _LazyModule
  pip._vendor.six.Module_six_moves_urllib_robotparser:
  - _LazyModule
  pip._vendor.six.MovedAttribute:
  - _LazyDescr
  pip._vendor.six.MovedModule:
  - _LazyDescr
  pip._vendor.six.X:
  - object
  pip._vendor.six._LazyDescr:
  - object
  pip._vendor.six._LazyModule: []
  pip._vendor.six._MovedItems:
  - _LazyModule
  pip._vendor.six._SixMetaPathImporter:
  - object
  pip._vendor.six.with_metaclass.metaclass:
  - type
  pip._vendor.tenacity.AttemptManager: []
  pip._vendor.tenacity.BaseAction: []
  pip._vendor.tenacity.BaseRetrying:
  - ABC
  pip._vendor.tenacity.DoAttempt: []
  pip._vendor.tenacity.DoSleep:
  - float
  pip._vendor.tenacity.Future:
  - FutureGenericT
  pip._vendor.tenacity.RetryAction:
  - BaseAction
  pip._vendor.tenacity.RetryCallState: []
  pip._vendor.tenacity.RetryError:
  - Exception
  pip._vendor.tenacity.Retrying:
  - BaseRetrying
  pip._vendor.tenacity.TryAgain:
  - Exception
  pip._vendor.tenacity._asyncio.AsyncRetrying:
  - BaseRetrying
  pip._vendor.tenacity.nap.sleep_using_event: []
  pip._vendor.tenacity.retry._retry_always:
  - retry_base
  pip._vendor.tenacity.retry._retry_never:
  - retry_base
  pip._vendor.tenacity.retry.retry_all:
  - retry_base
  pip._vendor.tenacity.retry.retry_any:
  - retry_base
  pip._vendor.tenacity.retry.retry_base: []
  pip._vendor.tenacity.retry.retry_if_exception:
  - retry_base
  pip._vendor.tenacity.retry.retry_if_exception_cause_type:
  - retry_base
  pip._vendor.tenacity.retry.retry_if_exception_message:
  - retry_if_exception
  pip._vendor.tenacity.retry.retry_if_exception_type:
  - retry_if_exception
  pip._vendor.tenacity.retry.retry_if_not_exception_message:
  - retry_if_exception_message
  pip._vendor.tenacity.retry.retry_if_not_exception_type:
  - retry_if_exception
  pip._vendor.tenacity.retry.retry_if_not_result:
  - retry_base
  pip._vendor.tenacity.retry.retry_if_result:
  - retry_base
  pip._vendor.tenacity.retry.retry_unless_exception_type:
  - retry_if_exception
  pip._vendor.tenacity.stop._stop_never:
  - stop_base
  pip._vendor.tenacity.stop.stop_after_attempt:
  - stop_base
  pip._vendor.tenacity.stop.stop_after_delay:
  - stop_base
  pip._vendor.tenacity.stop.stop_all:
  - stop_base
  pip._vendor.tenacity.stop.stop_any:
  - stop_base
  pip._vendor.tenacity.stop.stop_base: []
  pip._vendor.tenacity.stop.stop_when_event_set:
  - stop_base
  pip._vendor.tenacity.tornadoweb.TornadoRetrying:
  - BaseRetrying
  pip._vendor.tenacity.wait.wait_base: []
  pip._vendor.tenacity.wait.wait_chain:
  - wait_base
  pip._vendor.tenacity.wait.wait_combine:
  - wait_base
  pip._vendor.tenacity.wait.wait_exponential:
  - wait_base
  pip._vendor.tenacity.wait.wait_exponential_jitter:
  - wait_base
  pip._vendor.tenacity.wait.wait_fixed:
  - wait_base
  pip._vendor.tenacity.wait.wait_incrementing:
  - wait_base
  pip._vendor.tenacity.wait.wait_none:
  - wait_fixed
  pip._vendor.tenacity.wait.wait_random:
  - wait_base
  pip._vendor.tenacity.wait.wait_random_exponential:
  - wait_exponential
  pip._vendor.tomli._parser.Flags: []
  pip._vendor.tomli._parser.NestedDict: []
  pip._vendor.tomli._parser.Output:
  - NamedTuple
  pip._vendor.tomli._parser.TOMLDecodeError:
  - ValueError
  pip._vendor.truststore._api.SSLContext:
  - _truststore_SSLContext_super_class
  pip._vendor.truststore._api.SSLContext.__init__.TruststoreSSLObject: []
  pip._vendor.truststore._macos.CFConst: []
  pip._vendor.truststore._windows.CERT_CHAIN_CONTEXT:
  - Structure
  pip._vendor.truststore._windows.CERT_CHAIN_ELEMENT:
  - Structure
  pip._vendor.truststore._windows.CERT_CHAIN_ENGINE_CONFIG:
  - Structure
  pip._vendor.truststore._windows.CERT_CHAIN_PARA:
  - Structure
  pip._vendor.truststore._windows.CERT_CHAIN_POLICY_PARA:
  - Structure
  pip._vendor.truststore._windows.CERT_CHAIN_POLICY_STATUS:
  - Structure
  pip._vendor.truststore._windows.CERT_CONTEXT:
  - Structure
  pip._vendor.truststore._windows.CERT_ENHKEY_USAGE:
  - Structure
  pip._vendor.truststore._windows.CERT_SIMPLE_CHAIN:
  - Structure
  pip._vendor.truststore._windows.CERT_TRUST_STATUS:
  - Structure
  pip._vendor.truststore._windows.CERT_USAGE_MATCH:
  - Structure
  pip._vendor.truststore._windows.SSL_EXTRA_CERT_CHAIN_POLICY_PARA:
  - Structure
  pip._vendor.typing_extensions.Annotated: []
  pip._vendor.typing_extensions.Any: []
  pip._vendor.typing_extensions.Buffer: []
  pip._vendor.typing_extensions.NewType: []
  pip._vendor.typing_extensions.NewType.__mro_entries__.Dummy: []
  pip._vendor.typing_extensions.ParamSpec: []
  pip._vendor.typing_extensions.ParamSpecArgs:
  - _Immutable
  pip._vendor.typing_extensions.ParamSpecKwargs:
  - _Immutable
  pip._vendor.typing_extensions.Protocol: []
  pip._vendor.typing_extensions.SupportsAbs: []
  pip._vendor.typing_extensions.SupportsBytes:
  - Protocol
  pip._vendor.typing_extensions.SupportsComplex:
  - Protocol
  pip._vendor.typing_extensions.SupportsFloat:
  - Protocol
  pip._vendor.typing_extensions.SupportsIndex:
  - Protocol
  pip._vendor.typing_extensions.SupportsInt:
  - Protocol
  pip._vendor.typing_extensions.SupportsRound: []
  pip._vendor.typing_extensions.TypeAliasType: []
  pip._vendor.typing_extensions.TypeVar: []
  pip._vendor.typing_extensions.TypeVarTuple: []
  pip._vendor.typing_extensions._AnnotatedAlias: []
  pip._vendor.typing_extensions._AnyMeta:
  - type
  pip._vendor.typing_extensions._ConcatenateForm:
  - _ExtensionsSpecialForm
  pip._vendor.typing_extensions._ConcatenateGenericAlias:
  - list
  pip._vendor.typing_extensions._DefaultMixin: []
  pip._vendor.typing_extensions._ExtensionsSpecialForm: []
  pip._vendor.typing_extensions._FinalForm:
  - _ExtensionsSpecialForm
  pip._vendor.typing_extensions._Immutable: []
  pip._vendor.typing_extensions._LiteralForm:
  - _ExtensionsSpecialForm
  pip._vendor.typing_extensions._LiteralGenericAlias: []
  pip._vendor.typing_extensions._NamedTupleMeta:
  - type
  pip._vendor.typing_extensions._ProtocolMeta:
  - _ProtocolMetaBase
  pip._vendor.typing_extensions._RequiredForm:
  - _ExtensionsSpecialForm
  pip._vendor.typing_extensions._Sentinel: []
  pip._vendor.typing_extensions._SpecialForm: []
  pip._vendor.typing_extensions._TypeGuardForm:
  - _ExtensionsSpecialForm
  pip._vendor.typing_extensions._TypeVarLikeMeta:
  - type
  pip._vendor.typing_extensions._TypedDictMeta:
  - type
  pip._vendor.typing_extensions._UnpackAlias: []
  pip._vendor.typing_extensions._UnpackForm:
  - _ExtensionsSpecialForm
  pip._vendor.typing_extensions._UnpackSpecialForm:
  - _ExtensionsSpecialForm
  pip._vendor.urllib3._collections.HTTPHeaderDict:
  - MutableMapping
  pip._vendor.urllib3._collections.RLock: []
  pip._vendor.urllib3._collections.RecentlyUsedContainer:
  - MutableMapping
  pip._vendor.urllib3.connection.BaseSSLError:
  - BaseException
  pip._vendor.urllib3.connection.BrokenPipeError:
  - Exception
  pip._vendor.urllib3.connection.ConnectionError:
  - Exception
  pip._vendor.urllib3.connection.DummyConnection:
  - object
  pip._vendor.urllib3.connection.HTTPConnection:
  - object
  - _HTTPConnection
  pip._vendor.urllib3.connection.HTTPSConnection:
  - HTTPConnection
  pip._vendor.urllib3.connectionpool.ConnectionPool:
  - object
  pip._vendor.urllib3.connectionpool.HTTPConnectionPool:
  - ConnectionPool
  - RequestMethods
  pip._vendor.urllib3.connectionpool.HTTPSConnectionPool:
  - HTTPConnectionPool
  pip._vendor.urllib3.contrib._securetransport.bindings.CFConst:
  - object
  pip._vendor.urllib3.contrib._securetransport.bindings.SecurityConst:
  - object
  pip._vendor.urllib3.contrib.appengine.AppEngineManager:
  - RequestMethods
  pip._vendor.urllib3.contrib.appengine.AppEnginePlatformError:
  - HTTPError
  pip._vendor.urllib3.contrib.appengine.AppEnginePlatformWarning:
  - HTTPWarning
  pip._vendor.urllib3.contrib.ntlmpool.NTLMConnectionPool:
  - HTTPSConnectionPool
  pip._vendor.urllib3.contrib.pyopenssl.PyOpenSSLContext:
  - object
  pip._vendor.urllib3.contrib.pyopenssl.UnsupportedExtension:
  - Exception
  pip._vendor.urllib3.contrib.pyopenssl.WrappedSocket:
  - object
  pip._vendor.urllib3.contrib.securetransport.SecureTransportContext:
  - object
  pip._vendor.urllib3.contrib.securetransport.WrappedSocket:
  - object
  pip._vendor.urllib3.contrib.socks.SOCKSConnection:
  - HTTPConnection
  pip._vendor.urllib3.contrib.socks.SOCKSHTTPConnectionPool:
  - HTTPConnectionPool
  pip._vendor.urllib3.contrib.socks.SOCKSHTTPSConnection:
  - HTTPSConnection
  - SOCKSConnection
  pip._vendor.urllib3.contrib.socks.SOCKSHTTPSConnectionPool:
  - HTTPSConnectionPool
  pip._vendor.urllib3.contrib.socks.SOCKSProxyManager:
  - PoolManager
  pip._vendor.urllib3.exceptions.BodyNotHttplibCompatible:
  - HTTPError
  pip._vendor.urllib3.exceptions.ClosedPoolError:
  - PoolError
  pip._vendor.urllib3.exceptions.ConnectTimeoutError:
  - TimeoutError
  pip._vendor.urllib3.exceptions.DecodeError:
  - HTTPError
  pip._vendor.urllib3.exceptions.DependencyWarning:
  - HTTPWarning
  pip._vendor.urllib3.exceptions.EmptyPoolError:
  - PoolError
  pip._vendor.urllib3.exceptions.HTTPError:
  - Exception
  pip._vendor.urllib3.exceptions.HTTPWarning:
  - Warning
  pip._vendor.urllib3.exceptions.HeaderParsingError:
  - HTTPError
  pip._vendor.urllib3.exceptions.HostChangedError:
  - RequestError
  pip._vendor.urllib3.exceptions.IncompleteRead:
  - HTTPError
  - httplib_IncompleteRead
  pip._vendor.urllib3.exceptions.InsecurePlatformWarning:
  - SecurityWarning
  pip._vendor.urllib3.exceptions.InsecureRequestWarning:
  - SecurityWarning
  pip._vendor.urllib3.exceptions.InvalidChunkLength:
  - HTTPError
  - httplib_IncompleteRead
  pip._vendor.urllib3.exceptions.InvalidHeader:
  - HTTPError
  pip._vendor.urllib3.exceptions.LocationParseError:
  - LocationValueError
  pip._vendor.urllib3.exceptions.LocationValueError:
  - HTTPError
  - ValueError
  pip._vendor.urllib3.exceptions.MaxRetryError:
  - RequestError
  pip._vendor.urllib3.exceptions.NewConnectionError:
  - PoolError
  - ConnectTimeoutError
  pip._vendor.urllib3.exceptions.PoolError:
  - HTTPError
  pip._vendor.urllib3.exceptions.ProtocolError:
  - HTTPError
  pip._vendor.urllib3.exceptions.ProxyError:
  - HTTPError
  pip._vendor.urllib3.exceptions.ProxySchemeUnknown:
  - URLSchemeUnknown
  - AssertionError
  pip._vendor.urllib3.exceptions.ProxySchemeUnsupported:
  - ValueError
  pip._vendor.urllib3.exceptions.ReadTimeoutError:
  - TimeoutError
  - RequestError
  pip._vendor.urllib3.exceptions.RequestError:
  - PoolError
  pip._vendor.urllib3.exceptions.ResponseError:
  - HTTPError
  pip._vendor.urllib3.exceptions.ResponseNotChunked:
  - ProtocolError
  - ValueError
  pip._vendor.urllib3.exceptions.SNIMissingWarning:
  - HTTPWarning
  pip._vendor.urllib3.exceptions.SSLError:
  - HTTPError
  pip._vendor.urllib3.exceptions.SecurityWarning:
  - HTTPWarning
  pip._vendor.urllib3.exceptions.SubjectAltNameWarning:
  - SecurityWarning
  pip._vendor.urllib3.exceptions.SystemTimeWarning:
  - SecurityWarning
  pip._vendor.urllib3.exceptions.TimeoutError:
  - HTTPError
  pip._vendor.urllib3.exceptions.TimeoutStateError:
  - HTTPError
  pip._vendor.urllib3.exceptions.URLSchemeUnknown:
  - LocationValueError
  pip._vendor.urllib3.exceptions.UnrewindableBodyError:
  - HTTPError
  pip._vendor.urllib3.fields.RequestField:
  - object
  pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize:
  - object
  pip._vendor.urllib3.packages.backports.weakref_finalize.weakref_finalize._Info:
  - object
  pip._vendor.urllib3.packages.six.Iterator:
  - object
  pip._vendor.urllib3.packages.six.Module_six_moves_urllib: []
  pip._vendor.urllib3.packages.six.Module_six_moves_urllib_error:
  - _LazyModule
  pip._vendor.urllib3.packages.six.Module_six_moves_urllib_parse:
  - _LazyModule
  pip._vendor.urllib3.packages.six.Module_six_moves_urllib_request:
  - _LazyModule
  pip._vendor.urllib3.packages.six.Module_six_moves_urllib_response:
  - _LazyModule
  pip._vendor.urllib3.packages.six.Module_six_moves_urllib_robotparser:
  - _LazyModule
  pip._vendor.urllib3.packages.six.MovedAttribute:
  - _LazyDescr
  pip._vendor.urllib3.packages.six.MovedModule:
  - _LazyDescr
  pip._vendor.urllib3.packages.six.X:
  - object
  pip._vendor.urllib3.packages.six._LazyDescr:
  - object
  pip._vendor.urllib3.packages.six._LazyModule: []
  pip._vendor.urllib3.packages.six._MovedItems:
  - _LazyModule
  pip._vendor.urllib3.packages.six._SixMetaPathImporter:
  - object
  pip._vendor.urllib3.packages.six.with_metaclass.metaclass:
  - type
  pip._vendor.urllib3.poolmanager.PoolManager:
  - RequestMethods
  pip._vendor.urllib3.poolmanager.ProxyManager:
  - PoolManager
  pip._vendor.urllib3.request.RequestMethods:
  - object
  pip._vendor.urllib3.request.RequestModule: []
  pip._vendor.urllib3.response.BrotliDecoder:
  - object
  pip._vendor.urllib3.response.DeflateDecoder:
  - object
  pip._vendor.urllib3.response.GzipDecoder:
  - object
  pip._vendor.urllib3.response.GzipDecoderState:
  - object
  pip._vendor.urllib3.response.HTTPResponse: []
  pip._vendor.urllib3.response.MultiDecoder:
  - object
  pip._vendor.urllib3.util.queue.LifoQueue: []
  pip._vendor.urllib3.util.retry.Retry:
  - object
  pip._vendor.urllib3.util.retry._RetryMeta:
  - type
  pip._vendor.urllib3.util.ssl_.SSLContext:
  - object
  pip._vendor.urllib3.util.ssl_match_hostname.CertificateError:
  - ValueError
  pip._vendor.urllib3.util.ssltransport.SSLTransport: []
  pip._vendor.urllib3.util.timeout.Timeout:
  - object
  pip._vendor.urllib3.util.url.Url: []
  pip._vendor.urllib3.util.wait.NoWayToWaitForSocketError:
  - Exception
  pip._vendor.webencodings.Encoding:
  - object
  pip._vendor.webencodings.IncrementalDecoder:
  - object
  pip._vendor.webencodings.IncrementalEncoder:
  - object
  pip._vendor.webencodings.x_user_defined.Codec: []
  pip._vendor.webencodings.x_user_defined.IncrementalDecoder: []
  pip._vendor.webencodings.x_user_defined.IncrementalEncoder: []
  pip._vendor.webencodings.x_user_defined.StreamReader:
  - Codec
  pip._vendor.webencodings.x_user_defined.StreamWriter:
  - Codec
ep:
  func_name: TestOneInput
  module: '...fuzz_requirements'
