All classes:
- openid.yadis.parsehtml.ParseDone
- openid.yadis.parsehtml.MetaNotFound
- openid.yadis.parsehtml.YadisHTMLParser
- openid.oidutil.Symbol
- openid.kvform.KVFormError
- openid.message.UndefinedOpenIDNamespace
- openid.message.InvalidOpenIDNamespace
- openid.message.NamespaceAliasRegistrationError
- openid.message.Message
- openid.message.NamespaceMap
- openid.extension.Extension
- openid.extensions.sreg.SRegNamespaceError
- openid.extensions.sreg.SRegRequest
- openid.extensions.sreg.SRegResponse
- openid.extensions.draft.pape5.PAPEExtension
- openid.extensions.draft.pape5.Request
- openid.extensions.draft.pape5.Response
- openid.cryptutil.HashContainer
- openid.dh.DiffieHellman
- openid.fetchers.HTTPResponse
- openid.fetchers.HTTPFetcher
- openid.fetchers.HTTPFetchingError
- openid.fetchers.ExceptionWrappingFetcher
- openid.fetchers.Urllib2Fetcher
- openid.fetchers.HTTPError
- openid.fetchers.CurlHTTPFetcher
- openid.fetchers.HTTPLib2Fetcher
- openid.association.SessionNegotiator
- openid.association.Association
- openid.store.memstore.ServerAssocs
- openid.store.memstore.MemoryStore
- openid.store.interface.OpenIDStore
- openid.store.filestore.FileOpenIDStore
- openid.store.sqlstore.SQLStore
- openid.store.sqlstore.SQLiteStore
- openid.store.sqlstore.MySQLStore
- openid.store.sqlstore.PostgreSQLStore
- openid.yadis.discover.DiscoveryFailure
- openid.yadis.discover.DiscoveryResult
- openid.yadis.etxrd.XRDSError
- openid.yadis.etxrd.XRDSFraud
- openid.yadis.etxrd._Max
- openid.yadis.filters.BasicServiceEndpoint
- openid.yadis.filters.IFilter
- openid.yadis.filters.TransformFilterMaker
- openid.yadis.filters.CompoundFilter
- openid.yadis.xrires.ProxyResolver
- openid.yadis.manager.YadisServiceManager
- openid.yadis.manager.Discovery
- openid.server.trustroot.RealmVerificationRedirected
- openid.server.trustroot.TrustRoot
- openid.extensions.ax.AXError
- openid.extensions.ax.NotAXMessage
- openid.extensions.ax.AXMessage
- openid.extensions.ax.AttrInfo
- openid.extensions.ax.FetchRequest
- openid.extensions.ax.AXKeyValueMessage
- openid.extensions.ax.FetchResponse
- openid.extensions.ax.StoreRequest
- openid.extensions.ax.StoreResponse
- openid.extensions.draft.pape2.Request
- openid.extensions.draft.pape2.Response
- openid.server.server.OpenIDRequest
- openid.server.server.CheckAuthRequest
- openid.server.server.PlainTextServerSession
- openid.server.server.DiffieHellmanSHA1ServerSession
- openid.server.server.DiffieHellmanSHA256ServerSession
- openid.server.server.AssociateRequest
- openid.server.server.CheckIDRequest
- openid.server.server.OpenIDResponse
- openid.server.server.WebResponse
- openid.server.server.Signatory
- openid.server.server.Encoder
- openid.server.server.SigningEncoder
- openid.server.server.Decoder
- openid.server.server.Server
- openid.server.server.ProtocolError
- openid.server.server.VersionError
- openid.server.server.NoReturnToError
- openid.server.server.EncodingError
- openid.server.server.AlreadySigned
- openid.server.server.UntrustedReturnURL
- openid.server.server.MalformedReturnURL
- openid.server.server.MalformedTrustRoot
- openid.consumer.discover.OpenIDServiceEndpoint
- openid.consumer.consumer.Consumer
- openid.consumer.consumer.DiffieHellmanSHA1ConsumerSession
- openid.consumer.consumer.DiffieHellmanSHA256ConsumerSession
- openid.consumer.consumer.PlainTextConsumerSession
- openid.consumer.consumer.SetupNeededError
- openid.consumer.consumer.ProtocolError
- openid.consumer.consumer.TypeURIMismatch
- openid.consumer.consumer.ServerError
- openid.consumer.consumer.GenericConsumer
- openid.consumer.consumer.AuthRequest
- openid.consumer.consumer.Response
- openid.consumer.consumer.SuccessResponse
- openid.consumer.consumer.FailureResponse
- openid.consumer.consumer.CancelResponse
- openid.consumer.consumer.SetupNeededResponse
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_html_parse'
    functionSourceFile: '...fuzz_html_parse'
    functionUses: 0
    functionsReached:
    - atheris.Fuzz
    - '...fuzz_html_parse.main'
    - atheris.Setup
    - atheris.instrument_all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 21
    functionName: '...fuzz_html_parse.TestOneInput'
    functionSourceFile: '...fuzz_html_parse'
    functionUses: 0
    functionsReached:
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    - fdp.ConsumeUnicodeNoSurrogates
    - atheris.FuzzedDataProvider
    - openid.yadis.parsehtml.YadisHTMLParser.__init__
    - openid.yadis.parsehtml.YadisHTMLParser.feed
    - <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: atheris.FuzzedDataProvider
    functionSourceFile: atheris
    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: 99
    functionName: openid.yadis.parsehtml.YadisHTMLParser.__init__
    functionSourceFile: openid.yadis.parsehtml
    functionUses: 11
    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: fdp.ConsumeUnicodeNoSurrogates
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - chars
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 164
    functionName: openid.yadis.parsehtml.YadisHTMLParser.feed
    functionSourceFile: openid.yadis.parsehtml
    functionUses: 11
    functionsReached:
    - <builtin>.super
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    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: 30
    functionName: '...fuzz_html_parse.main'
    functionSourceFile: '...fuzz_html_parse'
    functionUses: 1
    functionsReached:
    - atheris.Fuzz
    - atheris.Setup
    - atheris.instrument_all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.instrument_all
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Setup
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Fuzz
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: openid.yadis.parsehtml
    functionSourceFile: openid.yadis.parsehtml
    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: re.compile
    functionSourceFile: re
    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:
    - mo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: openid.yadis.parsehtml.substituteMO
    functionSourceFile: openid.yadis.parsehtml
    functionUses: 0
    functionsReached:
    - mo.group
    - <builtin>.chr
    - <builtin>.int
    - html.entities.name2codepoint.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: mo.group
    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>.int
    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: html.entities.name2codepoint.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.chr
    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:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 55
    functionName: openid.yadis.parsehtml.substituteEntities
    functionSourceFile: openid.yadis.parsehtml
    functionUses: 1
    functionsReached:
    - ent_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: ent_re.sub
    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>.super
    functionSourceFile: <builtin>
    functionUses: 49
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - 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: openid.yadis.parsehtml.YadisHTMLParser._terminate
    functionSourceFile: openid.yadis.parsehtml
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ParseDone
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tag
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 113
    functionName: openid.yadis.parsehtml.YadisHTMLParser.handle_endtag
    functionSourceFile: openid.yadis.parsehtml
    functionUses: 0
    functionsReached:
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 3
    IfCount: 11
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tag
    - attrs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 119
    functionName: openid.yadis.parsehtml.YadisHTMLParser.handle_starttag
    functionSourceFile: openid.yadis.parsehtml
    functionUses: 0
    functionsReached:
    - YADIS_HEADER_NAME.lower
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    - openid.yadis.parsehtml.substituteEntities
    - ent_re.sub
    - <builtin>.dict
    - attrs_d.get
    linkageType: pythonLinkage
    raised:
    - ParseDone
    returnType: N/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: 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: attrs_d.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: YADIS_HEADER_NAME.lower
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - stream
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 172
    functionName: openid.yadis.parsehtml.findHTMLMeta
    functionSourceFile: openid.yadis.parsehtml
    functionUses: 9
    functionsReached:
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    - openid.yadis.parsehtml.YadisHTMLParser.__init__
    - io.StringIO.read
    - openid.yadis.parsehtml.YadisHTMLParser.feed
    - <builtin>.super
    - chunks.append
    linkageType: pythonLinkage
    raised:
    - MetaNotFound
    returnType: N/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: 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: chunks.append
    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: 2
    functionLinenumber: -1
    functionName: openid.yadis.constants
    functionSourceFile: openid.yadis.constants
    functionUses: 0
    functionsReached:
    - parts.append
    - <builtin>.float
    - <builtin>.type
    - parts.sort
    - chunks.append
    - openid.yadis.accept.generateAcceptHeader
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - elements
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 6
    functionName: openid.yadis.accept.generateAcceptHeader
    functionSourceFile: openid.yadis.accept
    functionUses: 1
    functionsReached:
    - parts.append
    - <builtin>.float
    - <builtin>.type
    - parts.sort
    - chunks.append
    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: 0
    functionLinenumber: -1
    functionName: openid.yadis.accept
    functionSourceFile: openid.yadis.accept
    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>.type
    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: <builtin>.float
    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: parts.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: parts.sort
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: openid.yadis.accept.parseAcceptHeader
    functionSourceFile: openid.yadis.accept
    functionUses: 1
    functionsReached:
    - ext.split
    - chunk.strip
    - accept.reverse
    - accept.sort
    - accept.append
    - value.split
    - s.strip
    - parts.pop
    - <builtin>.float
    - chunk.split
    - mtype.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: chunk.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: value.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: s.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: 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: parts.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: mtype.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: ext.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: accept.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: accept.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: accept.reverse
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - accept_types
    - have_types
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 77
    functionName: openid.yadis.accept.matchTypes
    functionSourceFile: openid.yadis.accept
    functionUses: 1
    functionsReached:
    - match_main.get
    - accepted_list.append
    - match_sub.get
    - accepted_list.sort
    - mtype.split
    - <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: <builtin>.max
    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: match_main.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: match_sub.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: accepted_list.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: accepted_list.sort
    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:
    - accept_header
    - have_types
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 125
    functionName: openid.yadis.accept.getAcceptable
    functionSourceFile: openid.yadis.accept
    functionUses: 0
    functionsReached:
    - accept.sort
    - ext.split
    - chunk.strip
    - accept.reverse
    - accept.append
    - match_main.get
    - accepted_list.append
    - value.split
    - s.strip
    - openid.yadis.accept.matchTypes
    - accepted_list.sort
    - parts.pop
    - match_sub.get
    - <builtin>.float
    - openid.yadis.accept.parseAcceptHeader
    - chunk.split
    - mtype.split
    - <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: 1
    functionLinenumber: -1
    functionName: openid.yadis
    functionSourceFile: openid.yadis
    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: 112
    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: openid
    functionSourceFile: openid
    functionUses: 0
    functionsReached:
    - <builtin>.str
    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: openid.sreg
    functionSourceFile: openid.sreg
    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: 0
    functionLinenumber: -1
    functionName: warnings.warn
    functionSourceFile: warnings
    functionUses: 41
    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: openid.extensions
    functionSourceFile: openid.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: 0
    functionLinenumber: -1
    functionName: openid.extensions.draft
    functionSourceFile: openid.extensions.draft
    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: openid.extensions.draft.pape5
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 0
    functionsReached:
    - 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: 47
    functionName: openid.extensions.draft.pape5.PAPEExtension.__init__
    functionSourceFile: openid.extensions.draft.pape5
    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 0x7f9f48873610>
    argNames:
    - self
    - auth_level_uri
    - alias
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 50
    functionName: openid.extensions.draft.pape5.PAPEExtension._addAuthLevelAlias
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 8
    functionsReached:
    - <builtin>.range
    - openid.extensions.draft.pape5.PAPEExtension._generateAlias
    - openid.extensions.draft.pape5.PAPEExtension._getAlias
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - auth_level_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 82
    functionName: openid.extensions.draft.pape5.PAPEExtension._getAlias
    functionSourceFile: ''
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    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: 73
    functionName: openid.extensions.draft.pape5.PAPEExtension._generateAlias
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 9
    functionsReached:
    - <builtin>.range
    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: <builtin>.range
    functionSourceFile: <builtin>
    functionUses: 31
    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 0x7f9f4885f9d0>
    - <ast.Constant object at 0x7f9f4885fd60>
    - <ast.Constant object at 0x7f9f4885f340>
    argNames:
    - self
    - preferred_auth_policies
    - max_auth_age
    - preferred_auth_level_types
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 115
    functionName: openid.extensions.draft.pape5.Request.__init__
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 1
    functionsReached:
    - openid.extensions.draft.pape5.Request.addAuthLevel
    - <builtin>.range
    - openid.extensions.draft.pape5.PAPEExtension._generateAlias
    - openid.extensions.draft.pape5.PAPEExtension._addAuthLevelAlias
    - <builtin>.super
    - openid.extensions.draft.pape5.PAPEExtension._getAlias
    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 0x7f9f48877a90>
    argNames:
    - self
    - auth_level_uri
    - alias
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 149
    functionName: openid.extensions.draft.pape5.Request.addAuthLevel
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 3
    functionsReached:
    - openid.extensions.draft.pape5.PAPEExtension._addAuthLevelAlias
    - <builtin>.range
    - openid.extensions.draft.pape5.PAPEExtension._generateAlias
    - openid.extensions.draft.pape5.PAPEExtension._getAlias
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 131
    functionName: openid.extensions.draft.pape5.Request.__bool__
    functionSourceFile: openid.extensions.draft.pape5
    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: 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
    - policy_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 136
    functionName: openid.extensions.draft.pape5.Request.addPolicyURI
    functionSourceFile: openid.extensions.draft.pape5
    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: 1
    functionLinenumber: 154
    functionName: openid.extensions.draft.pape5.Request.getExtensionArgs
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 1
    functionsReached:
    - <builtin>.str
    - preferred_types.append
    - openid.extensions.draft.pape5.PAPEExtension._getAlias
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: preferred_types.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: 2
    argDefaultValues: []
    argNames:
    - cls
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 176
    functionName: openid.extensions.draft.pape5.Request.fromOpenIDRequest
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 0
    functionsReached:
    - openid.extensions.draft.pape5.Request.addAuthLevel
    - openid.extensions.draft.pape5.Request.__init__
    - <builtin>.range
    - openid.extensions.draft.pape5.PAPEExtension._generateAlias
    - openid.extensions.draft.pape5.PAPEExtension._addAuthLevelAlias
    - request.message.getArgs
    - request.message.isOpenID1
    - <builtin>.super
    - openid.extensions.draft.pape5.PAPEExtension._getAlias
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.message.getArgs
    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: request.message.isOpenID1
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: 1
    functionLinenumber: -1
    functionName: openid.extensions.draft.pape5.Request
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 0
    functionsReached:
    - <builtin>.classmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 3
    IfCount: 9
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f9f49066be0>
    argNames:
    - self
    - args
    - is_openid1
    - strict
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 192
    functionName: openid.extensions.draft.pape5.Request.parseExtensionArgs
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 0
    functionsReached:
    - openid.extensions.draft.pape5.Request.addAuthLevel
    - <builtin>.str
    - <builtin>.isinstance
    - <builtin>.int
    - <builtin>.range
    - openid.extensions.draft.pape5.PAPEExtension._generateAlias
    - openid.extensions.draft.pape5.PAPEExtension._addAuthLevelAlias
    - policies_str.split
    - args.get
    - openid.extensions.draft.pape5.PAPEExtension._getAlias
    - preferred_auth_level_types.strip
    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: args.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: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 158
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: policies_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: preferred_auth_level_types.strip
    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
    - supported_types
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 255
    functionName: openid.extensions.draft.pape5.Request.preferredTypes
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 0
    functionsReached:
    - <builtin>.filter
    - <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>.filter
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.list
    functionSourceFile: <builtin>
    functionUses: 70
    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 0x7f9f48a07700>
    - <ast.Constant object at 0x7f9f48a07ac0>
    - <ast.Constant object at 0x7f9f48a07880>
    argNames:
    - self
    - auth_policies
    - auth_time
    - auth_levels
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 288
    functionName: openid.extensions.draft.pape5.Response.__init__
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 1
    functionsReached:
    - <builtin>.range
    - openid.extensions.draft.pape5.PAPEExtension._generateAlias
    - openid.extensions.draft.pape5.PAPEExtension._addAuthLevelAlias
    - openid.extensions.draft.pape5.Response.setAuthLevel
    - auth_levels.items
    - <builtin>.super
    - openid.extensions.draft.pape5.PAPEExtension._getAlias
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_levels.items
    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.Constant object at 0x7f9f4902d4c0>
    argNames:
    - self
    - level_uri
    - level
    - alias
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 304
    functionName: openid.extensions.draft.pape5.Response.setAuthLevel
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 3
    functionsReached:
    - openid.extensions.draft.pape5.PAPEExtension._addAuthLevelAlias
    - <builtin>.range
    - openid.extensions.draft.pape5.PAPEExtension._generateAlias
    - openid.extensions.draft.pape5.PAPEExtension._getAlias
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - level_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 318
    functionName: openid.extensions.draft.pape5.Response.getAuthLevel
    functionSourceFile: openid.extensions.draft.pape5
    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: 330
    functionName: openid.extensions.draft.pape5.Response._getNISTAuthLevel
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 0
    functionsReached:
    - openid.extensions.draft.pape5.Response.getAuthLevel
    - <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: <builtin>.property
    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: openid.extensions.draft.pape5.Response
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 0
    functionsReached:
    - <builtin>.property
    - <builtin>.classmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - policy_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 340
    functionName: openid.extensions.draft.pape5.Response.addPolicyURI
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - success_response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 357
    functionName: openid.extensions.draft.pape5.Response.fromSuccessResponse
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 0
    functionsReached:
    - success_response.isOpenID1
    - openid.extensions.draft.pape5.Response.__init__
    - <builtin>.range
    - openid.extensions.draft.pape5.PAPEExtension._generateAlias
    - openid.extensions.draft.pape5.PAPEExtension._addAuthLevelAlias
    - openid.extensions.draft.pape5.Response.setAuthLevel
    - auth_levels.items
    - <builtin>.super
    - success_response.getSignedNS
    - openid.extensions.draft.pape5.PAPEExtension._getAlias
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: success_response.getSignedNS
    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: success_response.isOpenID1
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 3
    IfCount: 13
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f9f488ce280>
    argNames:
    - self
    - args
    - is_openid1
    - strict
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 385
    functionName: openid.extensions.draft.pape5.Response.parseExtensionArgs
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 0
    functionsReached:
    - warnings.warn
    - <builtin>.len
    - openid.extensions.draft.pape5.PAPEExtension._getAlias
    - <builtin>.range
    - openid.extensions.draft.pape5.PAPEExtension._generateAlias
    - TIME_VALIDATOR.match
    - openid.extensions.draft.pape5.PAPEExtension._addAuthLevelAlias
    - policies_str.split
    - openid.extensions.draft.pape5.Response.setAuthLevel
    - args.get
    - alias.startswith
    - args.items
    - key.startswith
    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: <builtin>.len
    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: args.items
    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: key.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: alias.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: TIME_VALIDATOR.match
    functionSourceFile: <builtin>
    functionUses: 5
    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: 455
    functionName: openid.extensions.draft.pape5.Response.getExtensionArgs
    functionSourceFile: openid.extensions.draft.pape5
    functionUses: 1
    functionsReached:
    - TIME_VALIDATOR.match
    - <builtin>.str
    - openid.extensions.draft.pape5.PAPEExtension._getAlias
    - <builtin>.len
    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: openid.extension
    functionSourceFile: openid.extension
    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: openid.extension.Extension.getExtensionArgs
    functionSourceFile: openid.extension
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f9f4856f820>
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 26
    functionName: openid.extension.Extension.toMessage
    functionSourceFile: openid.extension
    functionUses: 0
    functionsReached:
    - openid.extensions.sreg.SRegRequest.getExtensionArgs
    - openid.extensions.ax.AXKeyValueMessage._getExtensionKVArgs
    - openid.message.NamespaceMap.addAlias
    - openid.extensions.draft.pape2.Response.getExtensionArgs
    - <builtin>.type
    - openid.extensions.ax.FetchResponse.getExtensionArgs
    - <builtin>.list
    - ax_args.update
    - zero_value_types.append
    - openid.message.Message.__init__
    - openid.extensions.draft.pape5.PAPEExtension._getAlias
    - openid.message.Message.getOpenIDNamespace
    - openid.message.NamespaceMap.add
    - openid.extensions.ax.AXMessage._newArgs
    - openid.message.Message.setArg
    - <builtin>.enumerate
    - openid.message.Message.setOpenIDNamespace
    - openid.message.NamespaceMap.getAlias
    - openid.extensions.draft.pape5.Response.getExtensionArgs
    - <builtin>.str
    - <builtin>.range
    - openid.message.Message.updateArgs
    - openid.extensions.sreg.SRegResponse.getExtensionArgs
    - openid.message.NamespaceMap.__init__
    - <builtin>.len
    - preferred_types.append
    - warnings.warn
    - openid.message.Message.isOpenID1
    - openid.extensions.draft.pape2.Request.getExtensionArgs
    - openid.extensions.ax.FetchRequest.getExtensionArgs
    - required.append
    - <builtin>.repr
    - if_available.append
    - <builtin>.isinstance
    - TIME_VALIDATOR.match
    - updates.items
    - openid.message.Message._fixNS
    - openid.extensions.draft.pape5.Request.getExtensionArgs
    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 0x7f9f490a12e0>
    argNames:
    - self
    - openid_namespace
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 155
    functionName: openid.message.Message.__init__
    functionSourceFile: openid.message
    functionUses: 31
    functionsReached:
    - <builtin>.repr
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - <builtin>.type
    - openid.message.NamespaceMap.__init__
    - openid.message.Message.setOpenIDNamespace
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 273
    functionName: openid.message.Message.isOpenID1
    functionSourceFile: openid.message
    functionUses: 9
    functionsReached:
    - openid.message.Message.getOpenIDNamespace
    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 0x7f9f4853b0a0>
    argNames:
    - self
    - namespace_uri
    - desired_alias
    - implicit
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 604
    functionName: openid.message.NamespaceMap.addAlias
    functionSourceFile: openid.message
    functionUses: 44
    functionsReached:
    - <builtin>.type
    - <builtin>.str
    - <builtin>.isinstance
    - <builtin>.repr
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - namespace_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 583
    functionName: openid.message.NamespaceMap.getAlias
    functionSourceFile: ''
    functionUses: 22
    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: 74
    functionName: openid.extensions.draft.pape2.Request.getExtensionArgs
    functionSourceFile: openid.extensions.draft.pape2
    functionUses: 1
    functionsReached:
    - <builtin>.str
    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: 363
    functionName: openid.extensions.sreg.SRegRequest.getExtensionArgs
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 222
    functionName: openid.extensions.ax.FetchRequest.getExtensionArgs
    functionSourceFile: openid.extensions.ax
    functionUses: 1
    functionsReached:
    - <builtin>.repr
    - required.append
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - openid.message.NamespaceMap.add
    - if_available.append
    - <builtin>.isinstance
    - openid.extensions.ax.AXMessage._newArgs
    - <builtin>.type
    - openid.message.NamespaceMap.__init__
    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: 1
    functionLinenumber: 258
    functionName: openid.extensions.draft.pape2.Response.getExtensionArgs
    functionSourceFile: openid.extensions.draft.pape2
    functionUses: 1
    functionsReached:
    - <builtin>.str
    - <builtin>.range
    - TIME_VALIDATOR.match
    - <builtin>.list
    - <builtin>.len
    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: 485
    functionName: openid.extensions.sreg.SRegResponse.getExtensionArgs
    functionSourceFile: ''
    functionUses: 1
    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: 3
    functionLinenumber: 623
    functionName: openid.extensions.ax.FetchResponse.getExtensionArgs
    functionSourceFile: openid.extensions.ax
    functionUses: 1
    functionsReached:
    - <builtin>.repr
    - openid.extensions.ax.AXKeyValueMessage._getExtensionKVArgs
    - openid.message.NamespaceMap.add
    - openid.message.NamespaceMap.addAlias
    - <builtin>.str
    - <builtin>.isinstance
    - openid.extensions.ax.AXMessage._newArgs
    - <builtin>.type
    - openid.message.NamespaceMap.__init__
    - <builtin>.enumerate
    - <builtin>.len
    - ax_args.update
    - zero_value_types.append
    - openid.message.NamespaceMap.getAlias
    linkageType: pythonLinkage
    raised:
    - AXError
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - namespace
    - updates
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 509
    functionName: openid.message.Message.updateArgs
    functionSourceFile: openid.message
    functionUses: 4
    functionsReached:
    - warnings.warn
    - <builtin>.repr
    - <builtin>.str
    - openid.message.NamespaceMap.add
    - <builtin>.isinstance
    - openid.message.NamespaceMap.addAlias
    - openid.message.Message.setArg
    - updates.items
    - <builtin>.type
    - openid.message.Message._fixNS
    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: openid.message
    functionSourceFile: openid.message
    functionUses: 0
    functionsReached:
    - <builtin>.object
    - openid.oidutil.Symbol.__init__
    - ElementTree.XML
    - openid.oidutil.importElementTree
    - logger.exception
    - <builtin>.__import__
    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 0x7f9f48988430>
    argNames:
    - module_names
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 89
    functionName: openid.oidutil.importElementTree
    functionSourceFile: openid.oidutil
    functionUses: 3
    functionsReached:
    - logger.exception
    - <builtin>.__import__
    - ElementTree.XML
    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: 222
    functionName: openid.oidutil.Symbol.__init__
    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: 92
    functionName: openid.message.InvalidOpenIDNamespace.__str__
    functionSourceFile: openid.message
    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>.object
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - namespace_uri
    - alias
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 115
    functionName: openid.message.registerNamespaceAlias
    functionSourceFile: openid.message
    functionUses: 1
    functionsReached:
    - registered_aliases.get
    - <builtin>.list
    - registered_aliases.values
    linkageType: pythonLinkage
    raised:
    - NamespaceAliasRegistrationError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: registered_aliases.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: registered_aliases.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: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 578
    functionName: openid.message.NamespaceMap.__init__
    functionSourceFile: ''
    functionUses: 38
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - openid_ns_uri
    - implicit
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 256
    functionName: openid.message.Message.setOpenIDNamespace
    functionSourceFile: openid.message
    functionUses: 33
    functionsReached:
    - <builtin>.repr
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - InvalidOpenIDNamespace
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 170
    functionName: openid.message.Message.fromPostArgs
    functionSourceFile: openid.message
    functionUses: 6
    functionsReached:
    - <builtin>.repr
    - key.split
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - <builtin>.type
    - openid.message.NamespaceMap.__init__
    - openid.message.Message.setOpenIDNamespace
    - args.items
    - openid.message.Message.__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: key.split
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - openid_args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 198
    functionName: openid.message.Message.fromOpenIDArgs
    functionSourceFile: openid.message
    functionUses: 8
    functionsReached:
    - <builtin>.repr
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - <builtin>.type
    - openid.message.NamespaceMap.__init__
    - openid.message.Message.setOpenIDNamespace
    - openid.message.Message.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - openid_args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 208
    functionName: openid.message.Message._fromOpenIDArgs
    functionSourceFile: openid.message
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - openid.message.NamespaceMap.getNamespaceURI
    - openid.message.Message.isOpenID1
    - openid.message.Message.getOpenIDNamespace
    - warnings.warn
    - openid.message.NamespaceMap.addAlias
    - <builtin>.str
    - openid.message.NamespaceMap.add
    - openid_args.items
    - <builtin>.isinstance
    - openid.message.Message.setArg
    - <builtin>.type
    - openid.message.Message._fixNS
    - openid.message.Message.setOpenIDNamespace
    - openid.message.Message._getDefaultNamespace
    - registered_aliases.get
    - ns_args.append
    - rest.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: openid_args.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: rest.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: ns_args.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: 270
    functionName: openid.message.Message.getOpenIDNamespace
    functionSourceFile: ''
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - alias
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 586
    functionName: openid.message.NamespaceMap.getNamespaceURI
    functionSourceFile: ''
    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
    - mystery_alias
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 245
    functionName: openid.message.Message._getDefaultNamespace
    functionSourceFile: openid.message
    functionUses: 1
    functionsReached:
    - openid.message.Message.isOpenID1
    - registered_aliases.get
    - openid.message.Message.getOpenIDNamespace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - namespace
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 519
    functionName: openid.message.Message.setArg
    functionSourceFile: openid.message
    functionUses: 16
    functionsReached:
    - warnings.warn
    - <builtin>.repr
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - openid.message.NamespaceMap.add
    - <builtin>.isinstance
    - <builtin>.type
    - openid.message.Message._fixNS
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 276
    functionName: openid.message.Message.isOpenID2
    functionSourceFile: openid.message
    functionUses: 0
    functionsReached:
    - openid.message.Message.getOpenIDNamespace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - kvform_string
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 279
    functionName: openid.message.Message.fromKVForm
    functionSourceFile: openid.message
    functionUses: 2
    functionsReached:
    - openid.kvform.kvToSeq
    - openid.message.NamespaceMap.addAlias
    - <builtin>.type
    - openid.message.Message.__init__
    - line.strip
    - openid.message.Message.fromOpenIDArgs
    - k.strip
    - <builtin>.dict
    - pairs.append
    - line.split
    - logger.warning
    - openid.message.Message.setOpenIDNamespace
    - data.split
    - v.strip
    - <builtin>.str
    - openid.message.NamespaceMap.__init__
    - openid.kvform.kvToDict
    - <builtin>.len
    - openid.kvform.kvToSeq.err
    - <builtin>.repr
    - <builtin>.isinstance
    - data.decode
    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: 3
    functionLinenumber: 133
    functionName: openid.kvform.kvToDict
    functionSourceFile: openid.kvform
    functionUses: 3
    functionsReached:
    - v.strip
    - line.strip
    - openid.kvform.kvToSeq
    - <builtin>.isinstance
    - data.decode
    - k.strip
    - <builtin>.dict
    - pairs.append
    - line.split
    - logger.warning
    - <builtin>.len
    - data.split
    - openid.kvform.kvToSeq.err
    linkageType: 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: openid.message.Message
    functionSourceFile: openid.message
    functionUses: 0
    functionsReached:
    - <builtin>.classmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 285
    functionName: openid.message.Message.copy
    functionSourceFile: openid.message
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 288
    functionName: openid.message.Message.toPostArgs
    functionSourceFile: openid.message
    functionUses: 18
    functionsReached:
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - warnings.warn
    - <builtin>.str
    - value.decode
    - <builtin>.isinstance
    - openid.message.NamespaceMap.isImplicit
    - openid.message.Message._fixNS
    - openid.message.NamespaceMap.items
    - openid.message.NamespaceMap.getAlias
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 597
    functionName: openid.message.NamespaceMap.items
    functionSourceFile: ''
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - namespace_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 677
    functionName: openid.message.NamespaceMap.isImplicit
    functionSourceFile: ''
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: openid.oidutil.toUnicode
    functionSourceFile: openid.oidutil
    functionUses: 19
    functionsReached:
    - <builtin>.str
    - value.decode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - namespace
    - ns_key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 440
    functionName: openid.message.Message.getKey
    functionSourceFile: openid.message
    functionUses: 19
    functionsReached:
    - warnings.warn
    - <builtin>.str
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    - openid.message.NamespaceMap.getAlias
    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: 312
    functionName: openid.message.Message.toArgs
    functionSourceFile: openid.message
    functionUses: 3
    functionsReached:
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - warnings.warn
    - openid.message.Message.toPostArgs
    - k.startswith
    - <builtin>.str
    - value.decode
    - <builtin>.isinstance
    - openid.message.NamespaceMap.isImplicit
    - post_args.items
    - openid.message.Message._fixNS
    - openid.message.NamespaceMap.items
    - openid.message.NamespaceMap.getAlias
    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: post_args.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: k.startswith
    functionSourceFile: <builtin>
    functionUses: 5
    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 0x7f9f483d4490>
    - <ast.Constant object at 0x7f9f483d49a0>
    argNames:
    - self
    - action_url
    - form_tag_attrs
    - submit_text
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 328
    functionName: openid.message.Message.toFormMarkup
    functionSourceFile: openid.message
    functionUses: 4
    functionsReached:
    - openid.oidutil.toUnicode
    - form.append
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - ElementTree.tostring
    - warnings.warn
    - value.decode
    - <builtin>.str
    - <builtin>.isinstance
    - ElementTree.Element
    - form_tag_attrs.items
    - openid.message.NamespaceMap.isImplicit
    - openid.message.Message._fixNS
    - openid.message.NamespaceMap.items
    - openid.message.NamespaceMap.getAlias
    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: ElementTree.Element
    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: form_tag_attrs.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: form.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: ElementTree.tostring
    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
    - base_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 385
    functionName: openid.message.Message.toURL
    functionSourceFile: openid.message
    functionUses: 7
    functionsReached:
    - value.decode
    - openid.message.NamespaceMap.isImplicit
    - <builtin>.list
    - <builtin>.sorted
    - k.encode
    - v.encode
    - urllib.parse.urlencode
    - openid.message.NamespaceMap.items
    - openid.message.NamespaceMap.getAlias
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - <builtin>.hasattr
    - <builtin>.str
    - openid.oidutil.appendArgs
    - warnings.warn
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    - args.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 148
    functionName: openid.oidutil.appendArgs
    functionSourceFile: openid.oidutil
    functionUses: 12
    functionsReached:
    - k.encode
    - <builtin>.hasattr
    - <builtin>.str
    - v.encode
    - <builtin>.isinstance
    - urllib.parse.urlencode
    - <builtin>.list
    - args.items
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 390
    functionName: openid.message.Message.toKVForm
    functionSourceFile: openid.message
    functionUses: 2
    functionsReached:
    - lines.append
    - openid.kvform.seqToKV.err
    - value.decode
    - openid.message.NamespaceMap.isImplicit
    - openid.kvform.dictToKV
    - <builtin>.sorted
    - openid.kvform.seqToKV
    - k.startswith
    - openid.message.Message.toArgs
    - k.strip
    - logger.warning
    - openid.message.NamespaceMap.items
    - openid.message.NamespaceMap.getAlias
    - v.strip
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - <builtin>.str
    - post_args.items
    - v.decode
    - d.items
    - warnings.warn
    - k.decode
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    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: 3
    functionLinenumber: 129
    functionName: openid.kvform.dictToKV
    functionSourceFile: openid.kvform
    functionUses: 3
    functionsReached:
    - v.strip
    - lines.append
    - openid.kvform.seqToKV
    - k.decode
    - openid.kvform.seqToKV.err
    - <builtin>.str
    - <builtin>.isinstance
    - k.strip
    - v.decode
    - logger.warning
    - d.items
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 397
    functionName: openid.message.Message.toURLEncoded
    functionSourceFile: openid.message
    functionUses: 0
    functionsReached:
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - warnings.warn
    - openid.message.Message.toPostArgs
    - <builtin>.str
    - value.decode
    - <builtin>.isinstance
    - openid.message.NamespaceMap.isImplicit
    - urllib.parse.urlencode
    - openid.message.Message._fixNS
    - openid.message.NamespaceMap.getAlias
    - openid.message.NamespaceMap.items
    - <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>.sorted
    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: urllib.parse.urlencode
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - namespace
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 402
    functionName: openid.message.Message._fixNS
    functionSourceFile: openid.message
    functionUses: 36
    functionsReached:
    - warnings.warn
    - <builtin>.str
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    - UndefinedOpenIDNamespace
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - namespace
    - ns_key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 436
    functionName: openid.message.Message.hasKey
    functionSourceFile: openid.message
    functionUses: 0
    functionsReached:
    - warnings.warn
    - <builtin>.str
    - openid.message.Message._fixNS
    - <builtin>.isinstance
    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 0x7f9f484ecbb0>
    argNames:
    - self
    - namespace
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 459
    functionName: openid.message.Message.getArg
    functionSourceFile: openid.message
    functionUses: 2
    functionsReached:
    - warnings.warn
    - <builtin>.str
    - openid.message.Message._fixNS
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - namespace
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 488
    functionName: openid.message.Message.getArgs
    functionSourceFile: openid.message
    functionUses: 0
    functionsReached:
    - warnings.warn
    - <builtin>.str
    - <builtin>.isinstance
    - args.append
    - <builtin>.dict
    - openid.message.Message._fixNS
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: updates.items
    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:
    - self
    - namespace_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 650
    functionName: openid.message.NamespaceMap.add
    functionSourceFile: openid.message
    functionUses: 21
    functionsReached:
    - <builtin>.repr
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - <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
    - namespace
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 531
    functionName: openid.message.Message.delArg
    functionSourceFile: openid.message
    functionUses: 0
    functionsReached:
    - warnings.warn
    - <builtin>.str
    - openid.message.Message._fixNS
    - <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: 535
    functionName: openid.message.Message.__repr__
    functionSourceFile: openid.message
    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: 539
    functionName: openid.message.Message.__eq__
    functionSourceFile: openid.message
    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: 542
    functionName: openid.message.Message.__ne__
    functionSourceFile: openid.message
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f9f48505880>
    argNames:
    - self
    - aliased_key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 545
    functionName: openid.message.Message.getAliasedArg
    functionSourceFile: openid.message
    functionUses: 0
    functionsReached:
    - warnings.warn
    - openid.message.NamespaceMap.getNamespaceURI
    - openid.message.Message.getOpenIDNamespace
    - <builtin>.str
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    - openid.message.Message.getArg
    - aliased_key.split
    - aliased_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: aliased_key.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: aliased_key.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: 589
    functionName: openid.message.NamespaceMap.iterNamespaceURIs
    functionSourceFile: openid.message
    functionUses: 1
    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: <builtin>.iter
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 593
    functionName: openid.message.NamespaceMap.iterAliases
    functionSourceFile: openid.message
    functionUses: 0
    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: <builtin>.repr
    functionSourceFile: <builtin>
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - namespace_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 671
    functionName: openid.message.NamespaceMap.isDefined
    functionSourceFile: openid.message
    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
    - namespace_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 674
    functionName: openid.message.NamespaceMap.__contains__
    functionSourceFile: openid.message
    functionUses: 0
    functionsReached:
    - openid.message.NamespaceMap.isDefined
    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: openid.oidutil
    functionSourceFile: openid.oidutil
    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: 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: value.decode
    functionSourceFile: <builtin>
    functionUses: 20
    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 0x7f9f49046790>
    argNames:
    - form
    - title
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: openid.oidutil.autoSubmitHTML
    functionSourceFile: openid.oidutil
    functionUses: 3
    functionsReached:
    - <builtin>.str
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f9f48a3d460>
    argNames:
    - module_names
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 68
    functionName: openid.oidutil.importSafeElementTree
    functionSourceFile: openid.oidutil
    functionUses: 1
    functionsReached:
    - logger.exception
    - <builtin>.__import__
    - ElementTree.XML
    - openid.oidutil.importElementTree
    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: <builtin>.__import__
    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: ElementTree.XML
    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: 25
    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 0x7f9f484ec460>
    argNames:
    - message
    - level
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 126
    functionName: openid.oidutil.log
    functionSourceFile: openid.oidutil
    functionUses: 0
    functionsReached:
    - logger.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: logger.error
    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: <builtin>.hasattr
    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: k.encode
    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: v.encode
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 199
    functionName: openid.oidutil.toBase64
    functionSourceFile: openid.oidutil
    functionUses: 16
    functionsReached:
    - <builtin>.isinstance
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.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: Crypto.Util.number.long_to_bytes.encode
    functionSourceFile: Crypto
    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: binascii.b2a_base64
    functionSourceFile: binascii
    functionUses: 17
    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: 206
    functionName: openid.oidutil.fromBase64
    functionSourceFile: openid.oidutil
    functionUses: 16
    functionsReached:
    - <builtin>.isinstance
    - binascii.a2b_base64
    - Crypto.Util.number.bytes_to_long.encode
    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: Crypto.Util.number.bytes_to_long.encode
    functionSourceFile: Crypto
    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: binascii.a2b_base64
    functionSourceFile: binascii
    functionUses: 17
    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: 225
    functionName: openid.oidutil.Symbol.__eq__
    functionSourceFile: openid.oidutil
    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:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 228
    functionName: openid.oidutil.Symbol.__ne__
    functionSourceFile: openid.oidutil
    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: 231
    functionName: openid.oidutil.Symbol.__hash__
    functionSourceFile: openid.oidutil
    functionUses: 0
    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: <builtin>.hash
    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: 234
    functionName: openid.oidutil.Symbol.__repr__
    functionSourceFile: openid.oidutil
    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: openid.kvform
    functionSourceFile: openid.kvform
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 6
    IfCount: 9
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f9f485a1220>
    argNames:
    - seq
    - strict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 12
    functionName: openid.kvform.seqToKV
    functionSourceFile: openid.kvform
    functionUses: 9
    functionsReached:
    - v.strip
    - lines.append
    - k.decode
    - openid.kvform.seqToKV.err
    - <builtin>.str
    - <builtin>.isinstance
    - k.strip
    - v.decode
    - logger.warning
    linkageType: pythonLinkage
    raised:
    - KVFormError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: openid.kvform.seqToKV.err
    functionSourceFile: openid.kvform
    functionUses: 10
    functionsReached:
    - logger.warning
    linkageType: pythonLinkage
    raised:
    - KVFormError
    returnType: N/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: 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: k.decode
    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: k.strip
    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: v.decode
    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: v.strip
    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: lines.append
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 7
    IfCount: 7
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f9f485d1940>
    argNames:
    - data
    - strict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 68
    functionName: openid.kvform.kvToSeq
    functionSourceFile: openid.kvform
    functionUses: 11
    functionsReached:
    - v.strip
    - line.strip
    - <builtin>.isinstance
    - data.decode
    - k.strip
    - pairs.append
    - line.split
    - logger.warning
    - <builtin>.len
    - data.split
    - openid.kvform.kvToSeq.err
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: openid.kvform.kvToSeq.err
    functionSourceFile: openid.kvform
    functionUses: 12
    functionsReached:
    - logger.warning
    linkageType: pythonLinkage
    raised:
    - KVFormError
    returnType: N/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: 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: data.split
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.strip
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.split
    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: pairs.append
    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: d.items
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    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: 2
    functionLinenumber: -1
    functionName: openid.extensions.sreg
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - registered_aliases.get
    - openid.message.registerNamespaceAlias
    - <builtin>.list
    - logging.getLogger
    - logger.exception
    - registered_aliases.values
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - field_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 75
    functionName: openid.extensions.sreg.checkFieldName
    functionSourceFile: openid.extensions.sreg
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - endpoint
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 106
    functionName: openid.extensions.sreg.supportsSReg
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - endpoint.usesExtension
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: endpoint.usesExtension
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    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: 135
    functionName: openid.extensions.sreg.getSRegNS
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - message.namespaces.getAlias
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.namespaces.getAlias
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f9f484d2a30>
    - <ast.Constant object at 0x7f9f484d2220>
    - <ast.Constant object at 0x7f9f484d25e0>
    - <ast.Name object at 0x7f9f484d2f70>
    argNames:
    - self
    - required
    - optional
    - policy_url
    - sreg_ns_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 196
    functionName: openid.extensions.sreg.SRegRequest.__init__
    functionSourceFile: openid.extensions.sreg
    functionUses: 1
    functionsReached:
    - Extension.__init__
    - <builtin>.isinstance
    - openid.extensions.sreg.checkFieldName
    - openid.extensions.sreg.SRegRequest.requestField
    - openid.extensions.sreg.SRegRequest.requestFields
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: Extension.__init__
    functionSourceFile: <builtin>
    functionUses: 5
    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 0x7f9f484dc220>
    - <ast.Constant object at 0x7f9f484dcac0>
    argNames:
    - self
    - field_names
    - required
    - strict
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 340
    functionName: openid.extensions.sreg.SRegRequest.requestFields
    functionSourceFile: openid.extensions.sreg
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - openid.extensions.sreg.checkFieldName
    - openid.extensions.sreg.SRegRequest.requestField
    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>.staticmethod
    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: 1
    functionLinenumber: -1
    functionName: openid.extensions.sreg.SRegRequest
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    - <builtin>.classmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 218
    functionName: openid.extensions.sreg.SRegRequest.fromOpenIDRequest
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - Extension.__init__
    - <builtin>.isinstance
    - openid.extensions.sreg.checkFieldName
    - openid.extensions.sreg.SRegRequest.requestField
    - message.getArgs
    - openid.extensions.sreg.SRegRequest.__init__
    - request.message.copy
    - openid.extensions.sreg.SRegRequest.requestFields
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.message.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: message.getArgs
    functionSourceFile: <builtin>
    functionUses: 6
    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 0x7f9f488eb6d0>
    argNames:
    - self
    - args
    - strict
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 243
    functionName: openid.extensions.sreg.SRegRequest.parseExtensionArgs
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - items.split
    - args.get
    - openid.extensions.sreg.checkFieldName
    - openid.extensions.sreg.SRegRequest.requestField
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f9f484e7fa0>
    - <ast.Constant object at 0x7f9f484e71c0>
    argNames:
    - self
    - field_name
    - required
    - strict
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 303
    functionName: openid.extensions.sreg.SRegRequest.requestField
    functionSourceFile: openid.extensions.sreg
    functionUses: 4
    functionsReached:
    - openid.extensions.sreg.checkFieldName
    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: 284
    functionName: openid.extensions.sreg.SRegRequest.allRequestedFields
    functionSourceFile: openid.extensions.sreg
    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: 292
    functionName: openid.extensions.sreg.SRegRequest.wereFieldsRequested
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - openid.extensions.sreg.SRegRequest.allRequestedFields
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - field_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 299
    functionName: openid.extensions.sreg.SRegRequest.__contains__
    functionSourceFile: openid.extensions.sreg
    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 0x7f9f48a15610>
    - <ast.Name object at 0x7f9f48a15550>
    argNames:
    - self
    - data
    - sreg_ns_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 409
    functionName: openid.extensions.sreg.SRegResponse.__init__
    functionSourceFile: openid.extensions.sreg
    functionUses: 2
    functionsReached:
    - Extension.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - request
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 418
    functionName: openid.extensions.sreg.SRegResponse.extractResponse
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - Extension.__init__
    - openid.extensions.sreg.SRegResponse.__init__
    - data.get
    - request.allRequestedFields
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.allRequestedFields
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: openid.extensions.sreg.SRegResponse
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    - <builtin>.classmethod
    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 0x7f9f4842ca00>
    argNames:
    - cls
    - success_response
    - signed_only
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 450
    functionName: openid.extensions.sreg.SRegResponse.fromSuccessResponse
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - openid.extensions.sreg.SRegResponse.__init__
    - Extension.__init__
    - success_response.message.getArgs
    - success_response.getSignedNS
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: success_response.message.getArgs
    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:
    - <ast.Constant object at 0x7f9f489ef100>
    argNames:
    - self
    - field_name
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 494
    functionName: openid.extensions.sreg.SRegResponse.get
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - openid.extensions.sreg.checkFieldName
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 500
    functionName: openid.extensions.sreg.SRegResponse.items
    functionSourceFile: openid.extensions.sreg
    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: 1
    functionLinenumber: 505
    functionName: openid.extensions.sreg.SRegResponse.iteritems
    functionSourceFile: openid.extensions.sreg
    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: 508
    functionName: openid.extensions.sreg.SRegResponse.keys
    functionSourceFile: openid.extensions.sreg
    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: 1
    functionLinenumber: 511
    functionName: openid.extensions.sreg.SRegResponse.iterkeys
    functionSourceFile: openid.extensions.sreg
    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: 0
    functionLinenumber: 514
    functionName: openid.extensions.sreg.SRegResponse.has_key
    functionSourceFile: openid.extensions.sreg
    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
    - field_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 517
    functionName: openid.extensions.sreg.SRegResponse.__contains__
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - openid.extensions.sreg.checkFieldName
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 521
    functionName: openid.extensions.sreg.SRegResponse.__iter__
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - field_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 524
    functionName: openid.extensions.sreg.SRegResponse.__getitem__
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - openid.extensions.sreg.checkFieldName
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 528
    functionName: openid.extensions.sreg.SRegResponse.__bool__
    functionSourceFile: openid.extensions.sreg
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    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: openid.codecutil
    functionSourceFile: openid.codecutil
    functionUses: 0
    functionsReached:
    - codecs.register_error
    - <builtin>.chr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - octet
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: openid.codecutil._in_escape_range
    functionSourceFile: openid.codecutil
    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:
    - character
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: openid.codecutil._starts_surrogate_pair
    functionSourceFile: openid.codecutil
    functionUses: 2
    functionsReached:
    - <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>.ord
    functionSourceFile: <builtin>
    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:
    - character
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 58
    functionName: openid.codecutil._ends_surrogate_pair
    functionSourceFile: openid.codecutil
    functionUses: 0
    functionsReached:
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - chunk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 63
    functionName: openid.codecutil._pct_encoded_replacements
    functionSourceFile: openid.codecutil
    functionUses: 1
    functionsReached:
    - openid.codecutil._in_escape_range
    - replacements.append
    - <builtin>.iter
    - <builtin>.next
    - openid.codecutil._starts_surrogate_pair
    - <builtin>.ord
    - <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: replacements.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>.next
    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:
    - err
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 80
    functionName: openid.codecutil._pct_escape_handler
    functionSourceFile: openid.codecutil
    functionUses: 0
    functionsReached:
    - openid.codecutil._in_escape_range
    - replacements.append
    - <builtin>.iter
    - <builtin>.next
    - openid.codecutil._starts_surrogate_pair
    - openid.codecutil._pct_encoded_replacements
    - <builtin>.ord
    - <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: codecs.register_error
    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: openid.dh
    functionSourceFile: openid.dh
    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:
    - x
    - y
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4
    functionName: openid.dh.strxor
    functionSourceFile: openid.dh
    functionUses: 2
    functionsReached:
    - y.encode
    - <builtin>.isinstance
    - <builtin>.bytes
    - <builtin>.zip
    - x.encode
    - <builtin>.len
    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: x.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: y.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: <builtin>.zip
    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: <builtin>.bytes
    functionSourceFile: <builtin>
    functionUses: 22
    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: 3
    functionLinenumber: 21
    functionName: openid.dh.DiffieHellman.fromDefaults
    functionSourceFile: openid.dh
    functionUses: 2
    functionsReached:
    - <builtin>.pow
    - <builtin>.int
    - openid.dh.DiffieHellman._setPrivate
    - openid.dh.DiffieHellman.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - modulus
    - generator
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 26
    functionName: openid.dh.DiffieHellman.__init__
    functionSourceFile: openid.dh
    functionUses: 3
    functionsReached:
    - <builtin>.pow
    - <builtin>.int
    - openid.dh.DiffieHellman._setPrivate
    linkageType: 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: openid.dh.DiffieHellman
    functionSourceFile: openid.dh
    functionUses: 0
    functionsReached:
    - <builtin>.classmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - private
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: openid.dh.DiffieHellman._setPrivate
    functionSourceFile: openid.dh
    functionUses: 4
    functionsReached:
    - <builtin>.pow
    linkageType: pythonLinkage
    raised: []
    returnType: N/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>.pow
    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: 37
    functionName: openid.dh.DiffieHellman.usingDefaultValues
    functionSourceFile: openid.dh
    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
    - composite
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: openid.dh.DiffieHellman.getSharedSecret
    functionSourceFile: openid.dh
    functionUses: 2
    functionsReached:
    - <builtin>.pow
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - composite
    - secret
    - hash_func
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 44
    functionName: openid.dh.DiffieHellman.xorSecret
    functionSourceFile: openid.dh
    functionUses: 1
    functionsReached:
    - <builtin>.bytearray
    - y.encode
    - <builtin>.len
    - <builtin>.pow
    - openid.dh.strxor
    - Crypto.Util.number.long_to_bytes
    - <builtin>.isinstance
    - openid.cryptutil.longToBinary
    - <builtin>.zip
    - <builtin>.bytes
    - b.reverse
    - openid.dh.DiffieHellman.getSharedSecret
    - x.encode
    - pickle.encode_long
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - l
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 102
    functionName: openid.cryptutil.longToBinary
    functionSourceFile: openid.cryptutil
    functionUses: 4
    functionsReached:
    - <builtin>.bytearray
    - Crypto.Util.number.long_to_bytes
    - <builtin>.bytes
    - b.reverse
    - pickle.encode_long
    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: 2
    functionLinenumber: -1
    functionName: openid.cryptutil
    functionSourceFile: openid.cryptutil
    functionUses: 0
    functionsReached:
    - openid.cryptutil.HashContainer.__init__
    - hashlib.sha1
    - hashlib.sha256
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hash_constructor
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 39
    functionName: openid.cryptutil.HashContainer.__init__
    functionSourceFile: openid.cryptutil
    functionUses: 1
    functionsReached:
    - hashlib.sha1
    - hashlib.sha256
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: hashlib.sha256
    functionSourceFile: hashlib
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - key
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: openid.cryptutil.hmacSha1
    functionSourceFile: openid.cryptutil
    functionUses: 0
    functionsReached:
    - hmac.new
    - <builtin>.bytes
    - <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: hmac.new
    functionSourceFile: hmac
    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:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 56
    functionName: openid.cryptutil.sha1
    functionSourceFile: openid.cryptutil
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - hashlib.sha1
    - hashlib.sha256
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - key
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: openid.cryptutil.hmacSha256
    functionSourceFile: openid.cryptutil
    functionUses: 0
    functionsReached:
    - hmac.new
    - <builtin>.bytes
    - <builtin>.isinstance
    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: 70
    functionName: openid.cryptutil.sha256
    functionSourceFile: openid.cryptutil
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - hashlib.sha1
    - hashlib.sha256
    - <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: pickle.encode_long
    functionSourceFile: pickle
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bytearray
    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: b.reverse
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - bytestring
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 112
    functionName: openid.cryptutil.binaryToLong
    functionSourceFile: openid.cryptutil
    functionUses: 3
    functionsReached:
    - Crypto.Util.number.bytes_to_long
    - <builtin>.bytearray
    - pickle.decode_long
    - <builtin>.isinstance
    - <builtin>.bytes
    - b.reverse
    - s.encode
    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: s.encode
    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: pickle.decode_long
    functionSourceFile: pickle
    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: Crypto.Util.number.long_to_bytes
    functionSourceFile: Crypto
    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: Crypto.Util.number.bytes_to_long
    functionSourceFile: Crypto
    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:
    - l
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 129
    functionName: openid.cryptutil.longToBase64
    functionSourceFile: openid.cryptutil
    functionUses: 2
    functionsReached:
    - <builtin>.bytearray
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.encode
    - Crypto.Util.number.long_to_bytes
    - <builtin>.isinstance
    - openid.cryptutil.longToBinary
    - <builtin>.bytes
    - b.reverse
    - pickle.encode_long
    - openid.oidutil.toBase64
    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: 2
    functionLinenumber: 133
    functionName: openid.cryptutil.base64ToLong
    functionSourceFile: openid.cryptutil
    functionUses: 2
    functionsReached:
    - Crypto.Util.number.bytes_to_long
    - binascii.a2b_base64
    - <builtin>.bytearray
    - pickle.decode_long
    - openid.oidutil.fromBase64
    - <builtin>.isinstance
    - <builtin>.bytes
    - b.reverse
    - Crypto.Util.number.bytes_to_long.encode
    - s.encode
    - openid.cryptutil.binaryToLong
    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 0x7f9f48a153a0>
    argNames:
    - length
    - chrs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 137
    functionName: openid.cryptutil.randomString
    functionSourceFile: openid.cryptutil
    functionUses: 3
    functionsReached:
    - os.urandom
    - <builtin>.range
    - random.randrange
    - <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: os.urandom
    functionSourceFile: os
    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: random.randrange
    functionSourceFile: random
    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:
    - s1
    - s2
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: openid.cryptutil.const_eq
    functionSourceFile: openid.cryptutil
    functionUses: 1
    functionsReached:
    - <builtin>.range
    - <builtin>.len
    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: openid.fetchers
    functionSourceFile: openid.fetchers
    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 0x7f9f48a09430>
    - <ast.Constant object at 0x7f9f48a09520>
    argNames:
    - url
    - body
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 42
    functionName: openid.fetchers.fetch
    functionSourceFile: openid.fetchers
    functionUses: 12
    functionsReached:
    - openid.fetchers.getDefaultFetcher
    - HTTPFetcher.__init__
    - openid.fetchers.setDefaultFetcher
    - openid.fetchers.CurlHTTPFetcher.__init__
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - openid.fetchers.createHTTPFetcher
    - fetcher.fetch
    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: 70
    functionName: openid.fetchers.getDefaultFetcher
    functionSourceFile: openid.fetchers
    functionUses: 14
    functionsReached:
    - HTTPFetcher.__init__
    - openid.fetchers.setDefaultFetcher
    - openid.fetchers.CurlHTTPFetcher.__init__
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - openid.fetchers.createHTTPFetcher
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fetcher.fetch
    functionSourceFile: <builtin>
    functionUses: 13
    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: 52
    functionName: openid.fetchers.createHTTPFetcher
    functionSourceFile: openid.fetchers
    functionUses: 15
    functionsReached:
    - openid.fetchers.CurlHTTPFetcher.__init__
    - HTTPFetcher.__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: 317
    functionName: openid.fetchers.CurlHTTPFetcher.__init__
    functionSourceFile: openid.fetchers
    functionUses: 16
    functionsReached:
    - HTTPFetcher.__init__
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f9f48a38490>
    argNames:
    - fetcher
    - wrap_exceptions
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 85
    functionName: openid.fetchers.setDefaultFetcher
    functionSourceFile: openid.fetchers
    functionUses: 15
    functionsReached:
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fetcher
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 189
    functionName: openid.fetchers.ExceptionWrappingFetcher.__init__
    functionSourceFile: ''
    functionUses: 16
    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: 106
    functionName: openid.fetchers.usingCurl
    functionSourceFile: openid.fetchers
    functionUses: 0
    functionsReached:
    - openid.fetchers.getDefaultFetcher
    - HTTPFetcher.__init__
    - openid.fetchers.setDefaultFetcher
    - <builtin>.isinstance
    - openid.fetchers.CurlHTTPFetcher.__init__
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - openid.fetchers.createHTTPFetcher
    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 0x7f9f4838f8b0>
    - <ast.Constant object at 0x7f9f4838fa00>
    - <ast.Constant object at 0x7f9f4838f460>
    - <ast.Constant object at 0x7f9f4838f280>
    argNames:
    - self
    - final_url
    - status
    - headers
    - body
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 121
    functionName: openid.fetchers.HTTPResponse.__init__
    functionSourceFile: openid.fetchers
    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: 127
    functionName: openid.fetchers.HTTPResponse.__repr__
    functionSourceFile: openid.fetchers
    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 0x7f9f48873880>
    - <ast.Constant object at 0x7f9f48873310>
    argNames:
    - self
    - url
    - body
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 139
    functionName: openid.fetchers.HTTPFetcher.fetch
    functionSourceFile: openid.fetchers
    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:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 162
    functionName: openid.fetchers._allowedURL
    functionSourceFile: openid.fetchers
    functionUses: 4
    functionsReached:
    - 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.parse.urlparse
    functionSourceFile: <builtin>
    functionUses: 23
    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 0x7f9f488737c0>
    argNames:
    - self
    - why
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 175
    functionName: openid.fetchers.HTTPFetchingError.__init__
    functionSourceFile: openid.fetchers
    functionUses: 0
    functionsReached:
    - Exception.__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: Exception.__init__
    functionSourceFile: <builtin>
    functionUses: 17
    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
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 192
    functionName: openid.fetchers.ExceptionWrappingFetcher.fetch
    functionSourceFile: openid.fetchers
    functionUses: 0
    functionsReached:
    - extra_dict.get
    - headers_dict.items
    - openid.urinorm.remove_dot_segments
    - urllib2_response.geturl
    - result_segments.append
    - path.find
    - openid.fetchers._allowedURL
    - key.strip
    - headers.setdefault
    - uri_illegal_char_re.search
    - urllib.request.Request
    - <builtin>.list
    - resp.headers.get
    - openid.fetchers.Urllib2Fetcher.fetch
    - header.encode
    - c.setopt
    - line.decode
    - urllib2_response.read
    - uri_mo.group
    - sys.exc_info
    - scheme.lower
    - c.close
    - <builtin>.int
    - <builtin>.dict
    - host.encode
    - line.split
    - uri_re.match
    - header_value.split
    - c.perform
    - resp.body.decode
    - uri.encode
    - openid.fetchers.CurlHTTPFetcher.fetch
    - header_list.append
    - c.getinfo
    - headers.items
    - path.startswith
    - <builtin>.hasattr
    - <builtin>.str
    - result_segments.pop
    - pct_encoded_re.sub
    - <builtin>.bytes
    - openid.fetchers.Urllib2Fetcher._makeResponse
    - data.getvalue
    - value_string.split
    - openid.fetchers.Urllib2Fetcher._lowerCaseKeys
    - authority_re.match
    - <builtin>.len
    - urllib2_response.info
    - value.strip
    - openid.fetchers.HTTPResponse.__init__
    - openid.fetchers.Urllib2Fetcher._parseHeaderValue
    - io.BytesIO
    - pycurl.Curl
    - openid.fetchers.CurlHTTPFetcher._parseHeaders
    - host.lower
    - response_headers.get
    - <builtin>.isinstance
    - name.lower
    - openid.fetchers.CurlHTTPFetcher._checkURL
    - openid.urinorm.urinorm
    - header_file.seek
    - urllib.parse.urlparse
    - time.time
    - authority_mo.groups
    - k.lower
    - contextlib.closing
    linkageType: pythonLinkage
    raised:
    - HTTPFetchingError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f9f490668b0>
    - <ast.Constant object at 0x7f9f49066430>
    argNames:
    - self
    - url
    - body
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 214
    functionName: openid.fetchers.Urllib2Fetcher.fetch
    functionSourceFile: openid.fetchers
    functionUses: 1
    functionsReached:
    - extra_dict.get
    - headers_dict.items
    - urllib2_response.geturl
    - openid.fetchers._allowedURL
    - key.strip
    - headers.setdefault
    - urllib.request.Request
    - <builtin>.list
    - resp.headers.get
    - urllib2_response.read
    - <builtin>.dict
    - header_value.split
    - resp.body.decode
    - <builtin>.hasattr
    - <builtin>.bytes
    - openid.fetchers.Urllib2Fetcher._makeResponse
    - value_string.split
    - openid.fetchers.Urllib2Fetcher._lowerCaseKeys
    - <builtin>.len
    - urllib2_response.info
    - value.strip
    - openid.fetchers.HTTPResponse.__init__
    - openid.fetchers.Urllib2Fetcher._parseHeaderValue
    - <builtin>.isinstance
    - urllib.parse.urlparse
    - k.lower
    - contextlib.closing
    linkageType: pythonLinkage
    raised:
    - AssertionError
    - ValueError
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 13
    IfCount: 7
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f9f4850a3a0>
    - <ast.Constant object at 0x7f9f4850a460>
    argNames:
    - self
    - url
    - body
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 349
    functionName: openid.fetchers.CurlHTTPFetcher.fetch
    functionSourceFile: openid.fetchers
    functionUses: 1
    functionsReached:
    - openid.urinorm.remove_dot_segments
    - result_segments.append
    - path.find
    - openid.fetchers._allowedURL
    - headers.setdefault
    - uri_illegal_char_re.search
    - header.encode
    - c.setopt
    - line.decode
    - uri_mo.group
    - scheme.lower
    - c.close
    - <builtin>.int
    - host.encode
    - line.split
    - uri_re.match
    - c.perform
    - uri.encode
    - path.startswith
    - c.getinfo
    - headers.items
    - header_list.append
    - <builtin>.str
    - result_segments.pop
    - pct_encoded_re.sub
    - data.getvalue
    - authority_re.match
    - <builtin>.len
    - value.strip
    - openid.fetchers.HTTPResponse.__init__
    - io.BytesIO
    - pycurl.Curl
    - openid.fetchers.CurlHTTPFetcher._parseHeaders
    - host.lower
    - response_headers.get
    - name.lower
    - openid.fetchers.CurlHTTPFetcher._checkURL
    - openid.urinorm.urinorm
    - <builtin>.isinstance
    - header_file.seek
    - urllib.parse.urlparse
    - time.time
    - authority_mo.groups
    linkageType: pythonLinkage
    raised:
    - HTTPError
    returnType: N/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: 1
    functionsReached: []
    linkageType: 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: openid.fetchers.Urllib2Fetcher
    functionSourceFile: openid.fetchers
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.setdefault
    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: urllib.request.Request
    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: contextlib.closing
    functionSourceFile: contextlib
    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
    - urllib2_response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 243
    functionName: openid.fetchers.Urllib2Fetcher._makeResponse
    functionSourceFile: openid.fetchers
    functionUses: 2
    functionsReached:
    - extra_dict.get
    - headers_dict.items
    - urllib2_response.geturl
    - key.strip
    - <builtin>.list
    - resp.headers.get
    - urllib2_response.read
    - <builtin>.dict
    - header_value.split
    - resp.body.decode
    - <builtin>.hasattr
    - value_string.split
    - openid.fetchers.Urllib2Fetcher._lowerCaseKeys
    - urllib2_response.info
    - <builtin>.len
    - value.strip
    - openid.fetchers.HTTPResponse.__init__
    - openid.fetchers.Urllib2Fetcher._parseHeaderValue
    - k.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: urllib2_response.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: urllib2_response.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: urllib2_response.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: 2
    argDefaultValues: []
    argNames:
    - self
    - headers_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 273
    functionName: openid.fetchers.Urllib2Fetcher._lowerCaseKeys
    functionSourceFile: openid.fetchers
    functionUses: 3
    functionsReached:
    - headers_dict.items
    - k.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: resp.headers.get
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - header_value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 279
    functionName: openid.fetchers.Urllib2Fetcher._parseHeaderValue
    functionSourceFile: openid.fetchers
    functionUses: 3
    functionsReached:
    - header_value.split
    - value_string.split
    - key.strip
    - <builtin>.len
    - value.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: extra_dict.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: resp.body.decode
    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: headers_dict.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: k.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: header_value.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: value_string.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: key.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: value.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: HTTPFetcher.__init__
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - header_file
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 322
    functionName: openid.fetchers.CurlHTTPFetcher._parseHeaders
    functionSourceFile: openid.fetchers
    functionUses: 2
    functionsReached:
    - name.lower
    - header_file.seek
    - line.split
    - value.strip
    - line.decode
    linkageType: pythonLinkage
    raised:
    - HTTPError
    returnType: N/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_file.seek
    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: line.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: name.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: 2
    argDefaultValues: []
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 344
    functionName: openid.fetchers.CurlHTTPFetcher._checkURL
    functionSourceFile: openid.fetchers
    functionUses: 2
    functionsReached:
    - openid.fetchers._allowedURL
    - 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: time.time
    functionSourceFile: time
    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: 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: header.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: header_list.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: pycurl.Curl
    functionSourceFile: pycurl
    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: c.setopt
    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.BytesIO
    functionSourceFile: io
    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:
    - chunk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 383
    functionName: openid.fetchers.CurlHTTPFetcher.fetch.write_data
    functionSourceFile: openid.fetchers
    functionUses: 0
    functionsReached:
    - data.tell
    - data.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: data.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: data.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 1
    IfCount: 13
    argCount: 1
    argDefaultValues: []
    argNames:
    - uri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 92
    functionName: openid.urinorm.urinorm
    functionSourceFile: openid.urinorm
    functionUses: 3
    functionsReached:
    - uri_mo.group
    - openid.urinorm.remove_dot_segments
    - result_segments.append
    - host.lower
    - scheme.lower
    - <builtin>.str
    - result_segments.pop
    - pct_encoded_re.sub
    - <builtin>.isinstance
    - path.find
    - uri_illegal_char_re.search
    - host.encode
    - uri_re.match
    - authority_re.match
    - <builtin>.len
    - authority_mo.groups
    - uri.encode
    - path.startswith
    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: c.perform
    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: c.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: response_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: data.getvalue
    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: c.close
    functionSourceFile: <builtin>
    functionUses: 2
    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 0x7f9f48505280>
    argNames:
    - self
    - cache
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 432
    functionName: openid.fetchers.HTTPLib2Fetcher.__init__
    functionSourceFile: openid.fetchers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - httplib2.Http
    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: httplib2.Http
    functionSourceFile: <builtin>
    functionUses: 1
    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 0x7f9f4852c1f0>
    - <ast.Constant object at 0x7f9f4852c1c0>
    argNames:
    - self
    - url
    - body
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 450
    functionName: openid.fetchers.HTTPLib2Fetcher.fetch
    functionSourceFile: openid.fetchers
    functionUses: 0
    functionsReached:
    - httplib2_response.items
    - content.decode
    - url.startswith
    - <builtin>.dict
    - <builtin>.list
    - openid.fetchers.HTTPResponse.__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: url.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: content.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: httplib2_response.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: openid.urinorm
    functionSourceFile: openid.urinorm
    functionUses: 0
    functionsReached:
    - <builtin>.ord
    - <builtin>.range
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - mo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 38
    functionName: openid.urinorm._pct_encoded_replace_unreserved
    functionSourceFile: openid.urinorm
    functionUses: 0
    functionsReached:
    - mo.group
    - <builtin>.chr
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - mo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: openid.urinorm._pct_encoded_replace
    functionSourceFile: openid.urinorm
    functionUses: 0
    functionsReached:
    - mo.group
    - <builtin>.chr
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 3
    IfCount: 11
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: openid.urinorm.remove_dot_segments
    functionSourceFile: openid.urinorm
    functionUses: 4
    functionsReached:
    - result_segments.append
    - result_segments.pop
    - path.find
    - <builtin>.len
    - path.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: path.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: result_segments.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: path.find
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result_segments.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: uri.encode
    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: uri_illegal_char_re.search
    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: uri_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: uri_mo.group
    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: scheme.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: authority_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: authority_mo.groups
    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: host.lower
    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: pct_encoded_re.sub
    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: host.encode
    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: 5
    functionLinenumber: -1
    functionName: openid.association
    functionSourceFile: openid.association
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    - openid.association.checkSessionType
    - openid.association.SessionNegotiator.setAllowedTypes
    - openid.association.getSessionTypes
    - <builtin>.list
    - assoc_to_session.get
    - openid.association.SessionNegotiator.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - assoc_type
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 74
    functionName: openid.association.getSessionTypes
    functionSourceFile: openid.association
    functionUses: 7
    functionsReached:
    - assoc_to_session.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: assoc_to_session.get
    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:
    - assoc_type
    - session_type
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 83
    functionName: openid.association.checkSessionType
    functionSourceFile: openid.association
    functionUses: 5
    functionsReached:
    - assoc_to_session.get
    - openid.association.getSessionTypes
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - allowed_types
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 139
    functionName: openid.association.SessionNegotiator.__init__
    functionSourceFile: openid.association
    functionUses: 2
    functionsReached:
    - assoc_to_session.get
    - openid.association.checkSessionType
    - openid.association.SessionNegotiator.setAllowedTypes
    - openid.association.getSessionTypes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - allowed_types
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 145
    functionName: openid.association.SessionNegotiator.setAllowedTypes
    functionSourceFile: openid.association
    functionUses: 3
    functionsReached:
    - assoc_to_session.get
    - openid.association.checkSessionType
    - openid.association.getSessionTypes
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 142
    functionName: openid.association.SessionNegotiator.copy
    functionSourceFile: openid.association
    functionUses: 3
    functionsReached:
    - <builtin>.list
    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 0x7f9f48e76250>
    argNames:
    - self
    - assoc_type
    - session_type
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 153
    functionName: openid.association.SessionNegotiator.addAllowedType
    functionSourceFile: openid.association
    functionUses: 0
    functionsReached:
    - assoc_to_session.get
    - openid.association.SessionNegotiator.addAllowedType
    - openid.association.checkSessionType
    - openid.association.getSessionTypes
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - assoc_type
    - session_type
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 173
    functionName: openid.association.SessionNegotiator.isAllowed
    functionSourceFile: openid.association
    functionUses: 0
    functionsReached:
    - assoc_to_session.get
    - openid.association.getSessionTypes
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 179
    functionName: openid.association.SessionNegotiator.getAllowedType
    functionSourceFile: openid.association
    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:
    - assoc_type
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 192
    functionName: openid.association.getSecretSize
    functionSourceFile: openid.association
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - cls
    - expires_in
    - handle
    - secret
    - assoc_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 265
    functionName: openid.association.Association.fromExpiresIn
    functionSourceFile: openid.association
    functionUses: 7
    functionsReached:
    - <builtin>.int
    - <builtin>.isinstance
    - secret.encode
    - time.time
    - openid.association.Association.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - handle
    - secret
    - issued
    - lifetime
    - assoc_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 303
    functionName: openid.association.Association.__init__
    functionSourceFile: openid.association
    functionUses: 16
    functionsReached:
    - secret.encode
    - <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: secret.encode
    functionSourceFile: <builtin>
    functionUses: 17
    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 0x7f9f490467c0>
    argNames:
    - self
    - now
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 361
    functionName: openid.association.Association.expiresIn
    functionSourceFile: openid.association
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - <builtin>.max
    - 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
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 377
    functionName: openid.association.Association.__lt__
    functionSourceFile: openid.association
    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: 1
    functionLinenumber: 387
    functionName: openid.association.Association.__eq__
    functionSourceFile: openid.association
    functionUses: 0
    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: 0
    functionLinenumber: 400
    functionName: openid.association.Association.__ne__
    functionSourceFile: openid.association
    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: 413
    functionName: openid.association.Association.serialize
    functionSourceFile: openid.association
    functionUses: 0
    functionsReached:
    - v.strip
    - lines.append
    - openid.kvform.seqToKV
    - k.decode
    - binascii.b2a_base64
    - openid.kvform.seqToKV.err
    - Crypto.Util.number.long_to_bytes.encode
    - <builtin>.str
    - <builtin>.int
    - <builtin>.isinstance
    - k.strip
    - pairs.append
    - v.decode
    - logger.warning
    - <builtin>.len
    - openid.oidutil.toBase64
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - assoc_s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 440
    functionName: openid.association.Association.deserialize
    functionSourceFile: openid.association
    functionUses: 6
    functionsReached:
    - keys.append
    - openid.kvform.kvToSeq
    - line.strip
    - openid.oidutil.fromBase64
    - <builtin>.int
    - k.strip
    - pairs.append
    - line.split
    - logger.warning
    - data.split
    - v.strip
    - values.append
    - Crypto.Util.number.bytes_to_long.encode
    - <builtin>.len
    - openid.kvform.kvToSeq.err
    - binascii.a2b_base64
    - <builtin>.isinstance
    - data.decode
    - secret.encode
    - openid.association.Association.__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: keys.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: values.append
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pairs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 469
    functionName: openid.association.Association.sign
    functionSourceFile: openid.association
    functionUses: 3
    functionsReached:
    - v.strip
    - lines.append
    - openid.kvform.seqToKV
    - k.decode
    - openid.kvform.seqToKV.err
    - <builtin>.str
    - <builtin>.isinstance
    - k.strip
    - v.decode
    - logger.warning
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 491
    functionName: openid.association.Association.getMessageSignature
    functionSourceFile: openid.association
    functionUses: 2
    functionsReached:
    - lines.append
    - openid.kvform.seqToKV.err
    - openid.association.Association.sign
    - openid.kvform.seqToKV
    - message.toPostArgs
    - k.strip
    - pairs.append
    - logger.warning
    - openid.oidutil.toBase64
    - v.strip
    - <builtin>.str
    - data.get
    - message.getArg
    - signed.split
    - v.decode
    - openid.association.Association._makePairs
    - k.decode
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.encode
    - <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
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 547
    functionName: openid.association.Association._makePairs
    functionSourceFile: openid.association
    functionUses: 3
    functionsReached:
    - message.toPostArgs
    - data.get
    - message.getArg
    - signed.split
    - pairs.append
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 507
    functionName: openid.association.Association.signMessage
    functionSourceFile: openid.association
    functionUses: 0
    functionsReached:
    - lines.append
    - openid.kvform.seqToKV.err
    - openid.association.Association.sign
    - signed_list.append
    - <builtin>.list
    - signed_message.toPostArgs
    - openid.kvform.seqToKV
    - k.startswith
    - message.toPostArgs
    - k.strip
    - pairs.append
    - logger.warning
    - openid.oidutil.toBase64
    - v.strip
    - message.hasKey
    - <builtin>.str
    - signed_list.sort
    - data.get
    - message.getArg
    - signed.split
    - v.decode
    - openid.association.Association._makePairs
    - openid.association.Association.getMessageSignature
    - k.decode
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.encode
    - message.copy
    - <builtin>.isinstance
    - signed_message.setArg
    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: message.hasKey
    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: message.getArg
    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: message.copy
    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: signed_message.setArg
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: signed_message.toPostArgs
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: signed_list.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: signed_list.sort
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 532
    functionName: openid.association.Association.checkMessageSignature
    functionSourceFile: openid.association
    functionUses: 0
    functionsReached:
    - lines.append
    - openid.kvform.seqToKV.err
    - openid.association.Association.sign
    - calculated_sig.decode
    - openid.kvform.seqToKV
    - message.toPostArgs
    - openid.cryptutil.const_eq
    - k.strip
    - pairs.append
    - logger.warning
    - openid.oidutil.toBase64
    - v.strip
    - <builtin>.str
    - <builtin>.range
    - data.get
    - message.getArg
    - signed.split
    - v.decode
    - <builtin>.len
    - openid.association.Association._makePairs
    - openid.association.Association.getMessageSignature
    - k.decode
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.encode
    - <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: calculated_sig.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: signed.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: message.toPostArgs
    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: 0
    functionLinenumber: 559
    functionName: openid.association.Association.__repr__
    functionSourceFile: openid.association
    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: openid.store.memstore
    functionSourceFile: openid.store.memstore
    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: openid.store.memstore.ServerAssocs.__init__
    functionSourceFile: openid.store.memstore
    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
    - assoc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 13
    functionName: openid.store.memstore.ServerAssocs.set
    functionSourceFile: openid.store.memstore
    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
    - handle
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 16
    functionName: openid.store.memstore.ServerAssocs.get
    functionSourceFile: openid.store.memstore
    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
    - handle
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 19
    functionName: openid.store.memstore.ServerAssocs.remove
    functionSourceFile: openid.store.memstore
    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: 27
    functionName: openid.store.memstore.ServerAssocs.best
    functionSourceFile: openid.store.memstore
    functionUses: 1
    functionsReached:
    - <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: 38
    functionName: openid.store.memstore.ServerAssocs.cleanup
    functionSourceFile: openid.store.memstore
    functionUses: 0
    functionsReached:
    - remove.append
    - <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: 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: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 58
    functionName: openid.store.memstore.MemoryStore.__init__
    functionSourceFile: openid.store.memstore
    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
    - server_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: openid.store.memstore.MemoryStore._getServerAssocs
    functionSourceFile: openid.store.memstore
    functionUses: 3
    functionsReached:
    - openid.store.memstore.ServerAssocs.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - server_url
    - assoc
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 69
    functionName: openid.store.memstore.MemoryStore.storeAssociation
    functionSourceFile: openid.store.memstore
    functionUses: 0
    functionsReached:
    - copy.deepcopy
    - openid.store.memstore.ServerAssocs.__init__
    - openid.store.memstore.MemoryStore._getServerAssocs
    - openid.store.memstore.ServerAssocs.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: copy.deepcopy
    functionSourceFile: copy
    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 0x7f9f4856fd60>
    argNames:
    - self
    - server_url
    - handle
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 73
    functionName: openid.store.memstore.MemoryStore.getAssociation
    functionSourceFile: openid.store.memstore
    functionUses: 0
    functionsReached:
    - openid.store.memstore.ServerAssocs.__init__
    - openid.store.memstore.ServerAssocs.best
    - <builtin>.list
    - openid.store.memstore.ServerAssocs.get
    - openid.store.memstore.MemoryStore._getServerAssocs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - server_url
    - handle
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 80
    functionName: openid.store.memstore.MemoryStore.removeAssociation
    functionSourceFile: openid.store.memstore
    functionUses: 0
    functionsReached:
    - openid.store.memstore.ServerAssocs.remove
    - openid.store.memstore.MemoryStore._getServerAssocs
    - openid.store.memstore.ServerAssocs.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - server_url
    - timestamp
    - salt
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: openid.store.memstore.MemoryStore.useNonce
    functionSourceFile: openid.store.memstore
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - <builtin>.int
    - <builtin>.abs
    - 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: <builtin>.abs
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 95
    functionName: openid.store.memstore.MemoryStore.cleanupNonces
    functionSourceFile: openid.store.memstore
    functionUses: 0
    functionsReached:
    - <builtin>.abs
    - expired.append
    - time.time
    - <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: expired.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: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 107
    functionName: openid.store.memstore.MemoryStore.cleanupAssociations
    functionSourceFile: openid.store.memstore
    functionUses: 0
    functionsReached:
    - assocs.cleanup
    - remove_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: assocs.cleanup
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: remove_urls.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: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 121
    functionName: openid.store.memstore.MemoryStore.__eq__
    functionSourceFile: openid.store.memstore
    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: 125
    functionName: openid.store.memstore.MemoryStore.__ne__
    functionSourceFile: openid.store.memstore
    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: openid.store.nonce
    functionSourceFile: openid.store.nonce
    functionUses: 0
    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:
    - nonce_string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: openid.store.nonce.split
    functionSourceFile: openid.store.nonce
    functionUses: 4
    functionsReached:
    - time.strptime
    - calendar.timegm
    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: time.strptime
    functionSourceFile: time
    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: calendar.timegm
    functionSourceFile: calendar
    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.Name object at 0x7f9f483f8640>
    - <ast.Constant object at 0x7f9f483f8ee0>
    argNames:
    - nonce_string
    - allowed_skew
    - now
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 45
    functionName: openid.store.nonce.checkTimestamp
    functionSourceFile: openid.store.nonce
    functionUses: 0
    functionsReached:
    - time.strptime
    - calendar.timegm
    - time.time
    - openid.store.nonce.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f9f484e7640>
    argNames:
    - when
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 82
    functionName: openid.store.nonce.mkNonce
    functionSourceFile: openid.store.nonce
    functionUses: 2
    functionsReached:
    - random.randrange
    - time.strftime
    - os.urandom
    - <builtin>.range
    - <builtin>.len
    - openid.cryptutil.randomString
    - time.gmtime
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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.strftime
    functionSourceFile: time
    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: openid.store
    functionSourceFile: openid.store
    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: openid.store.filestore
    functionSourceFile: openid.store.filestore
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - 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: <builtin>.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: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 27
    functionName: openid.store.filestore._safe64
    functionSourceFile: openid.store.filestore
    functionUses: 5
    functionsReached:
    - <builtin>.bytearray
    - h64.replace
    - Crypto.Util.number.long_to_bytes.encode
    - binascii.b2a_base64
    - <builtin>.isinstance
    - <builtin>.bytes
    - hashlib.sha1
    - hashlib.sha256
    - openid.cryptutil.sha1
    - openid.oidutil.toBase64
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h64.replace
    functionSourceFile: <builtin>
    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:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: openid.store.filestore._filenameEscape
    functionSourceFile: openid.store.filestore
    functionUses: 5
    functionsReached:
    - <builtin>.ord
    - filename_chunks.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: filename_chunks.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: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 47
    functionName: openid.store.filestore._removeIfPresent
    functionSourceFile: openid.store.filestore
    functionUses: 9
    functionsReached:
    - os.unlink
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - dir_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: openid.store.filestore._ensureDir
    functionSourceFile: openid.store.filestore
    functionUses: 2
    functionsReached:
    - os.path.isdir
    - 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: 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.path.isdir
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - directory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 98
    functionName: openid.store.filestore.FileOpenIDStore.__init__
    functionSourceFile: openid.store.filestore
    functionUses: 0
    functionsReached:
    - os.path.join
    - openid.store.filestore.FileOpenIDStore._setup
    - os.path.normpath
    - os.path.isdir
    - os.path.abspath
    - openid.store.filestore._ensureDir
    - 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.path.abspath
    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: os.path.normpath
    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: os.path.join
    functionSourceFile: os
    functionUses: 10
    functionsReached: []
    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: 124
    functionName: openid.store.filestore.FileOpenIDStore._setup
    functionSourceFile: openid.store.filestore
    functionUses: 1
    functionsReached:
    - os.path.isdir
    - openid.store.filestore._ensureDir
    - os.makedirs
    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: 134
    functionName: openid.store.filestore.FileOpenIDStore._mktemp
    functionSourceFile: openid.store.filestore
    functionUses: 1
    functionsReached:
    - openid.store.filestore._removeIfPresent
    - os.fdopen
    - os.unlink
    - 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: tempfile.mkstemp
    functionSourceFile: tempfile
    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.fdopen
    functionSourceFile: os
    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
    - server_url
    - handle
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 153
    functionName: openid.store.filestore.FileOpenIDStore.getAssociationFilename
    functionSourceFile: openid.store.filestore
    functionUses: 3
    functionsReached:
    - os.path.join
    - h64.replace
    - <builtin>.bytearray
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.encode
    - <builtin>.isinstance
    - <builtin>.bytes
    - filename_chunks.append
    - server_url.find
    - server_url.split
    - hashlib.sha1
    - openid.cryptutil.sha1
    - hashlib.sha256
    - <builtin>.ord
    - openid.store.filestore._safe64
    - rest.split
    - openid.store.filestore._filenameEscape
    - openid.oidutil.toBase64
    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: server_url.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: server_url.split
    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: []
    argNames:
    - self
    - server_url
    - association
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 177
    functionName: openid.store.filestore.FileOpenIDStore.storeAssociation
    functionSourceFile: openid.store.filestore
    functionUses: 0
    functionsReached:
    - h64.replace
    - os.unlink
    - openid.cryptutil.sha1
    - os.fdopen
    - server_url.split
    - os.fsync
    - hashlib.sha256
    - <builtin>.ord
    - openid.store.filestore._safe64
    - openid.oidutil.toBase64
    - os.rename
    - tmp_file.fileno
    - openid.store.filestore._removeIfPresent
    - <builtin>.bytes
    - filename_chunks.append
    - association.serialize
    - hashlib.sha1
    - openid.store.filestore._filenameEscape
    - tmp_file.write
    - tmp_file.close
    - os.path.join
    - <builtin>.bytearray
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.encode
    - <builtin>.isinstance
    - server_url.find
    - openid.store.filestore.FileOpenIDStore.getAssociationFilename
    - tempfile.mkstemp
    - openid.store.filestore.FileOpenIDStore._mktemp
    - rest.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: association.serialize
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_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: tmp_file.fileno
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_file.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: os.rename
    functionSourceFile: os
    functionUses: 1
    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 0x7f9f483898e0>
    argNames:
    - self
    - server_url
    - handle
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 219
    functionName: openid.store.filestore.FileOpenIDStore.getAssociation
    functionSourceFile: openid.store.filestore
    functionUses: 1
    functionsReached:
    - keys.append
    - h64.replace
    - os.unlink
    - openid.kvform.kvToSeq
    - os.listdir
    - association_file.startswith
    - openid.cryptutil.sha1
    - matching_associations.append
    - line.strip
    - openid.oidutil.fromBase64
    - openid.association.Association.deserialize
    - <builtin>.int
    - k.strip
    - pairs.append
    - server_url.split
    - line.split
    - logger.warning
    - assoc_file.close
    - data.split
    - openid.store.filestore._safe64
    - <builtin>.ord
    - hashlib.sha256
    - openid.oidutil.toBase64
    - v.strip
    - values.append
    - assoc_file.read
    - openid.store.filestore._removeIfPresent
    - matching_associations.sort
    - <builtin>.bytes
    - Crypto.Util.number.bytes_to_long.encode
    - filename_chunks.append
    - hashlib.sha1
    - <builtin>.len
    - os.path.basename
    - openid.kvform.kvToSeq.err
    - openid.store.filestore._filenameEscape
    - matching_files.append
    - os.path.join
    - <builtin>.open
    - binascii.a2b_base64
    - <builtin>.bytearray
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.encode
    - <builtin>.isinstance
    - data.decode
    - secret.encode
    - openid.store.filestore.FileOpenIDStore._getAssociation
    - server_url.find
    - openid.store.filestore.FileOpenIDStore.getAssociationFilename
    - openid.association.Association.__init__
    - rest.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 261
    functionName: openid.store.filestore.FileOpenIDStore._getAssociation
    functionSourceFile: openid.store.filestore
    functionUses: 2
    functionsReached:
    - keys.append
    - os.unlink
    - openid.kvform.kvToSeq
    - line.strip
    - openid.oidutil.fromBase64
    - openid.association.Association.deserialize
    - <builtin>.int
    - k.strip
    - pairs.append
    - line.split
    - logger.warning
    - assoc_file.close
    - data.split
    - v.strip
    - values.append
    - assoc_file.read
    - openid.store.filestore._removeIfPresent
    - Crypto.Util.number.bytes_to_long.encode
    - <builtin>.len
    - openid.kvform.kvToSeq.err
    - <builtin>.open
    - binascii.a2b_base64
    - <builtin>.isinstance
    - data.decode
    - secret.encode
    - openid.association.Association.__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.listdir
    functionSourceFile: os
    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: os.path.basename
    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: association_file.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: matching_files.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: matching_associations.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: matching_associations.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: <builtin>.open
    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: assoc_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: assoc_file.close
    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
    - server_url
    - handle
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 289
    functionName: openid.store.filestore.FileOpenIDStore.removeAssociation
    functionSourceFile: openid.store.filestore
    functionUses: 0
    functionsReached:
    - keys.append
    - openid.store.filestore.FileOpenIDStore.getAssociation
    - os.unlink
    - h64.replace
    - openid.kvform.kvToSeq
    - os.listdir
    - association_file.startswith
    - openid.cryptutil.sha1
    - matching_associations.append
    - line.strip
    - openid.oidutil.fromBase64
    - openid.association.Association.deserialize
    - <builtin>.int
    - k.strip
    - pairs.append
    - server_url.split
    - line.split
    - assoc_file.close
    - hashlib.sha256
    - data.split
    - openid.store.filestore._safe64
    - <builtin>.ord
    - logger.warning
    - openid.oidutil.toBase64
    - v.strip
    - values.append
    - assoc_file.read
    - openid.store.filestore._removeIfPresent
    - matching_associations.sort
    - <builtin>.bytes
    - Crypto.Util.number.bytes_to_long.encode
    - filename_chunks.append
    - hashlib.sha1
    - <builtin>.len
    - os.path.basename
    - openid.kvform.kvToSeq.err
    - openid.store.filestore._filenameEscape
    - os.path.join
    - matching_files.append
    - <builtin>.open
    - binascii.a2b_base64
    - <builtin>.bytearray
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.encode
    - <builtin>.isinstance
    - data.decode
    - secret.encode
    - openid.store.filestore.FileOpenIDStore._getAssociation
    - server_url.find
    - openid.store.filestore.FileOpenIDStore.getAssociationFilename
    - openid.association.Association.__init__
    - rest.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - server_url
    - timestamp
    - salt
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 301
    functionName: openid.store.filestore.FileOpenIDStore.useNonce
    functionSourceFile: openid.store.filestore
    functionUses: 0
    functionsReached:
    - h64.replace
    - os.close
    - openid.cryptutil.sha1
    - os.open
    - <builtin>.abs
    - server_url.split
    - hashlib.sha256
    - <builtin>.ord
    - openid.store.filestore._safe64
    - openid.oidutil.toBase64
    - <builtin>.bytes
    - filename_chunks.append
    - hashlib.sha1
    - openid.store.filestore._filenameEscape
    - os.path.join
    - <builtin>.bytearray
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.encode
    - <builtin>.isinstance
    - time.time
    - rest.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.open
    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: os.close
    functionSourceFile: os
    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: 4
    functionLinenumber: 335
    functionName: openid.store.filestore.FileOpenIDStore._allAssocs
    functionSourceFile: openid.store.filestore
    functionUses: 2
    functionsReached:
    - keys.append
    - os.unlink
    - openid.kvform.kvToSeq
    - os.listdir
    - all_associations.append
    - logger.exception
    - line.strip
    - openid.oidutil.fromBase64
    - openid.association.Association.deserialize
    - <builtin>.int
    - association_file.close
    - k.strip
    - pairs.append
    - line.split
    - logger.warning
    - data.split
    - v.strip
    - values.append
    - openid.store.filestore._removeIfPresent
    - Crypto.Util.number.bytes_to_long.encode
    - <builtin>.len
    - openid.kvform.kvToSeq.err
    - os.path.join
    - <builtin>.open
    - binascii.a2b_base64
    - <builtin>.isinstance
    - secret.encode
    - data.decode
    - openid.association.Association.__init__
    - association_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: association_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: association_file.close
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: all_associations.append
    functionSourceFile: <builtin>
    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: 6
    functionLinenumber: 368
    functionName: openid.store.filestore.FileOpenIDStore.cleanup
    functionSourceFile: openid.store.filestore
    functionUses: 0
    functionsReached:
    - keys.append
    - os.unlink
    - openid.kvform.kvToSeq
    - os.listdir
    - all_associations.append
    - logger.exception
    - openid.store.filestore.FileOpenIDStore._allAssocs
    - <builtin>.abs
    - line.strip
    - openid.oidutil.fromBase64
    - <builtin>.int
    - openid.association.Association.deserialize
    - association_file.close
    - k.strip
    - pairs.append
    - line.split
    - logger.warning
    - data.split
    - v.strip
    - values.append
    - openid.store.filestore._removeIfPresent
    - Crypto.Util.number.bytes_to_long.encode
    - <builtin>.len
    - openid.kvform.kvToSeq.err
    - os.path.join
    - <builtin>.open
    - binascii.a2b_base64
    - <builtin>.isinstance
    - openid.store.filestore.FileOpenIDStore.cleanupAssociations
    - secret.encode
    - data.decode
    - nonce_fname.split
    - time.time
    - openid.association.Association.__init__
    - openid.store.filestore.FileOpenIDStore.cleanupNonces
    - association_file.read
    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: 378
    functionName: openid.store.filestore.FileOpenIDStore.cleanupAssociations
    functionSourceFile: openid.store.filestore
    functionUses: 1
    functionsReached:
    - keys.append
    - os.unlink
    - openid.kvform.kvToSeq
    - os.listdir
    - all_associations.append
    - logger.exception
    - openid.store.filestore.FileOpenIDStore._allAssocs
    - line.strip
    - openid.oidutil.fromBase64
    - openid.association.Association.deserialize
    - <builtin>.int
    - association_file.close
    - k.strip
    - pairs.append
    - line.split
    - logger.warning
    - data.split
    - v.strip
    - values.append
    - openid.store.filestore._removeIfPresent
    - Crypto.Util.number.bytes_to_long.encode
    - <builtin>.len
    - openid.kvform.kvToSeq.err
    - os.path.join
    - <builtin>.open
    - binascii.a2b_base64
    - <builtin>.isinstance
    - secret.encode
    - data.decode
    - openid.association.Association.__init__
    - association_file.read
    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: 386
    functionName: openid.store.filestore.FileOpenIDStore.cleanupNonces
    functionSourceFile: openid.store.filestore
    functionUses: 1
    functionsReached:
    - os.path.join
    - <builtin>.abs
    - os.unlink
    - openid.store.filestore._removeIfPresent
    - <builtin>.int
    - os.listdir
    - nonce_fname.split
    - 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: nonce_fname.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: openid.store.interface
    functionSourceFile: openid.store.interface
    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
    - server_url
    - association
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 23
    functionName: openid.store.interface.OpenIDStore.storeAssociation
    functionSourceFile: openid.store.interface
    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 0x7f9f485a1280>
    argNames:
    - self
    - server_url
    - handle
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 53
    functionName: openid.store.interface.OpenIDStore.getAssociation
    functionSourceFile: openid.store.interface
    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
    - server_url
    - handle
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 98
    functionName: openid.store.interface.OpenIDStore.removeAssociation
    functionSourceFile: openid.store.interface
    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
    - server_url
    - timestamp
    - salt
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 128
    functionName: openid.store.interface.OpenIDStore.useNonce
    functionSourceFile: openid.store.interface
    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: 164
    functionName: openid.store.interface.OpenIDStore.cleanupNonces
    functionSourceFile: openid.store.interface
    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: 179
    functionName: openid.store.interface.OpenIDStore.cleanupAssociations
    functionSourceFile: openid.store.interface
    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: 191
    functionName: openid.store.interface.OpenIDStore.cleanup
    functionSourceFile: openid.store.interface
    functionUses: 0
    functionsReached:
    - openid.store.interface.OpenIDStore.cleanupNonces
    - openid.store.interface.OpenIDStore.cleanupAssociations
    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: openid.store.sqlstore
    functionSourceFile: openid.store.sqlstore
    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:
    - func
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 18
    functionName: openid.store.sqlstore._inTxn
    functionSourceFile: openid.store.sqlstore
    functionUses: 1
    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
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 19
    functionName: openid.store.sqlstore._inTxn.wrapped
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    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 0x7f9f489fffa0>
    - <ast.Constant object at 0x7f9f489ffdc0>
    argNames:
    - self
    - conn
    - associations_table
    - nonces_table
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 68
    functionName: openid.store.sqlstore.SQLStore.__init__
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - blob
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 118
    functionName: openid.store.sqlstore.SQLStore.blobDecode
    functionSourceFile: openid.store.sqlstore
    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: 0
    functionLinenumber: 124
    functionName: openid.store.sqlstore.SQLStore.blobEncode
    functionSourceFile: openid.store.sqlstore
    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
    - sql_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 129
    functionName: openid.store.sqlstore.SQLStore._getSQL
    functionSourceFile: openid.store.sqlstore
    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: <builtin>.getattr
    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: []
    argNames:
    - self
    - sql_name
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 138
    functionName: openid.store.sqlstore.SQLStore._execSQL
    functionSourceFile: openid.store.sqlstore
    functionUses: 1
    functionsReached:
    - openid.store.sqlstore.SQLStore._getSQL
    - <builtin>.getattr
    - <builtin>.map
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - arg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 145
    functionName: openid.store.sqlstore.SQLStore._execSQL.unicode_to_str
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - <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: <builtin>.map
    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
    - attr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 154
    functionName: openid.store.sqlstore.SQLStore.__getattr__
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised:
    - AttributeError
    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: 3
    functionLinenumber: 161
    functionName: openid.store.sqlstore.SQLStore.__getattr__.func
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - <builtin>.map
    - openid.store.sqlstore.SQLStore._getSQL
    - <builtin>.list
    - <builtin>.getattr
    - openid.store.sqlstore.SQLStore._execSQL
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - func
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 169
    functionName: openid.store.sqlstore.SQLStore._callInTransaction
    functionSourceFile: openid.store.sqlstore
    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: 0
    functionLinenumber: 191
    functionName: openid.store.sqlstore.SQLStore.txn_createTables
    functionSourceFile: openid.store.sqlstore
    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: openid.store.sqlstore.SQLStore
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    - openid.store.sqlstore._inTxn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - server_url
    - association
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 202
    functionName: openid.store.sqlstore.SQLStore.txn_storeAssociation
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - openid.store.sqlstore.SQLStore.blobEncode
    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 0x7f9f484ec7f0>
    argNames:
    - self
    - server_url
    - handle
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 214
    functionName: openid.store.sqlstore.SQLStore.txn_getAssociation
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - associations.sort
    - associations.append
    - <builtin>.len
    - openid.store.sqlstore.SQLStore.blobDecode
    - <builtin>.isinstance
    - secret.encode
    - openid.store.sqlstore.SQLStore.txn_removeAssociation
    - openid.association.Association.__init__
    - <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
    - server_url
    - handle
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 247
    functionName: openid.store.sqlstore.SQLStore.txn_removeAssociation
    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: associations.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: associations.sort
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - server_url
    - timestamp
    - salt
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 258
    functionName: openid.store.sqlstore.SQLStore.txn_useNonce
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - <builtin>.abs
    - time.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: 1
    functionLinenumber: 277
    functionName: openid.store.sqlstore.SQLStore.txn_cleanupNonces
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - time.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: 1
    functionLinenumber: 283
    functionName: openid.store.sqlstore.SQLStore.txn_cleanupAssociations
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - time.time
    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: 344
    functionName: openid.store.sqlstore.SQLiteStore.blobEncode
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - <builtin>.memoryview
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 347
    functionName: openid.store.sqlstore.SQLiteStore.useNonce
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.str
    - 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: 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: psycopg2cffi.compat.register
    functionSourceFile: psycopg2cffi
    functionUses: 1
    functionsReached: []
    linkageType: 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: openid.store.sqlstore.PostgreSQLStore
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - psycopg2cffi.compat.register
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 7
    argDefaultValues: []
    argNames:
    - self
    - server_url
    - handle
    - secret
    - issued
    - lifetime
    - assoc_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 462
    functionName: openid.store.sqlstore.PostgreSQLStore.db_set_assoc
    functionSourceFile: openid.store.sqlstore
    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
    - blob
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 504
    functionName: openid.store.sqlstore.PostgreSQLStore.blobEncode
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - psycopg2.Binary
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: psycopg2.Binary
    functionSourceFile: psycopg2
    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
    - blob
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 509
    functionName: openid.store.sqlstore.PostgreSQLStore.blobDecode
    functionSourceFile: openid.store.sqlstore
    functionUses: 0
    functionsReached:
    - blob.tobytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: blob.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: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: openid.yadis.discover
    functionSourceFile: openid.yadis.discover
    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
    - message
    - http_response
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 17
    functionName: openid.yadis.discover.DiscoveryFailure.__init__
    functionSourceFile: openid.yadis.discover
    functionUses: 8
    functionsReached:
    - Exception.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 41
    functionName: openid.yadis.discover.DiscoveryResult.__init__
    functionSourceFile: openid.yadis.discover
    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: 0
    functionLinenumber: 48
    functionName: openid.yadis.discover.DiscoveryResult.usedYadisLocation
    functionSourceFile: openid.yadis.discover
    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: 54
    functionName: openid.yadis.discover.DiscoveryResult.isXRDS
    functionSourceFile: openid.yadis.discover
    functionUses: 3
    functionsReached:
    - openid.yadis.discover.DiscoveryResult.usedYadisLocation
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - uri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 60
    functionName: openid.yadis.discover.discover
    functionSourceFile: openid.yadis.discover
    functionUses: 7
    functionsReached:
    - YADIS_HEADER_NAME.lower
    - Exception.__init__
    - content_type.split
    - openid.yadis.discover.whereIsYadis
    - resp.headers.get
    - openid.yadis.discover.DiscoveryResult.__init__
    - openid.yadis.parsehtml.findHTMLMeta
    - openid.fetchers.fetch
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    - openid.fetchers.setDefaultFetcher
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - resp.body.decode
    - openid.fetchers.getDefaultFetcher
    - openid.yadis.discover.DiscoveryFailure.__init__
    - HTTPFetcher.__init__
    - openid.yadis.parsehtml.YadisHTMLParser.__init__
    - openid.yadis.discover.DiscoveryResult.usedYadisLocation
    - <builtin>.len
    - openid.fetchers.createHTTPFetcher
    - fetcher.fetch
    - <builtin>.isinstance
    - openid.fetchers.CurlHTTPFetcher.__init__
    - io.StringIO.read
    - content_type.rsplit
    - openid.yadis.parsehtml.YadisHTMLParser.feed
    - <builtin>.super
    - chunks.append
    - io.StringIO
    linkageType: pythonLinkage
    raised:
    - DiscoveryFailure
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - resp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 104
    functionName: openid.yadis.discover.whereIsYadis
    functionSourceFile: openid.yadis.discover
    functionUses: 8
    functionsReached:
    - YADIS_HEADER_NAME.lower
    - <builtin>.len
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    - <builtin>.isinstance
    - openid.yadis.parsehtml.YadisHTMLParser.__init__
    - content_type.split
    - io.StringIO.read
    - content_type.rsplit
    - openid.yadis.parsehtml.YadisHTMLParser.feed
    - resp.headers.get
    - <builtin>.super
    - resp.body.decode
    - chunks.append
    - openid.yadis.parsehtml.findHTMLMeta
    - io.StringIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.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: content_type.rsplit
    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: io.StringIO
    functionSourceFile: io
    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: openid.yadis.filters
    functionSourceFile: openid.yadis.filters
    functionUses: 0
    functionsReached:
    - <builtin>.TypeError
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - yadis_url
    - type_uris
    - uri
    - service_element
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 35
    functionName: openid.yadis.filters.BasicServiceEndpoint.__init__
    functionSourceFile: openid.yadis.filters
    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
    - type_uris
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 41
    functionName: openid.yadis.filters.BasicServiceEndpoint.matchTypes
    functionSourceFile: openid.yadis.filters
    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:
    - endpoint
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 55
    functionName: openid.yadis.filters.BasicServiceEndpoint.fromBasicServiceEndpoint
    functionSourceFile: openid.yadis.filters
    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: openid.yadis.filters.BasicServiceEndpoint
    functionSourceFile: openid.yadis.filters
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - yadis_url
    - service_element
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 74
    functionName: openid.yadis.filters.IFilter.getServiceEndpoints
    functionSourceFile: openid.yadis.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
    - filter_functions
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 93
    functionName: openid.yadis.filters.TransformFilterMaker.__init__
    functionSourceFile: openid.yadis.filters
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - yadis_url
    - service_element
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 103
    functionName: openid.yadis.filters.TransformFilterMaker.getServiceEndpoints
    functionSourceFile: openid.yadis.filters
    functionUses: 0
    functionsReached:
    - <builtin>.sorted
    - expanded.append
    - openid.yadis.filters.BasicServiceEndpoint.__init__
    - endpoints.append
    - service_element.findall
    - openid.yadis.etxrd.prioSort
    - openid.yadis.etxrd.expandService
    - openid.yadis.etxrd.getTypeURIs
    - openid.yadis.filters.TransformFilterMaker.applyFilters
    - openid.yadis.etxrd.sortedURIs
    - random.shuffle
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - service_element
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 286
    functionName: openid.yadis.etxrd.expandService
    functionSourceFile: openid.yadis.etxrd
    functionUses: 2
    functionsReached:
    - <builtin>.sorted
    - expanded.append
    - service_element.findall
    - openid.yadis.etxrd.prioSort
    - openid.yadis.etxrd.getTypeURIs
    - openid.yadis.etxrd.sortedURIs
    - random.shuffle
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - endpoint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 122
    functionName: openid.yadis.filters.TransformFilterMaker.applyFilters
    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: endpoints.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: 2
    argDefaultValues: []
    argNames:
    - self
    - subfilters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 140
    functionName: openid.yadis.filters.CompoundFilter.__init__
    functionSourceFile: openid.yadis.filters
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - yadis_url
    - service_element
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 143
    functionName: openid.yadis.filters.CompoundFilter.getServiceEndpoints
    functionSourceFile: openid.yadis.filters
    functionUses: 11
    functionsReached:
    - subfilter.getServiceEndpoints
    - endpoints.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: subfilter.getServiceEndpoints
    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: endpoints.extend
    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: <builtin>.TypeError
    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:
    - parts
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 158
    functionName: openid.yadis.filters.mkFilter
    functionSourceFile: openid.yadis.filters
    functionUses: 11
    functionsReached:
    - <builtin>.hasattr
    - <builtin>.isinstance
    - openid.yadis.filters.CompoundFilter.__init__
    - openid.yadis.filters.TransformFilterMaker.__init__
    - transformers.append
    - <builtin>.list
    - <builtin>.len
    - filters.append
    - openid.yadis.filters.mkCompoundFilter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - parts
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 175
    functionName: openid.yadis.filters.mkCompoundFilter
    functionSourceFile: openid.yadis.filters
    functionUses: 12
    functionsReached:
    - <builtin>.len
    - <builtin>.hasattr
    - <builtin>.isinstance
    - openid.yadis.filters.CompoundFilter.__init__
    - openid.yadis.filters.TransformFilterMaker.__init__
    - <builtin>.list
    - transformers.append
    - filters.append
    - openid.yadis.filters.mkCompoundFilter
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: transformers.append
    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: 2
    functionLinenumber: -1
    functionName: openid.yadis.etxrd
    functionSourceFile: openid.yadis.etxrd
    functionUses: 0
    functionsReached:
    - openid.yadis.etxrd.mkXRDTag
    - ElementTree.XML
    - openid.oidutil.importElementTree
    - openid.yadis.etxrd.nsTag
    - logger.exception
    - <builtin>.__import__
    - openid.oidutil.importSafeElementTree
    - openid.yadis.etxrd.mkXRDSTag
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 49
    functionName: openid.yadis.etxrd.parseXRDS
    functionSourceFile: openid.yadis.etxrd
    functionUses: 12
    functionsReached:
    - xrd_tree.getroot
    - SafeElementTree.XML
    - text.encode
    - <builtin>.isinstance
    - ElementTree.ElementTree
    - openid.yadis.etxrd.isXRDS
    linkageType: pythonLinkage
    raised:
    - XRDSError
    returnType: N/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: 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: SafeElementTree.XML
    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: ElementTree.ElementTree
    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:
    - xrd_tree
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 117
    functionName: openid.yadis.etxrd.isXRDS
    functionSourceFile: openid.yadis.etxrd
    functionUses: 13
    functionsReached:
    - xrd_tree.getroot
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - ns
    - t
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 83
    functionName: openid.yadis.etxrd.nsTag
    functionSourceFile: openid.yadis.etxrd
    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:
    - t
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 87
    functionName: openid.yadis.etxrd.mkXRDTag
    functionSourceFile: openid.yadis.etxrd
    functionUses: 1
    functionsReached:
    - openid.yadis.etxrd.nsTag
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - t
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 96
    functionName: openid.yadis.etxrd.mkXRDSTag
    functionSourceFile: openid.yadis.etxrd
    functionUses: 1
    functionsReached:
    - openid.yadis.etxrd.nsTag
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xrd_tree.getroot
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - xrd_tree
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 123
    functionName: openid.yadis.etxrd.getYadisXRD
    functionSourceFile: openid.yadis.etxrd
    functionUses: 13
    functionsReached:
    - xrd_tree.findall
    linkageType: pythonLinkage
    raised:
    - XRDSError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xrd_tree.findall
    functionSourceFile: <builtin>
    functionUses: 15
    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 0x7f9f490a10d0>
    argNames:
    - xrd_element
    - default
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 140
    functionName: openid.yadis.etxrd.getXRDExpiration
    functionSourceFile: openid.yadis.etxrd
    functionUses: 0
    functionsReached:
    - time.strptime
    - xrd_element.find
    - 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: xrd_element.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: datetime.datetime
    functionSourceFile: datetime
    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:
    - iname
    - xrd_tree
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 165
    functionName: openid.yadis.etxrd.getCanonicalID
    functionSourceFile: openid.yadis.etxrd
    functionUses: 3
    functionsReached:
    - functools.reduce
    - canonicalID.lower
    - authority.split
    - canonicalID.rindex
    - xrd_list.reverse
    - parent.lower
    - xrd_tree.findall
    - s.split
    - openid.yadis.xri.rootAuthority
    - xrd.findtext
    - authority.index
    - xri.startswith
    - openid.yadis.xri.providerIsAuthoritative
    - openid.yadis.xri.XRI
    - xri.split
    - childID.rsplit
    linkageType: pythonLinkage
    raised:
    - XRDSFraud
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xrd_list.reverse
    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:
    - xri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: openid.yadis.xri.XRI
    functionSourceFile: openid.yadis.xri
    functionUses: 5
    functionsReached:
    - xri.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: canonicalID.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: childID.rsplit
    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: xrd.findtext
    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: parent.lower
    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:
    - xri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 78
    functionName: openid.yadis.xri.rootAuthority
    functionSourceFile: openid.yadis.xri
    functionUses: 4
    functionsReached:
    - functools.reduce
    - authority.split
    - s.split
    - authority.index
    - xri.startswith
    - openid.yadis.xri.XRI
    - xri.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - providerID
    - canonicalID
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 67
    functionName: openid.yadis.xri.providerIsAuthoritative
    functionSourceFile: openid.yadis.xri
    functionUses: 4
    functionsReached:
    - canonicalID.rindex
    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: 211
    functionName: openid.yadis.etxrd._Max.__lt__
    functionSourceFile: openid.yadis.etxrd
    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: 1
    functionLinenumber: 214
    functionName: openid.yadis.etxrd._Max.__eq__
    functionSourceFile: openid.yadis.etxrd
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - element
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 221
    functionName: openid.yadis.etxrd.getPriorityStrict
    functionSourceFile: openid.yadis.etxrd
    functionUses: 1
    functionsReached:
    - element.get
    - <builtin>.int
    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: element.get
    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:
    - element
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 240
    functionName: openid.yadis.etxrd.getPriority
    functionSourceFile: openid.yadis.etxrd
    functionUses: 0
    functionsReached:
    - element.get
    - <builtin>.int
    - openid.yadis.etxrd.getPriorityStrict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - elements
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 251
    functionName: openid.yadis.etxrd.prioSort
    functionSourceFile: openid.yadis.etxrd
    functionUses: 17
    functionsReached:
    - random.shuffle
    - <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: random.shuffle
    functionSourceFile: random
    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:
    - xrd_tree
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 261
    functionName: openid.yadis.etxrd.iterServices
    functionSourceFile: openid.yadis.etxrd
    functionUses: 12
    functionsReached:
    - <builtin>.sorted
    - openid.yadis.etxrd.getYadisXRD
    - xrd_tree.findall
    - openid.yadis.etxrd.prioSort
    - xrd.findall
    - random.shuffle
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xrd.findall
    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:
    - service_element
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 269
    functionName: openid.yadis.etxrd.sortedURIs
    functionSourceFile: openid.yadis.etxrd
    functionUses: 3
    functionsReached:
    - <builtin>.sorted
    - service_element.findall
    - openid.yadis.etxrd.prioSort
    - random.shuffle
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: service_element.findall
    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:
    - service_element
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 278
    functionName: openid.yadis.etxrd.getTypeURIs
    functionSourceFile: openid.yadis.etxrd
    functionUses: 3
    functionsReached:
    - service_element.findall
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: expanded.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: 1
    argDefaultValues: []
    argNames:
    - service_elements
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 302
    functionName: openid.yadis.etxrd.expandServices
    functionSourceFile: openid.yadis.etxrd
    functionUses: 0
    functionsReached:
    - <builtin>.sorted
    - expanded.append
    - service_element.findall
    - openid.yadis.etxrd.prioSort
    - openid.yadis.etxrd.expandService
    - openid.yadis.etxrd.getTypeURIs
    - expanded.extend
    - openid.yadis.etxrd.sortedURIs
    - random.shuffle
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: expanded.extend
    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: openid.yadis.xri
    functionSourceFile: openid.yadis.xri
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - identifier
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 15
    functionName: openid.yadis.xri.identifierScheme
    functionSourceFile: openid.yadis.xri
    functionUses: 1
    functionsReached:
    - identifier.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: identifier.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: 1
    argDefaultValues: []
    argNames:
    - xri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 27
    functionName: openid.yadis.xri.toIRINormal
    functionSourceFile: openid.yadis.xri
    functionUses: 5
    functionsReached:
    - xri.startswith
    - xri.replace
    - _xref_re.sub
    - openid.yadis.xri.escapeForIRI
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xri.startswith
    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:
    - xri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 47
    functionName: openid.yadis.xri.escapeForIRI
    functionSourceFile: openid.yadis.xri
    functionUses: 6
    functionsReached:
    - xri.replace
    - _xref_re.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - xref_match
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: openid.yadis.xri._escape_xref
    functionSourceFile: openid.yadis.xri
    functionUses: 0
    functionsReached:
    - xref_match.group
    - xref.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: xref_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: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: xref.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: xri.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: _xref_re.sub
    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:
    - xri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 54
    functionName: openid.yadis.xri.toURINormal
    functionSourceFile: openid.yadis.xri
    functionUses: 4
    functionsReached:
    - openid.yadis.xri.toIRINormal
    - _xref_re.sub
    - openid.yadis.xri.escapeForIRI
    - iri.encode
    - <builtin>.str
    - openid.yadis.xri.iriToURI
    - <builtin>.isinstance
    - xri.startswith
    - xri.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - iri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: openid.yadis.xri.iriToURI
    functionSourceFile: openid.yadis.xri
    functionUses: 5
    functionsReached:
    - iri.encode
    - <builtin>.str
    - <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: iri.encode
    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: canonicalID.rindex
    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: xri.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: authority.index
    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: authority.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: s.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: functools.reduce
    functionSourceFile: functools
    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: openid.yadis.xrires
    functionSourceFile: openid.yadis.xrires
    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.Name object at 0x7f9f4850ad60>
    argNames:
    - self
    - proxy_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 18
    functionName: openid.yadis.xrires.ProxyResolver.__init__
    functionSourceFile: openid.yadis.xrires
    functionUses: 2
    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 0x7f9f4850afd0>
    argNames:
    - self
    - xri
    - service_type
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 21
    functionName: openid.yadis.xrires.ProxyResolver.queryURL
    functionSourceFile: openid.yadis.xrires
    functionUses: 3
    functionsReached:
    - openid.yadis.xri.toIRINormal
    - args.sort
    - openid.yadis.xri.toURINormal
    - <builtin>.hasattr
    - iri.encode
    - <builtin>.str
    - openid.yadis.xri.iriToURI
    - <builtin>.isinstance
    - openid.yadis.xri.escapeForIRI
    - _xref_re.sub
    - urllib.parse.urlencode
    - url.rstrip
    - openid.yadis.xrires._appendArgs
    - <builtin>.list
    - <builtin>.len
    - xri.startswith
    - xri.replace
    - args.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 100
    functionName: openid.yadis.xrires._appendArgs
    functionSourceFile: openid.yadis.xrires
    functionUses: 4
    functionsReached:
    - <builtin>.len
    - args.sort
    - <builtin>.hasattr
    - urllib.parse.urlencode
    - url.rstrip
    - <builtin>.list
    - args.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - xri
    - service_types
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 54
    functionName: openid.yadis.xrires.ProxyResolver.query
    functionSourceFile: openid.yadis.xrires
    functionUses: 2
    functionsReached:
    - canonicalID.rindex
    - SafeElementTree.XML
    - openid.yadis.xri.escapeForIRI
    - text.encode
    - <builtin>.list
    - parent.lower
    - openid.fetchers.fetch
    - <builtin>.sorted
    - random.shuffle
    - functools.reduce
    - canonicalID.lower
    - authority.split
    - xrd_tree.getroot
    - openid.fetchers.setDefaultFetcher
    - urllib.parse.urlencode
    - url.rstrip
    - s.split
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - authority.index
    - xri.replace
    - openid.fetchers.getDefaultFetcher
    - openid.yadis.xri.toIRINormal
    - openid.yadis.etxrd.getCanonicalID
    - _xref_re.sub
    - HTTPFetcher.__init__
    - iri.encode
    - <builtin>.str
    - xrd_list.reverse
    - services.extend
    - <builtin>.hasattr
    - ElementTree.ElementTree
    - openid.yadis.xri.rootAuthority
    - openid.yadis.xrires._appendArgs
    - openid.yadis.etxrd.iterServices
    - args.sort
    - xri.startswith
    - openid.yadis.etxrd.prioSort
    - <builtin>.len
    - openid.yadis.xri.providerIsAuthoritative
    - openid.yadis.xri.XRI
    - openid.fetchers.createHTTPFetcher
    - fetcher.fetch
    - xri.split
    - childID.rsplit
    - openid.yadis.etxrd.getYadisXRD
    - openid.yadis.xri.toURINormal
    - openid.yadis.xri.iriToURI
    - <builtin>.isinstance
    - openid.yadis.xrires.ProxyResolver.queryURL
    - xrd_tree.findall
    - openid.fetchers.CurlHTTPFetcher.__init__
    - xrd.findtext
    - xrd.findall
    - args.items
    - openid.yadis.etxrd.parseXRDS
    - openid.yadis.etxrd.isXRDS
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: services.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: args.sort
    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: url.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: openid.yadis.services
    functionSourceFile: openid.yadis.services
    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 0x7f9f4852c580>
    argNames:
    - input_url
    - flt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 8
    functionName: openid.yadis.services.getServiceEndpoints
    functionSourceFile: openid.yadis.services
    functionUses: 3
    functionsReached:
    - YADIS_HEADER_NAME.lower
    - SafeElementTree.XML
    - text.encode
    - Exception.__init__
    - content_type.split
    - openid.yadis.discover.whereIsYadis
    - <builtin>.list
    - resp.headers.get
    - openid.yadis.discover.DiscoveryResult.__init__
    - openid.yadis.parsehtml.findHTMLMeta
    - openid.fetchers.fetch
    - random.shuffle
    - <builtin>.sorted
    - xrd_tree.getroot
    - endpoints.extend
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    - openid.fetchers.setDefaultFetcher
    - openid.yadis.filters.CompoundFilter.__init__
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - transformers.append
    - resp.body.decode
    - openid.yadis.filters.mkCompoundFilter
    - openid.yadis.filters.CompoundFilter.getServiceEndpoints
    - subfilter.getServiceEndpoints
    - openid.fetchers.getDefaultFetcher
    - openid.yadis.discover.DiscoveryFailure.__init__
    - HTTPFetcher.__init__
    - <builtin>.hasattr
    - openid.yadis.discover.discover
    - openid.yadis.parsehtml.YadisHTMLParser.__init__
    - openid.yadis.filters.TransformFilterMaker.__init__
    - openid.yadis.filters.mkFilter
    - ElementTree.ElementTree
    - openid.yadis.etxrd.prioSort
    - openid.yadis.etxrd.iterServices
    - openid.yadis.discover.DiscoveryResult.usedYadisLocation
    - <builtin>.len
    - io.StringIO
    - openid.fetchers.createHTTPFetcher
    - fetcher.fetch
    - <builtin>.super
    - openid.yadis.etxrd.getYadisXRD
    - <builtin>.isinstance
    - openid.yadis.services.applyFilter
    - xrd_tree.findall
    - io.StringIO.read
    - openid.fetchers.CurlHTTPFetcher.__init__
    - content_type.rsplit
    - openid.yadis.parsehtml.YadisHTMLParser.feed
    - xrd.findall
    - filters.append
    - chunks.append
    - openid.yadis.etxrd.parseXRDS
    - openid.yadis.etxrd.isXRDS
    linkageType: pythonLinkage
    raised:
    - DiscoveryFailure
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f9f483d4bb0>
    argNames:
    - normalized_uri
    - xrd_data
    - flt
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 35
    functionName: openid.yadis.services.applyFilter
    functionSourceFile: openid.yadis.services
    functionUses: 9
    functionsReached:
    - SafeElementTree.XML
    - text.encode
    - <builtin>.list
    - random.shuffle
    - <builtin>.sorted
    - xrd_tree.getroot
    - endpoints.extend
    - openid.yadis.filters.CompoundFilter.__init__
    - transformers.append
    - openid.yadis.filters.mkCompoundFilter
    - openid.yadis.filters.CompoundFilter.getServiceEndpoints
    - subfilter.getServiceEndpoints
    - <builtin>.hasattr
    - openid.yadis.filters.TransformFilterMaker.__init__
    - openid.yadis.filters.mkFilter
    - ElementTree.ElementTree
    - openid.yadis.etxrd.prioSort
    - openid.yadis.etxrd.iterServices
    - <builtin>.len
    - openid.yadis.etxrd.getYadisXRD
    - <builtin>.isinstance
    - xrd_tree.findall
    - xrd.findall
    - filters.append
    - openid.yadis.etxrd.parseXRDS
    - openid.yadis.etxrd.isXRDS
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: openid.yadis.manager
    functionSourceFile: openid.yadis.manager
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - starting_url
    - yadis_url
    - services
    - session_key
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 13
    functionName: openid.yadis.manager.YadisServiceManager.__init__
    functionSourceFile: openid.yadis.manager
    functionUses: 8
    functionsReached:
    - <builtin>.super
    - <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
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 29
    functionName: openid.yadis.manager.YadisServiceManager._from_dict
    functionSourceFile: openid.yadis.manager
    functionUses: 7
    functionsReached:
    - <builtin>.super
    - openid.yadis.manager.YadisServiceManager.__init__
    - <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
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 32
    functionName: openid.yadis.manager.YadisServiceManager.__getattr__
    functionSourceFile: openid.yadis.manager
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 37
    functionName: openid.yadis.manager.YadisServiceManager.__setattr__
    functionSourceFile: openid.yadis.manager
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: 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: 42
    functionName: openid.yadis.manager.YadisServiceManager.service_count
    functionSourceFile: openid.yadis.manager
    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: 46
    functionName: openid.yadis.manager.YadisServiceManager.next_service
    functionSourceFile: openid.yadis.manager
    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: 58
    functionName: openid.yadis.manager.YadisServiceManager.current
    functionSourceFile: openid.yadis.manager
    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
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 65
    functionName: openid.yadis.manager.YadisServiceManager.forURL
    functionSourceFile: openid.yadis.manager
    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: 68
    functionName: openid.yadis.manager.YadisServiceManager.started
    functionSourceFile: openid.yadis.manager
    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
    - session
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 72
    functionName: openid.yadis.manager.YadisServiceManager.store
    functionSourceFile: openid.yadis.manager
    functionUses: 3
    functionsReached: []
    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 0x7f9f484d7040>
    argNames:
    - self
    - session
    - url
    - session_key_suffix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 98
    functionName: openid.yadis.manager.Discovery.__init__
    functionSourceFile: openid.yadis.manager
    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:
    - self
    - discover
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 107
    functionName: openid.yadis.manager.Discovery.getNextService
    functionSourceFile: openid.yadis.manager
    functionUses: 1
    functionsReached:
    - openid.yadis.manager.YadisServiceManager.next_service
    - openid.yadis.manager.YadisServiceManager._from_dict
    - manager.forURL
    - openid.yadis.manager.Discovery.getManager
    - openid.yadis.manager.Discovery.createManager
    - openid.yadis.manager.Discovery.getSessionKey
    - <builtin>.type
    - <builtin>.list
    - openid.yadis.manager.Discovery.destroyManager
    - openid.yadis.manager.YadisServiceManager.store
    - openid.yadis.manager.YadisServiceManager.__init__
    - <builtin>.super
    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 0x7f9f48912bb0>
    argNames:
    - self
    - force
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 166
    functionName: openid.yadis.manager.Discovery.getManager
    functionSourceFile: openid.yadis.manager
    functionUses: 6
    functionsReached:
    - openid.yadis.manager.YadisServiceManager._from_dict
    - manager.forURL
    - openid.yadis.manager.Discovery.getSessionKey
    - <builtin>.type
    - <builtin>.list
    - <builtin>.super
    - openid.yadis.manager.YadisServiceManager.__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 0x7f9f48a385b0>
    argNames:
    - self
    - force
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 207
    functionName: openid.yadis.manager.Discovery.destroyManager
    functionSourceFile: openid.yadis.manager
    functionUses: 4
    functionsReached:
    - openid.yadis.manager.YadisServiceManager._from_dict
    - manager.forURL
    - openid.yadis.manager.Discovery.getManager
    - openid.yadis.manager.Discovery.getSessionKey
    - <builtin>.type
    - <builtin>.list
    - <builtin>.super
    - openid.yadis.manager.YadisServiceManager.__init__
    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 0x7f9f48877fa0>
    argNames:
    - self
    - services
    - yadis_url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 188
    functionName: openid.yadis.manager.Discovery.createManager
    functionSourceFile: openid.yadis.manager
    functionUses: 2
    functionsReached:
    - openid.yadis.manager.YadisServiceManager._from_dict
    - manager.forURL
    - openid.yadis.manager.Discovery.getManager
    - openid.yadis.manager.Discovery.getSessionKey
    - <builtin>.type
    - <builtin>.list
    - <builtin>.super
    - openid.yadis.manager.YadisServiceManager.store
    - openid.yadis.manager.YadisServiceManager.__init__
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f9f484dc5e0>
    argNames:
    - self
    - force
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 136
    functionName: openid.yadis.manager.Discovery.cleanup
    functionSourceFile: openid.yadis.manager
    functionUses: 1
    functionsReached:
    - openid.yadis.manager.YadisServiceManager._from_dict
    - manager.current
    - manager.forURL
    - openid.yadis.manager.Discovery.getManager
    - <builtin>.type
    - openid.yadis.manager.Discovery.getSessionKey
    - <builtin>.list
    - openid.yadis.manager.Discovery.destroyManager
    - openid.yadis.manager.YadisServiceManager.__init__
    - <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: manager.current
    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: 0
    functionLinenumber: 158
    functionName: openid.yadis.manager.Discovery.getSessionKey
    functionSourceFile: openid.yadis.manager
    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: manager.forURL
    functionSourceFile: <builtin>
    functionUses: 7
    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: openid.extensions.ax
    functionSourceFile: openid.extensions.ax
    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:
    - alias
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 28
    functionName: openid.extensions.ax.checkAlias
    functionSourceFile: openid.extensions.ax
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AXError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 47
    functionName: openid.extensions.ax.NotAXMessage.__repr__
    functionSourceFile: openid.extensions.ax
    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: 50
    functionName: openid.extensions.ax.NotAXMessage.__str__
    functionSourceFile: openid.extensions.ax
    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
    - ax_args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 73
    functionName: openid.extensions.ax.AXMessage._checkMode
    functionSourceFile: openid.extensions.ax
    functionUses: 2
    functionsReached:
    - <builtin>.str
    - ax_args.get
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - AXError
    - NotAXMessage
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ax_args.get
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 90
    functionName: openid.extensions.ax.AXMessage._newArgs
    functionSourceFile: openid.extensions.ax
    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 0x7f9f48a074c0>
    - <ast.Constant object at 0x7f9f48a07850>
    - <ast.Constant object at 0x7f9f48a07070>
    argNames:
    - self
    - type_uri
    - count
    - required
    - alias
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 132
    functionName: openid.extensions.ax.AttrInfo.__init__
    functionSourceFile: openid.extensions.ax
    functionUses: 1
    functionsReached:
    - openid.extensions.ax.checkAlias
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 141
    functionName: openid.extensions.ax.AttrInfo.wantsUnlimitedValues
    functionSourceFile: openid.extensions.ax
    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:
    - namespace_map
    - alias_list_s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 152
    functionName: openid.extensions.ax.toTypeURIs
    functionSourceFile: openid.extensions.ax
    functionUses: 1
    functionsReached:
    - openid.message.NamespaceMap.getNamespaceURI
    - uris.append
    - alias_list_s.split
    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: alias_list_s.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: uris.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: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f9f4853bd30>
    argNames:
    - self
    - update_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 200
    functionName: openid.extensions.ax.FetchRequest.__init__
    functionSourceFile: openid.extensions.ax
    functionUses: 1
    functionsReached:
    - AXMessage.__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: AXMessage.__init__
    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:
    - self
    - attribute
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 205
    functionName: openid.extensions.ax.FetchRequest.add
    functionSourceFile: openid.extensions.ax
    functionUses: 1
    functionsReached: []
    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: required.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: if_available.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: 272
    functionName: openid.extensions.ax.FetchRequest.getRequiredAttrs
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - required.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - openid_request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 287
    functionName: openid.extensions.ax.FetchRequest.fromOpenIDRequest
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - host.startswith
    - tr.validateURL
    - host.lower
    - host_segment_re.match
    - re.match
    - urllib.parse.urlunparse
    - openid.server.trustroot.TrustRoot.__init__
    - openid.extensions.ax.FetchRequest.__init__
    - openid.server.trustroot.TrustRoot.parse
    - openid.server.trustroot._parseURL
    - message.getArg
    - path.find
    - message.getArgs
    - urllib.parse.urlparse
    - AXMessage.__init__
    - <builtin>.len
    - netloc.split
    - host.find
    linkageType: pythonLinkage
    raised:
    - AXError
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - trust_root
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 247
    functionName: openid.server.trustroot.TrustRoot.parse
    functionSourceFile: openid.server.trustroot
    functionUses: 9
    functionsReached:
    - host.startswith
    - host.lower
    - host_segment_re.match
    - re.match
    - urllib.parse.urlunparse
    - openid.server.trustroot.TrustRoot.__init__
    - openid.server.trustroot._parseURL
    - path.find
    - urllib.parse.urlparse
    - <builtin>.len
    - netloc.split
    - host.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: tr.validateURL
    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: openid.extensions.ax.FetchRequest
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - <builtin>.classmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ax_args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 334
    functionName: openid.extensions.ax.FetchRequest.parseExtensionArgs
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - openid.extensions.ax.FetchRequest.add
    - openid.extensions.ax.AttrInfo.__init__
    - openid.message.NamespaceMap.addAlias
    - ax_args.items
    - <builtin>.type
    - key.startswith
    - openid.extensions.ax.checkAlias
    - ax_args.get
    - <builtin>.int
    - <builtin>.iter
    - openid.extensions.ax.AXMessage._checkMode
    - uris.append
    - openid.message.NamespaceMap.getNamespaceURI
    - <builtin>.str
    - openid.message.NamespaceMap.__init__
    - <builtin>.repr
    - <builtin>.isinstance
    - openid.extensions.ax.toTypeURIs
    - openid.message.NamespaceMap.iterNamespaceURIs
    - alias_list_s.split
    linkageType: pythonLinkage
    raised:
    - AXError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ax_args.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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 399
    functionName: openid.extensions.ax.FetchRequest.iterAttrs
    functionSourceFile: openid.extensions.ax
    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: 405
    functionName: openid.extensions.ax.FetchRequest.__iter__
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - type_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 410
    functionName: openid.extensions.ax.FetchRequest.has_key
    functionSourceFile: openid.extensions.ax
    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: 429
    functionName: openid.extensions.ax.AXKeyValueMessage.__init__
    functionSourceFile: openid.extensions.ax
    functionUses: 2
    functionsReached:
    - AXMessage.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - type_uri
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 433
    functionName: openid.extensions.ax.AXKeyValueMessage.addValue
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - values.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - type_uri
    - values
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 454
    functionName: openid.extensions.ax.AXKeyValueMessage.setValues
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    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 0x7f9f49035ca0>
    argNames:
    - self
    - aliases
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 466
    functionName: openid.extensions.ax.AXKeyValueMessage._getExtensionKVArgs
    functionSourceFile: openid.extensions.ax
    functionUses: 3
    functionsReached:
    - <builtin>.repr
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - openid.message.NamespaceMap.add
    - <builtin>.isinstance
    - <builtin>.type
    - <builtin>.enumerate
    - openid.message.NamespaceMap.__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: <builtin>.enumerate
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ax_args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 490
    functionName: openid.extensions.ax.AXKeyValueMessage.parseExtensionArgs
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - values.append
    - openid.message.NamespaceMap.addAlias
    - <builtin>.str
    - <builtin>.int
    - <builtin>.range
    - <builtin>.isinstance
    - ax_args.get
    - ax_args.items
    - <builtin>.type
    - key.startswith
    - openid.message.NamespaceMap.__init__
    - openid.extensions.ax.AXMessage._checkMode
    - openid.message.NamespaceMap.items
    - openid.extensions.ax.checkAlias
    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 0x7f9f48a3dc70>
    argNames:
    - self
    - type_uri
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 537
    functionName: openid.extensions.ax.AXKeyValueMessage.getSingle
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - AXError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - type_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 564
    functionName: openid.extensions.ax.AXKeyValueMessage.get
    functionSourceFile: openid.extensions.ax
    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
    - type_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 584
    functionName: openid.extensions.ax.AXKeyValueMessage.count
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - openid.extensions.ax.AXKeyValueMessage.get
    - <builtin>.len
    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 0x7f9f49046940>
    - <ast.Constant object at 0x7f9f49046f10>
    argNames:
    - self
    - request
    - update_url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 604
    functionName: openid.extensions.ax.FetchResponse.__init__
    functionSourceFile: openid.extensions.ax
    functionUses: 1
    functionsReached:
    - openid.extensions.ax.AXKeyValueMessage.__init__
    - AXMessage.__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: zero_value_types.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: ax_args.update
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ax_args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 691
    functionName: openid.extensions.ax.FetchResponse.parseExtensionArgs
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - ax_args.get
    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 0x7f9f484d2970>
    argNames:
    - cls
    - success_response
    - signed
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 696
    functionName: openid.extensions.ax.FetchResponse.fromSuccessResponse
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - openid.extensions.ax.AXKeyValueMessage.__init__
    - openid.extensions.ax.FetchResponse.__init__
    - success_response.extensionResponse
    - AXMessage.__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: success_response.extensionResponse
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: 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: openid.extensions.ax.FetchResponse
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - <builtin>.classmethod
    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 0x7f9f489ff700>
    argNames:
    - self
    - aliases
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 732
    functionName: openid.extensions.ax.StoreRequest.__init__
    functionSourceFile: openid.extensions.ax
    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: 4
    functionLinenumber: 740
    functionName: openid.extensions.ax.StoreRequest.getExtensionArgs
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - openid.extensions.ax.AXKeyValueMessage._getExtensionKVArgs
    - <builtin>.str
    - openid.message.NamespaceMap.add
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - openid.extensions.ax.AXMessage._newArgs
    - <builtin>.type
    - <builtin>.enumerate
    - openid.message.NamespaceMap.__init__
    - <builtin>.len
    - ax_args.update
    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 0x7f9f484e70d0>
    - <ast.Constant object at 0x7f9f484e7dc0>
    argNames:
    - self
    - succeeded
    - error_message
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 758
    functionName: openid.extensions.ax.StoreResponse.__init__
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - AXMessage.__init__
    linkageType: pythonLinkage
    raised:
    - AXError
    returnType: 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: openid.extensions.ax.StoreResponse.succeeded
    functionSourceFile: openid.extensions.ax
    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: 775
    functionName: openid.extensions.ax.StoreResponse.getExtensionArgs
    functionSourceFile: openid.extensions.ax
    functionUses: 0
    functionsReached:
    - openid.extensions.ax.StoreResponse.succeeded
    - openid.extensions.ax.AXMessage._newArgs
    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: openid.server.trustroot
    functionSourceFile: openid.server.trustroot
    functionUses: 0
    functionsReached:
    - re.compile
    - 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
    - relying_party_url
    - rp_url_after_redirects
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 72
    functionName: openid.server.trustroot.RealmVerificationRedirected.__init__
    functionSourceFile: openid.server.trustroot
    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: 76
    functionName: openid.server.trustroot.RealmVerificationRedirected.__str__
    functionSourceFile: openid.server.trustroot
    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:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 82
    functionName: openid.server.trustroot._parseURL
    functionSourceFile: openid.server.trustroot
    functionUses: 11
    functionsReached:
    - host.lower
    - host_segment_re.match
    - re.match
    - urllib.parse.urlunparse
    - urllib.parse.urlparse
    - netloc.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: netloc.split
    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: urllib.parse.urlunparse
    functionSourceFile: urllib
    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: host_segment_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: 7
    argDefaultValues: []
    argNames:
    - self
    - unparsed
    - proto
    - wildcard
    - host
    - port
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 128
    functionName: openid.server.trustroot.TrustRoot.__init__
    functionSourceFile: openid.server.trustroot
    functionUses: 10
    functionsReached: []
    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: 136
    functionName: openid.server.trustroot.TrustRoot.isSane
    functionSourceFile: openid.server.trustroot
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 190
    functionName: openid.server.trustroot.TrustRoot.validateURL
    functionSourceFile: openid.server.trustroot
    functionUses: 0
    functionsReached:
    - host.endswith
    - host.lower
    - host_segment_re.match
    - re.match
    - urllib.parse.urlunparse
    - openid.server.trustroot._parseURL
    - urllib.parse.urlparse
    - <builtin>.len
    - netloc.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: host.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: host.find
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.startswith
    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: 1
    functionLinenumber: -1
    functionName: openid.server.trustroot.TrustRoot
    functionSourceFile: openid.server.trustroot
    functionUses: 0
    functionsReached:
    - <builtin>.classmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - trust_root_string
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 301
    functionName: openid.server.trustroot.TrustRoot.checkSanity
    functionSourceFile: openid.server.trustroot
    functionUses: 0
    functionsReached:
    - host.startswith
    - host.lower
    - host_segment_re.match
    - re.match
    - urllib.parse.urlunparse
    - openid.server.trustroot.TrustRoot.__init__
    - trust_root.isSane
    - openid.server.trustroot.TrustRoot.parse
    - openid.server.trustroot._parseURL
    - path.find
    - urllib.parse.urlparse
    - <builtin>.len
    - netloc.split
    - host.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: trust_root.isSane
    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:
    - cls
    - trust_root
    - url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 314
    functionName: openid.server.trustroot.TrustRoot.checkURL
    functionSourceFile: openid.server.trustroot
    functionUses: 0
    functionsReached:
    - host.startswith
    - tr.validateURL
    - host.lower
    - host_segment_re.match
    - re.match
    - urllib.parse.urlunparse
    - openid.server.trustroot.TrustRoot.__init__
    - openid.server.trustroot.TrustRoot.parse
    - openid.server.trustroot._parseURL
    - path.find
    - urllib.parse.urlparse
    - <builtin>.len
    - netloc.split
    - host.find
    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: 322
    functionName: openid.server.trustroot.TrustRoot.buildDiscoveryURL
    functionSourceFile: openid.server.trustroot
    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: 343
    functionName: openid.server.trustroot.TrustRoot.__repr__
    functionSourceFile: openid.server.trustroot
    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: 348
    functionName: openid.server.trustroot.TrustRoot.__str__
    functionSourceFile: openid.server.trustroot
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - endpoint
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 359
    functionName: openid.server.trustroot._extractReturnURL
    functionSourceFile: openid.server.trustroot
    functionUses: 0
    functionsReached:
    - endpoint.matchTypes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: endpoint.matchTypes
    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:
    - allowed_return_to_urls
    - return_to
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 382
    functionName: openid.server.trustroot.returnToMatches
    functionSourceFile: openid.server.trustroot
    functionUses: 2
    functionsReached:
    - host.startswith
    - host.lower
    - host_segment_re.match
    - re.match
    - urllib.parse.urlunparse
    - openid.server.trustroot.TrustRoot.__init__
    - openid.server.trustroot.TrustRoot.parse
    - openid.server.trustroot._parseURL
    - path.find
    - return_realm.validateURL
    - urllib.parse.urlparse
    - <builtin>.len
    - netloc.split
    - host.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: return_realm.validateURL
    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:
    - relying_party_url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 410
    functionName: openid.server.trustroot.getAllowedReturnURLs
    functionSourceFile: openid.server.trustroot
    functionUses: 2
    functionsReached:
    - YADIS_HEADER_NAME.lower
    - SafeElementTree.XML
    - text.encode
    - Exception.__init__
    - content_type.split
    - openid.yadis.discover.whereIsYadis
    - <builtin>.list
    - resp.headers.get
    - openid.yadis.discover.DiscoveryResult.__init__
    - openid.yadis.parsehtml.findHTMLMeta
    - openid.fetchers.fetch
    - random.shuffle
    - <builtin>.sorted
    - xrd_tree.getroot
    - endpoints.extend
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    - openid.fetchers.setDefaultFetcher
    - openid.yadis.filters.CompoundFilter.__init__
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - transformers.append
    - resp.body.decode
    - openid.yadis.filters.mkCompoundFilter
    - openid.yadis.filters.CompoundFilter.getServiceEndpoints
    - subfilter.getServiceEndpoints
    - openid.fetchers.getDefaultFetcher
    - openid.yadis.discover.DiscoveryFailure.__init__
    - HTTPFetcher.__init__
    - <builtin>.hasattr
    - openid.yadis.discover.discover
    - openid.yadis.parsehtml.YadisHTMLParser.__init__
    - openid.yadis.services.getServiceEndpoints
    - openid.yadis.filters.TransformFilterMaker.__init__
    - openid.yadis.filters.mkFilter
    - ElementTree.ElementTree
    - openid.yadis.etxrd.prioSort
    - openid.yadis.etxrd.iterServices
    - openid.yadis.discover.DiscoveryResult.usedYadisLocation
    - <builtin>.len
    - io.StringIO
    - openid.fetchers.createHTTPFetcher
    - fetcher.fetch
    - <builtin>.super
    - openid.yadis.etxrd.getYadisXRD
    - <builtin>.isinstance
    - openid.yadis.services.applyFilter
    - xrd_tree.findall
    - io.StringIO.read
    - openid.fetchers.CurlHTTPFetcher.__init__
    - content_type.rsplit
    - openid.yadis.parsehtml.YadisHTMLParser.feed
    - xrd.findall
    - filters.append
    - chunks.append
    - openid.yadis.etxrd.parseXRDS
    - openid.yadis.etxrd.isXRDS
    linkageType: pythonLinkage
    raised:
    - RealmVerificationRedirected
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f9f490463a0>
    argNames:
    - realm_str
    - return_to
    - _vrfy
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 427
    functionName: openid.server.trustroot.verifyReturnTo
    functionSourceFile: openid.server.trustroot
    functionUses: 1
    functionsReached:
    - YADIS_HEADER_NAME.lower
    - SafeElementTree.XML
    - text.encode
    - re.match
    - urllib.parse.urlunparse
    - Exception.__init__
    - content_type.split
    - openid.server.trustroot._parseURL
    - path.find
    - openid.yadis.discover.whereIsYadis
    - <builtin>.list
    - logger.exception
    - openid.yadis.discover.DiscoveryResult.__init__
    - openid.yadis.parsehtml.findHTMLMeta
    - resp.headers.get
    - openid.fetchers.fetch
    - random.shuffle
    - <builtin>.sorted
    - xrd_tree.getroot
    - endpoints.extend
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    - openid.fetchers.setDefaultFetcher
    - openid.yadis.filters.CompoundFilter.__init__
    - openid.yadis.etxrd.parseXRDS
    - openid.server.trustroot.returnToMatches
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - transformers.append
    - resp.body.decode
    - openid.yadis.filters.mkCompoundFilter
    - openid.yadis.filters.CompoundFilter.getServiceEndpoints
    - subfilter.getServiceEndpoints
    - logger.error
    - host.startswith
    - openid.fetchers.getDefaultFetcher
    - openid.yadis.discover.DiscoveryFailure.__init__
    - HTTPFetcher.__init__
    - <builtin>.hasattr
    - <builtin>.str
    - openid.yadis.discover.discover
    - openid.server.trustroot.TrustRoot.__init__
    - openid.server.trustroot.TrustRoot.parse
    - openid.yadis.parsehtml.YadisHTMLParser.__init__
    - openid.yadis.services.getServiceEndpoints
    - openid.yadis.filters.TransformFilterMaker.__init__
    - openid.yadis.filters.mkFilter
    - ElementTree.ElementTree
    - openid.yadis.etxrd.prioSort
    - openid.yadis.etxrd.iterServices
    - openid.yadis.discover.DiscoveryResult.usedYadisLocation
    - <builtin>.len
    - openid.server.trustroot.getAllowedReturnURLs
    - io.StringIO
    - netloc.split
    - openid.fetchers.createHTTPFetcher
    - fetcher.fetch
    - <builtin>.super
    - openid.yadis.etxrd.getYadisXRD
    - host.lower
    - host_segment_re.match
    - <builtin>.isinstance
    - openid.yadis.services.applyFilter
    - xrd_tree.findall
    - return_realm.validateURL
    - io.StringIO.read
    - openid.fetchers.CurlHTTPFetcher.__init__
    - urllib.parse.urlparse
    - content_type.rsplit
    - openid.yadis.parsehtml.YadisHTMLParser.feed
    - xrd.findall
    - filters.append
    - realm.buildDiscoveryURL
    - chunks.append
    - host.find
    - openid.yadis.etxrd.isXRDS
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: realm.buildDiscoveryURL
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: openid.server
    functionSourceFile: openid.server
    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: openid.extensions.draft.pape2
    functionSourceFile: openid.extensions.draft.pape2
    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 0x7f9f484e7340>
    - <ast.Constant object at 0x7f9f484e7970>
    argNames:
    - self
    - preferred_auth_policies
    - max_auth_age
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: openid.extensions.draft.pape2.Request.__init__
    functionSourceFile: openid.extensions.draft.pape2
    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: 1
    functionLinenumber: 57
    functionName: openid.extensions.draft.pape2.Request.__bool__
    functionSourceFile: openid.extensions.draft.pape2
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - policy_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 61
    functionName: openid.extensions.draft.pape2.Request.addPolicyURI
    functionSourceFile: openid.extensions.draft.pape2
    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:
    - cls
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 86
    functionName: openid.extensions.draft.pape2.Request.fromOpenIDRequest
    functionSourceFile: openid.extensions.draft.pape2
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - openid.extensions.draft.pape2.Request.__init__
    - request.message.getArgs
    linkageType: 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: openid.extensions.draft.pape2.Request
    functionSourceFile: openid.extensions.draft.pape2
    functionUses: 0
    functionsReached:
    - <builtin>.classmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 101
    functionName: openid.extensions.draft.pape2.Request.parseExtensionArgs
    functionSourceFile: openid.extensions.draft.pape2
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - <builtin>.isinstance
    - <builtin>.int
    - policies_str.split
    - args.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - supported_types
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 134
    functionName: openid.extensions.draft.pape2.Request.preferredTypes
    functionSourceFile: openid.extensions.draft.pape2
    functionUses: 0
    functionsReached:
    - <builtin>.filter
    - <builtin>.list
    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 0x7f9f483d4250>
    - <ast.Constant object at 0x7f9f483d4760>
    - <ast.Constant object at 0x7f9f483d44c0>
    argNames:
    - self
    - auth_policies
    - auth_time
    - nist_auth_level
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 164
    functionName: openid.extensions.draft.pape2.Response.__init__
    functionSourceFile: openid.extensions.draft.pape2
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - policy_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 177
    functionName: openid.extensions.draft.pape2.Response.addPolicyURI
    functionSourceFile: openid.extensions.draft.pape2
    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:
    - cls
    - success_response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 190
    functionName: openid.extensions.draft.pape2.Response.fromSuccessResponse
    functionSourceFile: openid.extensions.draft.pape2
    functionUses: 0
    functionsReached:
    - openid.extensions.draft.pape2.Response.__init__
    - <builtin>.super
    - success_response.getSignedNS
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f9f485a1700>
    argNames:
    - self
    - args
    - strict
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 217
    functionName: openid.extensions.draft.pape2.Response.parseExtensionArgs
    functionSourceFile: openid.extensions.draft.pape2
    functionUses: 0
    functionsReached:
    - TIME_VALIDATOR.match
    - policies_str.split
    - <builtin>.int
    - args.get
    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: openid.extensions.draft.pape2.Response
    functionSourceFile: openid.extensions.draft.pape2
    functionUses: 0
    functionsReached:
    - <builtin>.classmethod
    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: openid.server.server
    functionSourceFile: openid.server.server
    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 0x7f9f48505ee0>
    argNames:
    - self
    - assoc_handle
    - signed
    - invalidate_handle
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 181
    functionName: openid.server.server.CheckAuthRequest.__init__
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f9f488ce9d0>
    argNames:
    - klass
    - message
    - op_endpoint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 197
    functionName: openid.server.server.CheckAuthRequest.fromMessage
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - message.copy
    - klass.__new__
    - message.getOpenIDNamespace
    - message.getArg
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: klass.__new__
    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: message.getOpenIDNamespace
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - signatory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 227
    functionName: openid.server.server.CheckAuthRequest.answer
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - warnings.warn
    - <builtin>.repr
    - <builtin>.str
    - signatory.verify
    - openid.message.NamespaceMap.add
    - openid.message.NamespaceMap.addAlias
    - signatory.invalidate
    - <builtin>.isinstance
    - openid.message.Message.setArg
    - <builtin>.type
    - openid.message.Message._fixNS
    - openid.message.NamespaceMap.__init__
    - openid.message.Message.setOpenIDNamespace
    - openid.server.server.OpenIDResponse.__init__
    - signatory.getAssociation
    - openid.message.Message.__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: signatory.verify
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: signatory.invalidate
    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
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 987
    functionName: openid.server.server.OpenIDResponse.__init__
    functionSourceFile: openid.server.server
    functionUses: 4
    functionsReached:
    - <builtin>.repr
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - <builtin>.type
    - openid.message.NamespaceMap.__init__
    - openid.message.Message.setOpenIDNamespace
    - openid.message.Message.__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: signatory.getAssociation
    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: 256
    functionName: openid.server.server.CheckAuthRequest.__str__
    functionSourceFile: openid.server.server
    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
    - unused_request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 283
    functionName: openid.server.server.PlainTextServerSession.fromMessage
    functionSourceFile: openid.server.server
    functionUses: 1
    functionsReached: []
    linkageType: 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: openid.server.server.PlainTextServerSession
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - <builtin>.classmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - secret
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 288
    functionName: openid.server.server.PlainTextServerSession.answer
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - binascii.b2a_base64
    - openid.oidutil.toBase64
    - Crypto.Util.number.long_to_bytes.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: -1
    functionName: openid.server.server.DiffieHellmanSHA1ServerSession
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    - <builtin>.classmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - dh
    - consumer_pubkey
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 315
    functionName: openid.server.server.DiffieHellmanSHA1ServerSession.__init__
    functionSourceFile: openid.server.server
    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:
    - cls
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 319
    functionName: openid.server.server.DiffieHellmanSHA1ServerSession.fromMessage
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - openid.cryptutil.base64ToLong
    - pickle.decode_long
    - b.reverse
    - openid.dh.DiffieHellman._setPrivate
    - openid.oidutil.fromBase64
    - <builtin>.int
    - s.encode
    - Crypto.Util.number.bytes_to_long
    - <builtin>.pow
    - openid.dh.DiffieHellman.fromDefaults
    - <builtin>.bytes
    - Crypto.Util.number.bytes_to_long.encode
    - message.getArg
    - openid.cryptutil.binaryToLong
    - binascii.a2b_base64
    - <builtin>.bytearray
    - <builtin>.isinstance
    - openid.dh.DiffieHellman.__init__
    - openid.server.server.DiffieHellmanSHA1ServerSession.__init__
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - secret
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 361
    functionName: openid.server.server.DiffieHellmanSHA1ServerSession.answer
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - openid.dh.strxor
    - b.reverse
    - openid.cryptutil.longToBase64
    - pickle.encode_long
    - openid.oidutil.toBase64
    - <builtin>.pow
    - openid.cryptutil.longToBinary
    - <builtin>.bytes
    - openid.dh.DiffieHellman.getSharedSecret
    - <builtin>.len
    - <builtin>.bytearray
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.encode
    - Crypto.Util.number.long_to_bytes
    - openid.dh.DiffieHellman.xorSecret
    - y.encode
    - <builtin>.isinstance
    - <builtin>.zip
    - x.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: -1
    functionName: openid.server.server.DiffieHellmanSHA256ServerSession
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - session
    - assoc_type
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 401
    functionName: openid.server.server.AssociateRequest.__init__
    functionSourceFile: openid.server.server
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f9f48a3d6d0>
    argNames:
    - klass
    - message
    - op_endpoint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 412
    functionName: openid.server.server.AssociateRequest.fromMessage
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - openid.server.server.AssociateRequest.__init__
    - message.isOpenID1
    - openid.server.server.PlainTextServerSession.fromMessage
    - message.getArg
    - logger.warning
    - <builtin>.super
    - message.getOpenIDNamespace
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/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.isOpenID1
    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: 1
    functionLinenumber: -1
    functionName: openid.server.server.AssociateRequest
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - <builtin>.classmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - assoc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 458
    functionName: openid.server.server.AssociateRequest.answer
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - warnings.warn
    - <builtin>.repr
    - <builtin>.str
    - openid.message.NamespaceMap.add
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - openid.message.Message.setArg
    - openid.message.Message.updateArgs
    - updates.items
    - openid.message.Message._fixNS
    - <builtin>.type
    - openid.message.NamespaceMap.__init__
    - openid.message.Message.setOpenIDNamespace
    - openid.server.server.OpenIDResponse.__init__
    - openid.message.Message.__init__
    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 0x7f9f48dfbf40>
    - <ast.Constant object at 0x7f9f48dfba60>
    argNames:
    - self
    - message
    - preferred_association_type
    - preferred_session_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 486
    functionName: openid.server.server.AssociateRequest.answerUnsupported
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - warnings.warn
    - <builtin>.repr
    - <builtin>.str
    - openid.message.NamespaceMap.add
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - openid.message.Message.setArg
    - <builtin>.type
    - openid.message.Message._fixNS
    - openid.message.NamespaceMap.__init__
    - openid.message.Message.setOpenIDNamespace
    - openid.server.server.OpenIDResponse.__init__
    - openid.message.Message.__init__
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f9f484d2070>
    - <ast.Constant object at 0x7f9f484d2fd0>
    - <ast.Constant object at 0x7f9f484d29a0>
    - <ast.Constant object at 0x7f9f484d20d0>
    - <ast.Constant object at 0x7f9f484d2790>
    argNames:
    - self
    - identity
    - return_to
    - trust_root
    - immediate
    - assoc_handle
    - op_endpoint
    - claimed_id
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 545
    functionName: openid.server.server.CheckIDRequest.__init__
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - host.startswith
    - tr.validateURL
    - host.lower
    - host_segment_re.match
    - re.match
    - urllib.parse.urlunparse
    - openid.server.trustroot.TrustRoot.__init__
    - openid.server.trustroot.TrustRoot.parse
    - openid.server.trustroot._parseURL
    - path.find
    - openid.server.server.CheckIDRequest.trustRootValid
    - urllib.parse.urlparse
    - <builtin>.len
    - netloc.split
    - host.find
    linkageType: pythonLinkage
    raised:
    - MalformedReturnURL
    - UntrustedReturnURL
    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: 697
    functionName: openid.server.server.CheckIDRequest.trustRootValid
    functionSourceFile: openid.server.server
    functionUses: 1
    functionsReached:
    - host.startswith
    - tr.validateURL
    - host.lower
    - host_segment_re.match
    - re.match
    - urllib.parse.urlunparse
    - openid.server.trustroot.TrustRoot.__init__
    - openid.server.trustroot.TrustRoot.parse
    - openid.server.trustroot._parseURL
    - path.find
    - urllib.parse.urlparse
    - <builtin>.len
    - netloc.split
    - host.find
    linkageType: pythonLinkage
    raised:
    - MalformedTrustRoot
    returnType: 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: 581
    functionName: openid.server.server.CheckIDRequest._getNamespace
    functionSourceFile: openid.server.server
    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: openid.server.server.CheckIDRequest
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - <builtin>.property
    - <builtin>.classmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 1
    IfCount: 11
    argCount: 3
    argDefaultValues: []
    argNames:
    - klass
    - message
    - op_endpoint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 592
    functionName: openid.server.server.CheckIDRequest.fromMessage
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - host.startswith
    - host.lower
    - message.isOpenID1
    - host_segment_re.match
    - re.match
    - urllib.parse.urlunparse
    - openid.server.trustroot.TrustRoot.__init__
    - openid.server.trustroot.TrustRoot.parse
    - openid.server.trustroot._parseURL
    - message.getArg
    - path.find
    - klass.__new__
    - urllib.parse.urlparse
    - <builtin>.len
    - netloc.split
    - host.find
    linkageType: pythonLinkage
    raised:
    - UntrustedReturnURL
    - ProtocolError
    - MalformedReturnURL
    returnType: 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: 689
    functionName: openid.server.server.CheckIDRequest.idSelect
    functionSourceFile: openid.server.server
    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: 713
    functionName: openid.server.server.CheckIDRequest.returnToVerified
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - YADIS_HEADER_NAME.lower
    - SafeElementTree.XML
    - text.encode
    - re.match
    - urllib.parse.urlunparse
    - Exception.__init__
    - content_type.split
    - openid.server.trustroot._parseURL
    - path.find
    - openid.yadis.discover.whereIsYadis
    - <builtin>.list
    - logger.exception
    - openid.yadis.discover.DiscoveryResult.__init__
    - openid.yadis.parsehtml.findHTMLMeta
    - resp.headers.get
    - openid.fetchers.fetch
    - random.shuffle
    - <builtin>.sorted
    - xrd_tree.getroot
    - endpoints.extend
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    - openid.fetchers.setDefaultFetcher
    - openid.yadis.filters.CompoundFilter.__init__
    - openid.yadis.etxrd.parseXRDS
    - openid.server.trustroot.verifyReturnTo
    - openid.server.trustroot.returnToMatches
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - transformers.append
    - resp.body.decode
    - openid.yadis.filters.mkCompoundFilter
    - openid.yadis.filters.CompoundFilter.getServiceEndpoints
    - subfilter.getServiceEndpoints
    - logger.error
    - host.startswith
    - openid.fetchers.getDefaultFetcher
    - openid.yadis.discover.DiscoveryFailure.__init__
    - HTTPFetcher.__init__
    - <builtin>.hasattr
    - <builtin>.str
    - openid.yadis.discover.discover
    - openid.server.trustroot.TrustRoot.__init__
    - openid.server.trustroot.TrustRoot.parse
    - openid.yadis.parsehtml.YadisHTMLParser.__init__
    - openid.yadis.services.getServiceEndpoints
    - openid.yadis.filters.TransformFilterMaker.__init__
    - openid.yadis.filters.mkFilter
    - ElementTree.ElementTree
    - openid.yadis.etxrd.prioSort
    - openid.yadis.etxrd.iterServices
    - openid.yadis.discover.DiscoveryResult.usedYadisLocation
    - <builtin>.len
    - openid.server.trustroot.getAllowedReturnURLs
    - io.StringIO
    - netloc.split
    - openid.fetchers.createHTTPFetcher
    - fetcher.fetch
    - <builtin>.super
    - openid.yadis.etxrd.getYadisXRD
    - host.lower
    - host_segment_re.match
    - <builtin>.isinstance
    - openid.yadis.services.applyFilter
    - xrd_tree.findall
    - return_realm.validateURL
    - io.StringIO.read
    - openid.fetchers.CurlHTTPFetcher.__init__
    - urllib.parse.urlparse
    - content_type.rsplit
    - openid.yadis.parsehtml.YadisHTMLParser.feed
    - xrd.findall
    - filters.append
    - realm.buildDiscoveryURL
    - chunks.append
    - host.find
    - openid.yadis.etxrd.isXRDS
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 21
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 30
    ICount: 7
    IfCount: 21
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f9f48a38d00>
    - <ast.Constant object at 0x7f9f48a38070>
    - <ast.Constant object at 0x7f9f48a38370>
    argNames:
    - self
    - allow
    - server_url
    - identity
    - claimed_id
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 743
    functionName: openid.server.server.CheckIDRequest.answer
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - openid.urinorm.remove_dot_segments
    - result_segments.append
    - openid.message.NamespaceMap.addAlias
    - path.find
    - <builtin>.type
    - uri_illegal_char_re.search
    - openid.message.Message.__init__
    - uri_mo.group
    - time.strftime
    - scheme.lower
    - openid.store.nonce.mkNonce
    - openid.message.NamespaceMap.add
    - openid.message.Message.setArg
    - host.encode
    - uri_re.match
    - openid.message.Message.setOpenIDNamespace
    - uri.encode
    - openid.cryptutil.randomString
    - time.gmtime
    - path.startswith
    - <builtin>.str
    - result_segments.pop
    - pct_encoded_re.sub
    - <builtin>.range
    - openid.message.Message.updateArgs
    - openid.message.NamespaceMap.__init__
    - authority_re.match
    - <builtin>.len
    - <builtin>.repr
    - warnings.warn
    - random.randrange
    - host.lower
    - os.urandom
    - <builtin>.isinstance
    - openid.urinorm.urinorm
    - updates.items
    - openid.message.Message._fixNS
    - openid.server.server.OpenIDResponse.__init__
    - authority_mo.groups
    - setup_request.encodeToURL
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    - VersionError
    - 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: setup_request.encodeToURL
    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
    - server_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 898
    functionName: openid.server.server.CheckIDRequest.encodeToURL
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - value.decode
    - openid.message.NamespaceMap.addAlias
    - openid.message.NamespaceMap.isImplicit
    - <builtin>.type
    - <builtin>.list
    - <builtin>.sorted
    - openid.message.Message.__init__
    - k.encode
    - v.encode
    - openid.message.NamespaceMap.add
    - openid.message.Message.setArg
    - urllib.parse.urlencode
    - openid.message.NamespaceMap.items
    - openid.message.Message.setOpenIDNamespace
    - openid.message.NamespaceMap.getAlias
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - <builtin>.hasattr
    - <builtin>.str
    - openid.message.Message.updateArgs
    - openid.message.NamespaceMap.__init__
    - openid.oidutil.appendArgs
    - warnings.warn
    - <builtin>.repr
    - openid.message.Message.toURL
    - <builtin>.isinstance
    - updates.items
    - openid.message.Message._fixNS
    - args.items
    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: 933
    functionName: openid.server.server.CheckIDRequest.getCancelURL
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - value.decode
    - openid.message.NamespaceMap.addAlias
    - openid.message.NamespaceMap.isImplicit
    - <builtin>.type
    - <builtin>.list
    - <builtin>.sorted
    - openid.message.Message.__init__
    - k.encode
    - v.encode
    - openid.message.NamespaceMap.add
    - openid.message.Message.setArg
    - urllib.parse.urlencode
    - openid.message.NamespaceMap.items
    - openid.message.Message.setOpenIDNamespace
    - openid.message.NamespaceMap.getAlias
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - <builtin>.hasattr
    - <builtin>.str
    - openid.message.NamespaceMap.__init__
    - openid.oidutil.appendArgs
    - <builtin>.repr
    - warnings.warn
    - openid.message.Message.toURL
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    - args.items
    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: 959
    functionName: openid.server.server.CheckIDRequest.__repr__
    functionSourceFile: openid.server.server
    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: 995
    functionName: openid.server.server.OpenIDResponse.__str__
    functionSourceFile: openid.server.server
    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 0x7f9f48e007c0>
    argNames:
    - self
    - form_tag_attrs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 999
    functionName: openid.server.server.OpenIDResponse.toFormMarkup
    functionSourceFile: openid.server.server
    functionUses: 1
    functionsReached:
    - openid.oidutil.toUnicode
    - form.append
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - ElementTree.tostring
    - warnings.warn
    - value.decode
    - <builtin>.str
    - openid.message.Message.toFormMarkup
    - <builtin>.isinstance
    - ElementTree.Element
    - form_tag_attrs.items
    - openid.message.NamespaceMap.isImplicit
    - openid.message.Message._fixNS
    - openid.message.NamespaceMap.items
    - openid.message.NamespaceMap.getAlias
    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 0x7f9f48e00f70>
    argNames:
    - self
    - form_tag_attrs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1014
    functionName: openid.server.server.OpenIDResponse.toHTML
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - form.append
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - ElementTree.tostring
    - warnings.warn
    - value.decode
    - <builtin>.str
    - openid.message.Message.toFormMarkup
    - <builtin>.isinstance
    - ElementTree.Element
    - openid.message.NamespaceMap.isImplicit
    - form_tag_attrs.items
    - openid.message.Message._fixNS
    - openid.oidutil.autoSubmitHTML
    - openid.message.NamespaceMap.items
    - openid.server.server.OpenIDResponse.toFormMarkup
    - openid.message.NamespaceMap.getAlias
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1026
    functionName: openid.server.server.OpenIDResponse.renderAsForm
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - value.decode
    - openid.message.NamespaceMap.isImplicit
    - <builtin>.list
    - <builtin>.sorted
    - k.encode
    - openid.message.Message.getOpenIDNamespace
    - openid.server.server.OpenIDResponse.encodeToURL
    - v.encode
    - urllib.parse.urlencode
    - openid.message.NamespaceMap.items
    - openid.message.NamespaceMap.getAlias
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - <builtin>.hasattr
    - <builtin>.str
    - <builtin>.len
    - openid.oidutil.appendArgs
    - warnings.warn
    - openid.message.Message.toURL
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    - args.items
    - openid.server.server.OpenIDResponse.whichEncoding
    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: 1044
    functionName: openid.server.server.OpenIDResponse.whichEncoding
    functionSourceFile: openid.server.server
    functionUses: 1
    functionsReached:
    - value.decode
    - openid.message.NamespaceMap.isImplicit
    - <builtin>.list
    - <builtin>.sorted
    - k.encode
    - openid.message.Message.getOpenIDNamespace
    - openid.server.server.OpenIDResponse.encodeToURL
    - v.encode
    - urllib.parse.urlencode
    - openid.message.NamespaceMap.items
    - openid.message.NamespaceMap.getAlias
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - <builtin>.hasattr
    - <builtin>.str
    - <builtin>.len
    - openid.oidutil.appendArgs
    - warnings.warn
    - openid.message.Message.toURL
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    - args.items
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1036
    functionName: openid.server.server.OpenIDResponse.needsSigning
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - warnings.warn
    - <builtin>.str
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    - openid.message.Message.getArg
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1060
    functionName: openid.server.server.OpenIDResponse.encodeToURL
    functionSourceFile: openid.server.server
    functionUses: 2
    functionsReached:
    - value.decode
    - openid.message.NamespaceMap.isImplicit
    - <builtin>.list
    - <builtin>.sorted
    - k.encode
    - v.encode
    - urllib.parse.urlencode
    - openid.message.NamespaceMap.items
    - openid.message.NamespaceMap.getAlias
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - <builtin>.hasattr
    - <builtin>.str
    - openid.oidutil.appendArgs
    - warnings.warn
    - openid.message.Message.toURL
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    - args.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - extension_response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1070
    functionName: openid.server.server.OpenIDResponse.addExtension
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - extension_response.toMessage
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: extension_response.toMessage
    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: 6
    functionLinenumber: 1083
    functionName: openid.server.server.OpenIDResponse.encodeToKVForm
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - lines.append
    - openid.kvform.seqToKV.err
    - value.decode
    - openid.message.NamespaceMap.isImplicit
    - openid.kvform.dictToKV
    - <builtin>.sorted
    - openid.kvform.seqToKV
    - k.startswith
    - openid.message.Message.toArgs
    - k.strip
    - logger.warning
    - openid.message.NamespaceMap.items
    - openid.message.NamespaceMap.getAlias
    - v.strip
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - <builtin>.str
    - post_args.items
    - v.decode
    - d.items
    - warnings.warn
    - k.decode
    - openid.message.Message.toKVForm
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f9f4857bc10>
    - <ast.Constant object at 0x7f9f4857b490>
    - <ast.Constant object at 0x7f9f4857bf70>
    argNames:
    - self
    - code
    - headers
    - body
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1113
    functionName: openid.server.server.WebResponse.__init__
    functionSourceFile: openid.server.server
    functionUses: 1
    functionsReached:
    - <builtin>.str
    - <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
    - store
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1151
    functionName: openid.server.server.Signatory.__init__
    functionSourceFile: openid.server.server
    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
    - assoc_handle
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1160
    functionName: openid.server.server.Signatory.verify
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - assoc.checkMessageSignature
    - logger.exception
    - openid.server.server.Signatory.getAssociation
    - logger.info
    - logger.error
    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 0x7f9f48e76cd0>
    argNames:
    - self
    - assoc_handle
    - dumb
    - checkExpiration
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1259
    functionName: openid.server.server.Signatory.getAssociation
    functionSourceFile: openid.server.server
    functionUses: 2
    functionsReached:
    - logger.info
    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: assoc.checkMessageSignature
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1187
    functionName: openid.server.server.Signatory.sign
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - assoc.signMessage
    - copy.deepcopy.fields.setArg
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.encode
    - openid.server.server.Signatory.invalidate
    - <builtin>.int
    - <builtin>.isinstance
    - secret.encode
    - openid.server.server.Signatory.createAssociation
    - time.time
    - openid.association.Association.__init__
    - copy.deepcopy
    - openid.server.server.Signatory.getAssociation
    - openid.association.Association.fromExpiresIn
    - openid.association.getSecretSize
    - openid.oidutil.toBase64
    - logger.info
    linkageType: pythonLinkage
    raised:
    - EncodingError
    returnType: N/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.deepcopy.fields.setArg
    functionSourceFile: copy
    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
    - assoc_handle
    - dumb
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1294
    functionName: openid.server.server.Signatory.invalidate
    functionSourceFile: ''
    functionUses: 1
    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 0x7f9f48e7dbb0>
    - <ast.Constant object at 0x7f9f48e7d520>
    argNames:
    - self
    - dumb
    - assoc_type
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1232
    functionName: openid.server.server.Signatory.createAssociation
    functionSourceFile: openid.server.server
    functionUses: 1
    functionsReached:
    - binascii.b2a_base64
    - Crypto.Util.number.long_to_bytes.encode
    - <builtin>.int
    - <builtin>.isinstance
    - secret.encode
    - time.time
    - openid.association.Association.__init__
    - openid.association.Association.fromExpiresIn
    - openid.association.getSecretSize
    - openid.oidutil.toBase64
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: assoc.signMessage
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1320
    functionName: openid.server.server.Encoder.encode
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - response.encodeToURL
    - <builtin>.str
    - response.encodeToKVForm
    - <builtin>.isinstance
    - response.toHTML
    - response.whichEncoding
    - openid.server.server.WebResponse.__init__
    linkageType: pythonLinkage
    raised:
    - EncodingError
    returnType: N/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.whichEncoding
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.encodeToKVForm
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.encodeToURL
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.toHTML
    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
    - signatory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1348
    functionName: openid.server.server.SigningEncoder.__init__
    functionSourceFile: openid.server.server
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1356
    functionName: openid.server.server.SigningEncoder.encode
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - response.fields.hasKey
    - <builtin>.isinstance
    - response.needsSigning
    linkageType: pythonLinkage
    raised:
    - AlreadySigned
    - 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: response.needsSigning
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.fields.hasKey
    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
    - server
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1389
    functionName: openid.server.server.Decoder.__init__
    functionSourceFile: openid.server.server
    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:
    - self
    - query
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1398
    functionName: openid.server.server.Decoder.decode
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - key.split
    - <builtin>.str
    - query.copy
    - <builtin>.isinstance
    - openid.message.NamespaceMap.addAlias
    - message.getArg
    - <builtin>.type
    - openid.message.NamespaceMap.__init__
    - openid.message.Message.setOpenIDNamespace
    - args.items
    - openid.message.Message.fromPostArgs
    - openid.message.Message.__init__
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: query.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:
    - self
    - message
    - server
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1436
    functionName: openid.server.server.Decoder.defaultDecoder
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - message.getArg
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f9f4732b940>
    - <ast.Name object at 0x7f9f4732b910>
    - <ast.Name object at 0x7f9f4732b8e0>
    - <ast.Name object at 0x7f9f4732b8b0>
    argNames:
    - self
    - store
    - op_endpoint
    - signatoryClass
    - encoderClass
    - decoderClass
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1496
    functionName: openid.server.server.Server.__init__
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - warnings.warn
    - openid.association.SessionNegotiator.copy
    - openid.server.server.Decoder.__init__
    - openid.server.server.Signatory.__init__
    - openid.server.server.SigningEncoder.__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:
    - self
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1530
    functionName: openid.server.server.Server.handleRequest
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1551
    functionName: openid.server.server.Server.openid_check_authentication
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - request.answer
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.answer
    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
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1558
    functionName: openid.server.server.Server.openid_associate
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - request.answer
    - request.answerUnsupported
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.answerUnsupported
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - query
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1578
    functionName: openid.server.server.Server.decodeRequest
    functionSourceFile: openid.server.server
    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
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1597
    functionName: openid.server.server.Server.encodeResponse
    functionSourceFile: openid.server.server
    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 0x7f9f47338100>
    - <ast.Constant object at 0x7f9f473380d0>
    - <ast.Constant object at 0x7f9f473380a0>
    argNames:
    - self
    - message
    - text
    - reference
    - contact
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1619
    functionName: openid.server.server.ProtocolError.__init__
    functionSourceFile: openid.server.server
    functionUses: 2
    functionsReached:
    - <builtin>.type
    - Exception.__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: 1635
    functionName: openid.server.server.ProtocolError.getReturnTo
    functionSourceFile: openid.server.server
    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: 1645
    functionName: openid.server.server.ProtocolError.hasReturnTo
    functionSourceFile: openid.server.server
    functionUses: 1
    functionsReached:
    - openid.server.server.ProtocolError.getReturnTo
    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: 4
    functionLinenumber: 1652
    functionName: openid.server.server.ProtocolError.toMessage
    functionSourceFile: openid.server.server
    functionUses: 5
    functionsReached:
    - <builtin>.repr
    - warnings.warn
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - openid.message.NamespaceMap.add
    - openid.message.Message.setArg
    - <builtin>.type
    - openid.message.Message._fixNS
    - openid.message.NamespaceMap.__init__
    - openid.message.Message.setOpenIDNamespace
    - openid.message.Message.__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: 5
    functionLinenumber: 1671
    functionName: openid.server.server.ProtocolError.encodeToURL
    functionSourceFile: openid.server.server
    functionUses: 1
    functionsReached:
    - value.decode
    - openid.message.NamespaceMap.addAlias
    - openid.message.NamespaceMap.isImplicit
    - <builtin>.type
    - <builtin>.list
    - <builtin>.sorted
    - openid.message.Message.__init__
    - k.encode
    - v.encode
    - openid.message.NamespaceMap.add
    - urllib.parse.urlencode
    - openid.message.Message.setArg
    - openid.message.NamespaceMap.items
    - openid.message.Message.setOpenIDNamespace
    - openid.message.NamespaceMap.getAlias
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - <builtin>.hasattr
    - <builtin>.str
    - openid.message.NamespaceMap.__init__
    - openid.oidutil.appendArgs
    - openid.server.server.ProtocolError.getReturnTo
    - openid.server.server.ProtocolError.toMessage
    - warnings.warn
    - <builtin>.repr
    - openid.message.Message.toURL
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    - args.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: 5
    functionLinenumber: 1674
    functionName: openid.server.server.ProtocolError.encodeToKVForm
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - lines.append
    - openid.kvform.seqToKV.err
    - value.decode
    - openid.message.NamespaceMap.addAlias
    - openid.message.NamespaceMap.isImplicit
    - openid.kvform.dictToKV
    - <builtin>.type
    - <builtin>.sorted
    - openid.message.Message.__init__
    - openid.kvform.seqToKV
    - k.startswith
    - openid.message.Message.toArgs
    - openid.message.NamespaceMap.add
    - openid.message.Message.setArg
    - k.strip
    - logger.warning
    - openid.message.NamespaceMap.items
    - openid.message.Message.setOpenIDNamespace
    - openid.message.NamespaceMap.getAlias
    - v.strip
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - <builtin>.str
    - post_args.items
    - v.decode
    - openid.message.NamespaceMap.__init__
    - d.items
    - openid.server.server.ProtocolError.toMessage
    - warnings.warn
    - <builtin>.repr
    - k.decode
    - openid.message.Message.toKVForm
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1677
    functionName: openid.server.server.ProtocolError.toFormMarkup
    functionSourceFile: openid.server.server
    functionUses: 1
    functionsReached:
    - form.append
    - value.decode
    - openid.message.NamespaceMap.addAlias
    - form_tag_attrs.items
    - openid.message.NamespaceMap.isImplicit
    - <builtin>.type
    - openid.message.Message.__init__
    - openid.message.NamespaceMap.add
    - openid.message.Message.setArg
    - openid.message.NamespaceMap.items
    - openid.message.Message.setOpenIDNamespace
    - openid.message.NamespaceMap.getAlias
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - ElementTree.tostring
    - <builtin>.str
    - openid.message.Message.toFormMarkup
    - openid.message.NamespaceMap.__init__
    - openid.server.server.ProtocolError.getReturnTo
    - openid.server.server.ProtocolError.toMessage
    - warnings.warn
    - <builtin>.repr
    - <builtin>.isinstance
    - ElementTree.Element
    - openid.message.Message._fixNS
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1684
    functionName: openid.server.server.ProtocolError.toHTML
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - form.append
    - value.decode
    - openid.message.NamespaceMap.addAlias
    - form_tag_attrs.items
    - openid.message.NamespaceMap.isImplicit
    - <builtin>.type
    - openid.message.Message.__init__
    - openid.message.NamespaceMap.add
    - openid.message.Message.setArg
    - openid.oidutil.autoSubmitHTML
    - openid.message.NamespaceMap.items
    - openid.message.Message.setOpenIDNamespace
    - openid.message.NamespaceMap.getAlias
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - ElementTree.tostring
    - <builtin>.str
    - openid.message.Message.toFormMarkup
    - openid.message.NamespaceMap.__init__
    - openid.server.server.ProtocolError.getReturnTo
    - openid.server.server.ProtocolError.toMessage
    - warnings.warn
    - <builtin>.repr
    - openid.server.server.ProtocolError.toFormMarkup
    - <builtin>.isinstance
    - ElementTree.Element
    - openid.message.Message._fixNS
    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: 6
    functionLinenumber: 1692
    functionName: openid.server.server.ProtocolError.whichEncoding
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - value.decode
    - openid.message.NamespaceMap.addAlias
    - openid.message.NamespaceMap.isImplicit
    - <builtin>.type
    - <builtin>.list
    - <builtin>.sorted
    - openid.message.Message.__init__
    - openid.server.server.ProtocolError.encodeToURL
    - k.encode
    - v.encode
    - openid.message.NamespaceMap.add
    - urllib.parse.urlencode
    - openid.message.Message.setArg
    - openid.message.NamespaceMap.items
    - openid.message.Message.setOpenIDNamespace
    - openid.message.NamespaceMap.getAlias
    - openid.server.server.ProtocolError.hasReturnTo
    - openid.oidutil.toUnicode
    - openid.message.Message.getKey
    - openid.message.Message.toPostArgs
    - <builtin>.hasattr
    - <builtin>.str
    - openid.message.NamespaceMap.__init__
    - <builtin>.len
    - openid.oidutil.appendArgs
    - openid.server.server.ProtocolError.getReturnTo
    - openid.server.server.ProtocolError.toMessage
    - warnings.warn
    - <builtin>.repr
    - openid.message.Message.toURL
    - <builtin>.isinstance
    - openid.message.Message._fixNS
    - args.items
    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 0x7f9f47274370>
    argNames:
    - self
    - response
    - explanation
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1749
    functionName: openid.server.server.EncodingError.__init__
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - Exception.__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: 0
    functionLinenumber: 1754
    functionName: openid.server.server.EncodingError.__str__
    functionSourceFile: openid.server.server
    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
    - return_to
    - trust_root
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1769
    functionName: openid.server.server.UntrustedReturnURL.__init__
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - <builtin>.type
    - Exception.__init__
    - openid.server.server.ProtocolError.__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: 1774
    functionName: openid.server.server.UntrustedReturnURL.__str__
    functionSourceFile: openid.server.server
    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
    - openid_message
    - return_to
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1782
    functionName: openid.server.server.MalformedReturnURL.__init__
    functionSourceFile: openid.server.server
    functionUses: 0
    functionsReached:
    - <builtin>.type
    - Exception.__init__
    - openid.server.server.ProtocolError.__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: openid.consumer.discover
    functionSourceFile: openid.consumer.discover
    functionUses: 0
    functionsReached:
    - logging.getLogger
    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 0x7f9f484e7970>
    - <ast.Constant object at 0x7f9f484e7490>
    - <ast.Constant object at 0x7f9f484e7d60>
    - <ast.Constant object at 0x7f9f484e7190>
    - <ast.Constant object at 0x7f9f484e7370>
    - <ast.Constant object at 0x7f9f484e7700>
    - <ast.Constant object at 0x7f9f484e70a0>
    argNames:
    - self
    - claimed_id
    - server_url
    - type_uris
    - local_id
    - canonicalID
    - used_yadis
    - display_identifier
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 69
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.__init__
    functionSourceFile: openid.consumer.discover
    functionUses: 14
    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:
    - cls
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 92
    functionName: openid.consumer.discover.OpenIDServiceEndpoint._from_dict
    functionSourceFile: openid.consumer.discover
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    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: 95
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.__getattr__
    functionSourceFile: openid.consumer.discover
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 100
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.__setattr__
    functionSourceFile: openid.consumer.discover
    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
    - extension_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 105
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.usesExtension
    functionSourceFile: openid.consumer.discover
    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: 108
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.preferredNamespace
    functionSourceFile: openid.consumer.discover
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - type_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 114
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.supportsType
    functionSourceFile: openid.consumer.discover
    functionUses: 0
    functionsReached:
    - openid.consumer.discover.OpenIDServiceEndpoint.isOPIdentifier
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - 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: openid.consumer.discover.OpenIDServiceEndpoint.isOPIdentifier
    functionSourceFile: ''
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 123
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.getDisplayIdentifier
    functionSourceFile: openid.consumer.discover
    functionUses: 0
    functionsReached:
    - urllib.parse.urldefrag
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.urldefrag
    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: 132
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.compatibilityMode
    functionSourceFile: openid.consumer.discover
    functionUses: 0
    functionsReached:
    - openid.consumer.discover.OpenIDServiceEndpoint.preferredNamespace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - yadis_url
    - uri
    - type_uris
    - service_element
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 138
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.parseService
    functionSourceFile: openid.consumer.discover
    functionUses: 0
    functionsReached:
    - service_element.findall
    - openid.consumer.discover.findOPLocalIdentifier
    - openid.yadis.etxrd.nsTag
    - local_id_tags.append
    - openid.consumer.discover.OpenIDServiceEndpoint.isOPIdentifier
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - service_element
    - type_uris
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 281
    functionName: openid.consumer.discover.findOPLocalIdentifier
    functionSourceFile: openid.consumer.discover
    functionUses: 1
    functionsReached:
    - service_element.findall
    - openid.yadis.etxrd.nsTag
    - local_id_tags.append
    linkageType: pythonLinkage
    raised:
    - DiscoveryFailure
    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: 153
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.getLocalID
    functionSourceFile: openid.consumer.discover
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - endpoint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 166
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.fromBasicServiceEndpoint
    functionSourceFile: openid.consumer.discover
    functionUses: 0
    functionsReached:
    - openid_endpoint.parseService
    - <builtin>.super
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    - endpoint.matchTypes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: openid_endpoint.parseService
    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:
    - cls
    - uri
    - html
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 189
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.fromHTML
    functionSourceFile: openid.consumer.discover
    functionUses: 5
    functionsReached:
    - link_find.finditer
    - head_mo.start
    - <builtin>.list
    - removed_re.sub
    - html.decode
    - openid.consumer.html_parse.findFirstHref
    - link_mo.start
    - <builtin>.filter
    - head_mo.end
    - attr_find.finditer
    - head_find.search
    - openid.consumer.html_parse.parseLinkAttrs
    - matches.append
    - ent_replace.sub
    - openid.consumer.html_parse.findLinksRel
    - services.append
    - html_mo.start
    - <builtin>.isinstance
    - attr_mo.group
    - html_find.search
    - html_mo.span
    - <builtin>.super
    - first.get
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    - head_mo.span
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f9f48dfb400>
    argNames:
    - html
    - ignore_errors
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 179
    functionName: openid.consumer.html_parse.parseLinkAttrs
    functionSourceFile: openid.consumer.html_parse
    functionUses: 6
    functionsReached:
    - attr_find.finditer
    - html.decode
    - head_find.search
    - html_mo.start
    - <builtin>.isinstance
    - matches.append
    - link_mo.start
    - attr_mo.group
    - link_find.finditer
    - html_find.search
    - head_mo.start
    - head_mo.end
    - ent_replace.sub
    - html_mo.span
    - removed_re.sub
    - head_mo.span
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - link_attrs_list
    - target_rel
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 270
    functionName: openid.consumer.html_parse.findFirstHref
    functionSourceFile: openid.consumer.html_parse
    functionUses: 6
    functionsReached:
    - first.get
    - openid.consumer.html_parse.findLinksRel
    - <builtin>.filter
    - <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: services.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: 3
    argDefaultValues: []
    argNames:
    - cls
    - uri
    - xrds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 218
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.fromXRDS
    functionSourceFile: openid.consumer.discover
    functionUses: 4
    functionsReached:
    - SafeElementTree.XML
    - text.encode
    - <builtin>.list
    - random.shuffle
    - <builtin>.sorted
    - xrd_tree.getroot
    - endpoints.extend
    - openid.yadis.filters.CompoundFilter.__init__
    - transformers.append
    - openid.yadis.filters.mkCompoundFilter
    - openid.yadis.filters.CompoundFilter.getServiceEndpoints
    - subfilter.getServiceEndpoints
    - <builtin>.hasattr
    - openid.yadis.filters.TransformFilterMaker.__init__
    - openid.yadis.filters.mkFilter
    - ElementTree.ElementTree
    - openid.yadis.etxrd.prioSort
    - openid.yadis.etxrd.iterServices
    - <builtin>.len
    - openid.yadis.etxrd.getYadisXRD
    - <builtin>.isinstance
    - openid.yadis.services.applyFilter
    - xrd_tree.findall
    - xrd.findall
    - filters.append
    - openid.yadis.etxrd.parseXRDS
    - openid.yadis.etxrd.isXRDS
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - discoveryResult
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 230
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.fromDiscoveryResult
    functionSourceFile: openid.consumer.discover
    functionUses: 0
    functionsReached:
    - SafeElementTree.XML
    - text.encode
    - link_find.finditer
    - head_mo.start
    - <builtin>.list
    - removed_re.sub
    - <builtin>.sorted
    - random.shuffle
    - html.decode
    - openid.consumer.html_parse.findFirstHref
    - xrd_tree.getroot
    - endpoints.extend
    - openid.consumer.discover.OpenIDServiceEndpoint.fromXRDS
    - link_mo.start
    - <builtin>.filter
    - openid.yadis.filters.CompoundFilter.__init__
    - openid.yadis.etxrd.parseXRDS
    - head_mo.end
    - transformers.append
    - discoveryResult.isXRDS
    - openid.yadis.filters.mkCompoundFilter
    - openid.yadis.filters.CompoundFilter.getServiceEndpoints
    - subfilter.getServiceEndpoints
    - attr_find.finditer
    - head_find.search
    - <builtin>.hasattr
    - openid.consumer.html_parse.parseLinkAttrs
    - matches.append
    - openid.yadis.filters.TransformFilterMaker.__init__
    - openid.yadis.filters.mkFilter
    - ElementTree.ElementTree
    - ent_replace.sub
    - openid.yadis.etxrd.iterServices
    - openid.yadis.etxrd.prioSort
    - <builtin>.len
    - filters.append
    - openid.consumer.discover.OpenIDServiceEndpoint.fromHTML
    - openid.consumer.html_parse.findLinksRel
    - openid.yadis.etxrd.getYadisXRD
    - services.append
    - html_mo.start
    - openid.yadis.services.applyFilter
    - <builtin>.isinstance
    - attr_mo.group
    - xrd_tree.findall
    - html_find.search
    - html_mo.span
    - xrd.findall
    - head_mo.span
    - <builtin>.super
    - first.get
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    - openid.yadis.etxrd.isXRDS
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: discoveryResult.isXRDS
    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:
    - cls
    - op_endpoint_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 248
    functionName: openid.consumer.discover.OpenIDServiceEndpoint.fromOPEndpointURL
    functionSourceFile: openid.consumer.discover
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - openid.consumer.discover.OpenIDServiceEndpoint.__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: openid.consumer.discover.OpenIDServiceEndpoint.__str__
    functionSourceFile: openid.consumer.discover
    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: local_id_tags.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: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 331
    functionName: openid.consumer.discover.normalizeURL
    functionSourceFile: openid.consumer.discover
    functionUses: 2
    functionsReached:
    - urllib.parse.urldefrag
    linkageType: pythonLinkage
    raised:
    - DiscoveryFailure
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - xri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 342
    functionName: openid.consumer.discover.normalizeXRI
    functionSourceFile: openid.consumer.discover
    functionUses: 2
    functionsReached:
    - xri.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - service_list
    - preferred_types
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 349
    functionName: openid.consumer.discover.arrangeByType
    functionSourceFile: openid.consumer.discover
    functionUses: 5
    functionsReached:
    - prio_services.sort
    - openid.consumer.discover.arrangeByType.bestMatchingService
    - <builtin>.range
    - <builtin>.zip
    - openid.consumer.discover.arrangeByType.enumerate
    - <builtin>.list
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - elts
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 353
    functionName: openid.consumer.discover.arrangeByType.enumerate
    functionSourceFile: openid.consumer.discover
    functionUses: 7
    functionsReached:
    - <builtin>.range
    - <builtin>.len
    - <builtin>.list
    - <builtin>.zip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - service
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 360
    functionName: openid.consumer.discover.arrangeByType.bestMatchingService
    functionSourceFile: openid.consumer.discover
    functionUses: 6
    functionsReached:
    - <builtin>.range
    - <builtin>.zip
    - openid.consumer.discover.arrangeByType.enumerate
    - <builtin>.list
    - <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: prio_services.sort
    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:
    - openid_services
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 391
    functionName: openid.consumer.discover.getOPOrUserServices
    functionSourceFile: openid.consumer.discover
    functionUses: 4
    functionsReached:
    - prio_services.sort
    - openid.consumer.discover.arrangeByType.bestMatchingService
    - <builtin>.range
    - <builtin>.zip
    - openid.consumer.discover.arrangeByType.enumerate
    - <builtin>.list
    - <builtin>.len
    - openid.consumer.discover.arrangeByType
    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: 6
    functionLinenumber: 409
    functionName: openid.consumer.discover.discoverYadis
    functionSourceFile: openid.consumer.discover
    functionUses: 2
    functionsReached:
    - removed_re.sub
    - openid.yadis.parsehtml.findHTMLMeta
    - xrd_tree.getroot
    - endpoints.extend
    - transformers.append
    - HTTPFetcher.__init__
    - openid.yadis.filters.TransformFilterMaker.__init__
    - openid.yadis.discover.DiscoveryResult.usedYadisLocation
    - <builtin>.len
    - fetcher.fetch
    - openid.consumer.html_parse.findLinksRel
    - openid.fetchers.CurlHTTPFetcher.__init__
    - html_mo.span
    - <builtin>.super
    - first.get
    - openid.yadis.etxrd.isXRDS
    - Exception.__init__
    - <builtin>.list
    - <builtin>.sorted
    - prio_services.sort
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    - link_mo.start
    - openid.yadis.filters.CompoundFilter.__init__
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - resp.body.decode
    - head_find.search
    - <builtin>.hasattr
    - openid.yadis.discover.discover
    - openid.yadis.discover.DiscoveryResult.isXRDS
    - openid.yadis.parsehtml.YadisHTMLParser.__init__
    - openid.yadis.filters.mkFilter
    - ElementTree.ElementTree
    - ent_replace.sub
    - openid.yadis.etxrd.prioSort
    - openid.consumer.discover.arrangeByType
    - services.append
    - <builtin>.zip
    - <builtin>.isinstance
    - attr_mo.group
    - html_find.search
    - content_type.rsplit
    - openid.yadis.etxrd.parseXRDS
    - SafeElementTree.XML
    - head_mo.start
    - openid.consumer.discover.arrangeByType.enumerate
    - openid.yadis.discover.whereIsYadis
    - resp.headers.get
    - openid.yadis.discover.DiscoveryResult.__init__
    - openid.fetchers.fetch
    - html.decode
    - openid.consumer.discover.discoverNoYadis
    - openid.fetchers.setDefaultFetcher
    - openid.yadis.filters.CompoundFilter.getServiceEndpoints
    - openid.consumer.discover.getOPOrUserServices
    - subfilter.getServiceEndpoints
    - openid.fetchers.getDefaultFetcher
    - <builtin>.range
    - matches.append
    - openid.fetchers.createHTTPFetcher
    - openid.yadis.etxrd.getYadisXRD
    - xrd.findall
    - chunks.append
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    - io.StringIO
    - head_mo.span
    - YADIS_HEADER_NAME.lower
    - text.encode
    - openid.consumer.discover.arrangeByType.bestMatchingService
    - content_type.split
    - link_find.finditer
    - random.shuffle
    - openid.consumer.html_parse.findFirstHref
    - openid.consumer.discover.OpenIDServiceEndpoint.fromXRDS
    - <builtin>.filter
    - head_mo.end
    - openid.yadis.filters.mkCompoundFilter
    - attr_find.finditer
    - openid.yadis.discover.DiscoveryFailure.__init__
    - openid.consumer.html_parse.parseLinkAttrs
    - openid.yadis.etxrd.iterServices
    - openid.consumer.discover.OpenIDServiceEndpoint.fromHTML
    - html_mo.start
    - openid.yadis.services.applyFilter
    - xrd_tree.findall
    - io.StringIO.read
    - openid.yadis.parsehtml.YadisHTMLParser.feed
    - filters.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - uri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 479
    functionName: openid.consumer.discover.discoverNoYadis
    functionSourceFile: openid.consumer.discover
    functionUses: 3
    functionsReached:
    - link_find.finditer
    - head_mo.start
    - <builtin>.list
    - removed_re.sub
    - openid.fetchers.fetch
    - html.decode
    - openid.consumer.html_parse.findFirstHref
    - openid.fetchers.setDefaultFetcher
    - link_mo.start
    - <builtin>.filter
    - head_mo.end
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - attr_find.finditer
    - openid.fetchers.getDefaultFetcher
    - HTTPFetcher.__init__
    - head_find.search
    - openid.consumer.html_parse.parseLinkAttrs
    - matches.append
    - ent_replace.sub
    - openid.consumer.discover.OpenIDServiceEndpoint.fromHTML
    - fetcher.fetch
    - openid.fetchers.createHTTPFetcher
    - openid.consumer.html_parse.findLinksRel
    - services.append
    - html_mo.start
    - <builtin>.isinstance
    - attr_mo.group
    - openid.fetchers.CurlHTTPFetcher.__init__
    - html_find.search
    - html_mo.span
    - <builtin>.super
    - first.get
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    - head_mo.span
    linkageType: pythonLinkage
    raised:
    - DiscoveryFailure
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - iname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 451
    functionName: openid.consumer.discover.discoverXRI
    functionSourceFile: openid.consumer.discover
    functionUses: 1
    functionsReached:
    - canonicalID.rindex
    - SafeElementTree.XML
    - args.sort
    - openid.yadis.xri.escapeForIRI
    - text.encode
    - openid.consumer.discover.arrangeByType.bestMatchingService
    - openid.yadis.xrires.ProxyResolver.query
    - openid.consumer.discover.arrangeByType.enumerate
    - <builtin>.list
    - parent.lower
    - logger.exception
    - openid.fetchers.fetch
    - <builtin>.sorted
    - random.shuffle
    - prio_services.sort
    - functools.reduce
    - canonicalID.lower
    - authority.split
    - xrd_tree.getroot
    - endpoints.extend
    - openid.consumer.discover.normalizeXRI
    - openid.fetchers.setDefaultFetcher
    - openid.yadis.filters.CompoundFilter.__init__
    - urllib.parse.urlencode
    - url.rstrip
    - s.split
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - authority.index
    - transformers.append
    - xri.replace
    - openid.yadis.filters.mkCompoundFilter
    - openid.yadis.filters.CompoundFilter.getServiceEndpoints
    - openid.consumer.discover.getOPOrUserServices
    - subfilter.getServiceEndpoints
    - openid.fetchers.getDefaultFetcher
    - openid.yadis.xri.toIRINormal
    - openid.yadis.etxrd.getCanonicalID
    - _xref_re.sub
    - HTTPFetcher.__init__
    - iri.encode
    - <builtin>.str
    - xrd_list.reverse
    - services.extend
    - <builtin>.range
    - <builtin>.hasattr
    - openid.yadis.filters.TransformFilterMaker.__init__
    - openid.yadis.filters.mkFilter
    - ElementTree.ElementTree
    - openid.yadis.xri.rootAuthority
    - openid.yadis.etxrd.iterServices
    - openid.yadis.etxrd.prioSort
    - <builtin>.len
    - xri.startswith
    - openid.yadis.xrires._appendArgs
    - openid.consumer.discover.arrangeByType
    - openid.yadis.xri.providerIsAuthoritative
    - openid.fetchers.createHTTPFetcher
    - fetcher.fetch
    - openid.yadis.xri.XRI
    - childID.rsplit
    - xri.split
    - filters.append
    - openid.yadis.etxrd.getYadisXRD
    - openid.yadis.xri.toURINormal
    - <builtin>.zip
    - openid.yadis.xri.iriToURI
    - <builtin>.isinstance
    - openid.yadis.xrires.ProxyResolver.queryURL
    - xrd_tree.findall
    - openid.fetchers.CurlHTTPFetcher.__init__
    - xrd.findtext
    - xrd.findall
    - args.items
    - openid.yadis.xrires.ProxyResolver.__init__
    - openid.yadis.etxrd.parseXRDS
    - openid.yadis.etxrd.isXRDS
    linkageType: pythonLinkage
    raised:
    - XRDSError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - uri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 493
    functionName: openid.consumer.discover.discoverURI
    functionSourceFile: openid.consumer.discover
    functionUses: 1
    functionsReached:
    - removed_re.sub
    - openid.yadis.parsehtml.findHTMLMeta
    - openid.consumer.discover.discoverYadis
    - xrd_tree.getroot
    - endpoints.extend
    - urllib.parse.urldefrag
    - transformers.append
    - HTTPFetcher.__init__
    - openid.yadis.filters.TransformFilterMaker.__init__
    - openid.yadis.discover.DiscoveryResult.usedYadisLocation
    - <builtin>.len
    - fetcher.fetch
    - openid.consumer.html_parse.findLinksRel
    - openid.fetchers.CurlHTTPFetcher.__init__
    - html_mo.span
    - <builtin>.super
    - first.get
    - openid.yadis.etxrd.isXRDS
    - Exception.__init__
    - <builtin>.list
    - <builtin>.sorted
    - prio_services.sort
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    - link_mo.start
    - openid.yadis.filters.CompoundFilter.__init__
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - resp.body.decode
    - head_find.search
    - <builtin>.hasattr
    - openid.consumer.discover.normalizeURL
    - openid.yadis.discover.discover
    - openid.yadis.discover.DiscoveryResult.isXRDS
    - openid.yadis.parsehtml.YadisHTMLParser.__init__
    - openid.yadis.filters.mkFilter
    - ElementTree.ElementTree
    - ent_replace.sub
    - openid.yadis.etxrd.prioSort
    - openid.consumer.discover.arrangeByType
    - services.append
    - <builtin>.zip
    - <builtin>.isinstance
    - attr_mo.group
    - html_find.search
    - content_type.rsplit
    - openid.yadis.etxrd.parseXRDS
    - SafeElementTree.XML
    - head_mo.start
    - openid.consumer.discover.arrangeByType.enumerate
    - openid.yadis.discover.whereIsYadis
    - resp.headers.get
    - openid.yadis.discover.DiscoveryResult.__init__
    - openid.fetchers.fetch
    - html.decode
    - openid.consumer.discover.discoverNoYadis
    - openid.fetchers.setDefaultFetcher
    - openid.yadis.filters.CompoundFilter.getServiceEndpoints
    - openid.consumer.discover.getOPOrUserServices
    - subfilter.getServiceEndpoints
    - openid.fetchers.getDefaultFetcher
    - <builtin>.range
    - matches.append
    - openid.fetchers.createHTTPFetcher
    - openid.yadis.etxrd.getYadisXRD
    - urllib.parse.urlparse
    - xrd.findall
    - chunks.append
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    - io.StringIO
    - head_mo.span
    - YADIS_HEADER_NAME.lower
    - text.encode
    - openid.consumer.discover.arrangeByType.bestMatchingService
    - content_type.split
    - link_find.finditer
    - random.shuffle
    - openid.consumer.html_parse.findFirstHref
    - openid.consumer.discover.OpenIDServiceEndpoint.fromXRDS
    - <builtin>.filter
    - head_mo.end
    - openid.yadis.filters.mkCompoundFilter
    - attr_find.finditer
    - openid.yadis.discover.DiscoveryFailure.__init__
    - openid.consumer.html_parse.parseLinkAttrs
    - openid.yadis.etxrd.iterServices
    - openid.consumer.discover.OpenIDServiceEndpoint.fromHTML
    - html_mo.start
    - openid.yadis.services.applyFilter
    - xrd_tree.findall
    - io.StringIO.read
    - openid.yadis.parsehtml.YadisHTMLParser.feed
    - filters.append
    linkageType: pythonLinkage
    raised:
    - DiscoveryFailure
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - identifier
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 507
    functionName: openid.consumer.discover.discover
    functionSourceFile: openid.consumer.discover
    functionUses: 0
    functionsReached:
    - identifier.startswith
    - openid.yadis.xri.escapeForIRI
    - openid.yadis.xrires.ProxyResolver.query
    - removed_re.sub
    - openid.yadis.parsehtml.findHTMLMeta
    - openid.consumer.discover.discoverYadis
    - xrd_tree.getroot
    - endpoints.extend
    - urllib.parse.urldefrag
    - authority.index
    - transformers.append
    - xri.replace
    - HTTPFetcher.__init__
    - <builtin>.str
    - openid.yadis.filters.TransformFilterMaker.__init__
    - openid.yadis.discover.DiscoveryResult.usedYadisLocation
    - <builtin>.len
    - args.sort
    - fetcher.fetch
    - openid.consumer.html_parse.findLinksRel
    - xri.split
    - openid.fetchers.CurlHTTPFetcher.__init__
    - html_mo.span
    - <builtin>.super
    - first.get
    - openid.yadis.etxrd.isXRDS
    - Exception.__init__
    - <builtin>.list
    - logger.exception
    - parent.lower
    - <builtin>.sorted
    - prio_services.sort
    - functools.reduce
    - authority.split
    - openid.yadis.parsehtml.YadisHTMLParser._terminate
    - openid.consumer.discover.normalizeXRI
    - link_mo.start
    - openid.yadis.filters.CompoundFilter.__init__
    - url.rstrip
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - resp.body.decode
    - _xref_re.sub
    - openid.consumer.discover.discoverURI
    - head_find.search
    - openid.consumer.discover.normalizeURL
    - openid.yadis.discover.discover
    - openid.yadis.discover.DiscoveryResult.isXRDS
    - services.extend
    - openid.yadis.parsehtml.YadisHTMLParser.__init__
    - <builtin>.hasattr
    - openid.yadis.filters.mkFilter
    - ElementTree.ElementTree
    - openid.yadis.xri.rootAuthority
    - openid.yadis.etxrd.prioSort
    - ent_replace.sub
    - openid.consumer.discover.arrangeByType
    - openid.consumer.discover.discoverXRI
    - childID.rsplit
    - services.append
    - openid.yadis.xri.toURINormal
    - <builtin>.zip
    - <builtin>.isinstance
    - attr_mo.group
    - html_find.search
    - content_type.rsplit
    - openid.yadis.etxrd.parseXRDS
    - openid.yadis.xri.identifierScheme
    - SafeElementTree.XML
    - openid.consumer.discover.arrangeByType.enumerate
    - head_mo.start
    - openid.yadis.discover.whereIsYadis
    - resp.headers.get
    - openid.yadis.discover.DiscoveryResult.__init__
    - openid.fetchers.fetch
    - html.decode
    - canonicalID.lower
    - openid.consumer.discover.discoverNoYadis
    - openid.fetchers.setDefaultFetcher
    - openid.yadis.filters.CompoundFilter.getServiceEndpoints
    - openid.consumer.discover.getOPOrUserServices
    - subfilter.getServiceEndpoints
    - openid.fetchers.getDefaultFetcher
    - openid.yadis.xri.toIRINormal
    - openid.yadis.etxrd.getCanonicalID
    - xrd_list.reverse
    - <builtin>.range
    - matches.append
    - openid.yadis.xri.providerIsAuthoritative
    - openid.fetchers.createHTTPFetcher
    - openid.yadis.etxrd.getYadisXRD
    - openid.yadis.xri.iriToURI
    - openid.yadis.xrires.ProxyResolver.queryURL
    - urllib.parse.urlparse
    - xrd.findall
    - args.items
    - openid.yadis.xrires.ProxyResolver.__init__
    - chunks.append
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    - head_mo.span
    - io.StringIO
    - canonicalID.rindex
    - YADIS_HEADER_NAME.lower
    - text.encode
    - openid.consumer.discover.arrangeByType.bestMatchingService
    - content_type.split
    - link_find.finditer
    - random.shuffle
    - openid.consumer.html_parse.findFirstHref
    - openid.consumer.discover.OpenIDServiceEndpoint.fromXRDS
    - <builtin>.filter
    - urllib.parse.urlencode
    - head_mo.end
    - s.split
    - openid.yadis.filters.mkCompoundFilter
    - attr_find.finditer
    - openid.yadis.discover.DiscoveryFailure.__init__
    - iri.encode
    - openid.consumer.html_parse.parseLinkAttrs
    - openid.yadis.xrires._appendArgs
    - openid.yadis.etxrd.iterServices
    - xri.startswith
    - openid.consumer.discover.OpenIDServiceEndpoint.fromHTML
    - openid.yadis.xri.XRI
    - html_mo.start
    - openid.yadis.services.applyFilter
    - xrd_tree.findall
    - io.StringIO.read
    - xrd.findtext
    - openid.yadis.parsehtml.YadisHTMLParser.feed
    - filters.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: 2
    functionLinenumber: -1
    functionName: openid.consumer.html_parse
    functionSourceFile: openid.consumer.html_parse
    functionUses: 0
    functionsReached:
    - <builtin>.locals
    - openid.consumer.html_parse.tagMatcher
    - replacements.keys
    - re.compile
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - tag_name
    - close_tags
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 127
    functionName: openid.consumer.html_parse.tagMatcher
    functionSourceFile: openid.consumer.html_parse
    functionUses: 1
    functionsReached:
    - <builtin>.locals
    - 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: <builtin>.locals
    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: replacements.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: 1
    argDefaultValues: []
    argNames:
    - mo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 174
    functionName: openid.consumer.html_parse.replaceEnt
    functionSourceFile: openid.consumer.html_parse
    functionUses: 0
    functionsReached:
    - mo.group
    - replacements.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: replacements.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: html.decode
    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: removed_re.sub
    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: html_find.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: html_mo.start
    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: html_mo.span
    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: head_find.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: head_mo.start
    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: head_mo.span
    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: head_mo.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: link_find.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: link_mo.start
    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: attr_find.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: attr_mo.group
    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: ent_replace.sub
    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: matches.append
    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:
    - rel_attr
    - target_rel
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 243
    functionName: openid.consumer.html_parse.relMatches
    functionSourceFile: openid.consumer.html_parse
    functionUses: 2
    functionsReached:
    - rel.lower
    - rel_attr.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: rel_attr.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: rel.lower
    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:
    - link_attrs
    - target_rel
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 255
    functionName: openid.consumer.html_parse.linkHasRel
    functionSourceFile: openid.consumer.html_parse
    functionUses: 1
    functionsReached:
    - rel.lower
    - rel_attr.strip
    - link_attrs.get
    - openid.consumer.html_parse.relMatches
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_attrs.get
    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:
    - link_attrs_list
    - target_rel
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 262
    functionName: openid.consumer.html_parse.findLinksRel
    functionSourceFile: openid.consumer.html_parse
    functionUses: 7
    functionsReached:
    - <builtin>.filter
    - <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: 3
    functionLinenumber: -1
    functionName: openid.consumer.html_parse.findLinksRel.<lambda1>
    functionSourceFile: openid.consumer.html_parse
    functionUses: 0
    functionsReached:
    - rel.lower
    - openid.consumer.html_parse.relMatches
    - openid.consumer.html_parse.linkHasRel
    - rel_attr.strip
    - link_attrs.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: first.get
    functionSourceFile: <builtin>
    functionUses: 7
    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: openid.consumer
    functionSourceFile: openid.consumer
    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: openid.consumer.consumer
    functionSourceFile: openid.consumer.consumer
    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:
    - request_message
    - server_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 224
    functionName: openid.consumer.consumer.makeKVPost
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.kvform.kvToSeq
    - openid.message.NamespaceMap.addAlias
    - <builtin>.type
    - openid.fetchers.fetch
    - openid.message.Message.__init__
    - line.strip
    - openid.message.Message.fromOpenIDArgs
    - openid.fetchers.setDefaultFetcher
    - k.strip
    - <builtin>.dict
    - pairs.append
    - openid.consumer.consumer._httpResponseToMessage
    - openid.fetchers.ExceptionWrappingFetcher.__init__
    - line.split
    - logger.warning
    - openid.message.Message.setOpenIDNamespace
    - data.split
    - v.strip
    - openid.fetchers.getDefaultFetcher
    - HTTPFetcher.__init__
    - <builtin>.str
    - openid.message.Message.fromKVForm
    - openid.message.NamespaceMap.__init__
    - openid.kvform.kvToDict
    - <builtin>.len
    - openid.fetchers.createHTTPFetcher
    - openid.kvform.kvToSeq.err
    - fetcher.fetch
    - <builtin>.repr
    - <builtin>.isinstance
    - data.decode
    - openid.fetchers.CurlHTTPFetcher.__init__
    - request_message.toURLEncoded
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_message.toURLEncoded
    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:
    - response
    - server_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 240
    functionName: openid.consumer.consumer._httpResponseToMessage
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - openid.kvform.kvToSeq
    - openid.message.NamespaceMap.addAlias
    - <builtin>.type
    - openid.message.Message.__init__
    - line.strip
    - openid.message.Message.fromOpenIDArgs
    - k.strip
    - <builtin>.dict
    - pairs.append
    - line.split
    - logger.warning
    - openid.message.Message.setOpenIDNamespace
    - data.split
    - v.strip
    - <builtin>.str
    - openid.message.Message.fromKVForm
    - openid.message.NamespaceMap.__init__
    - openid.kvform.kvToDict
    - <builtin>.len
    - openid.kvform.kvToSeq.err
    - <builtin>.repr
    - <builtin>.isinstance
    - data.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: -1
    functionName: openid.consumer.consumer.Consumer
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    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 0x7f9f484e2730>
    argNames:
    - self
    - session
    - store
    - consumer_class
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 289
    functionName: openid.consumer.consumer.Consumer.__init__
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.association.SessionNegotiator.copy
    - openid.consumer.consumer.GenericConsumer.__init__
    - <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
    - store
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 600
    functionName: openid.consumer.consumer.GenericConsumer.__init__
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - openid.association.SessionNegotiator.copy
    - <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 0x7f9f484e2970>
    argNames:
    - self
    - user_url
    - anonymous
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 313
    functionName: openid.consumer.consumer.Consumer.begin
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.yadis.manager.YadisServiceManager.next_service
    - openid.yadis.manager.YadisServiceManager._from_dict
    - openid.yadis.manager.Discovery.__init__
    - openid.consumer.consumer.Consumer.beginWithoutDiscovery
    - auth_req.setAnonymous
    - openid.yadis.manager.Discovery.getManager
    - manager.forURL
    - openid.yadis.manager.Discovery.getNextService
    - openid.yadis.manager.Discovery.createManager
    - openid.yadis.manager.Discovery.getSessionKey
    - <builtin>.type
    - <builtin>.list
    - openid.yadis.manager.Discovery.destroyManager
    - openid.yadis.manager.YadisServiceManager.store
    - openid.yadis.manager.YadisServiceManager.__init__
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - DiscoveryFailure
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f9f48a075e0>
    argNames:
    - self
    - service
    - anonymous
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 362
    functionName: openid.consumer.consumer.Consumer.beginWithoutDiscovery
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - auth_req.setAnonymous
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/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_req.setAnonymous
    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
    - query
    - current_url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 393
    functionName: openid.consumer.consumer.Consumer.complete
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - key.split
    - manager.forURL
    - openid.yadis.manager.Discovery.cleanup
    - openid.yadis.manager.Discovery.getManager
    - openid.message.NamespaceMap.addAlias
    - <builtin>.type
    - <builtin>.list
    - openid.message.Message.__init__
    - openid.yadis.manager.YadisServiceManager._from_dict
    - manager.current
    - openid.yadis.manager.Discovery.__init__
    - openid.yadis.manager.Discovery.getSessionKey
    - openid.message.Message.setOpenIDNamespace
    - openid.message.Message.fromPostArgs
    - <builtin>.str
    - openid.message.NamespaceMap.__init__
    - openid.yadis.manager.Discovery.destroyManager
    - openid.yadis.manager.YadisServiceManager.__init__
    - <builtin>.repr
    - <builtin>.isinstance
    - args.items
    - <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
    - association_preferences
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 439
    functionName: openid.consumer.consumer.Consumer.setAssociationPreference
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.association.checkSessionType
    - openid.association.SessionNegotiator.setAllowedTypes
    - openid.association.getSessionTypes
    - assoc_to_session.get
    - openid.association.SessionNegotiator.__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: openid.consumer.consumer.DiffieHellmanSHA1ConsumerSession
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    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 0x7f9f4853bee0>
    argNames:
    - self
    - dh
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 468
    functionName: openid.consumer.consumer.DiffieHellmanSHA1ConsumerSession.__init__
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.dh.DiffieHellman._setPrivate
    - <builtin>.pow
    - openid.dh.DiffieHellman.fromDefaults
    - <builtin>.int
    - openid.dh.DiffieHellman.__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: 3
    functionLinenumber: 474
    functionName: openid.consumer.consumer.DiffieHellmanSHA1ConsumerSession.getRequest
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - binascii.b2a_base64
    - <builtin>.bytearray
    - Crypto.Util.number.long_to_bytes
    - Crypto.Util.number.long_to_bytes.encode
    - <builtin>.isinstance
    - openid.cryptutil.longToBinary
    - <builtin>.bytes
    - args.update
    - b.reverse
    - pickle.encode_long
    - openid.cryptutil.longToBase64
    - openid.oidutil.toBase64
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.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:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 487
    functionName: openid.consumer.consumer.DiffieHellmanSHA1ConsumerSession.extractSecret
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - Crypto.Util.number.bytes_to_long
    - binascii.a2b_base64
    - <builtin>.bytearray
    - openid.cryptutil.base64ToLong
    - pickle.decode_long
    - openid.oidutil.fromBase64
    - <builtin>.isinstance
    - <builtin>.bytes
    - Crypto.Util.number.bytes_to_long.encode
    - b.reverse
    - response.getArg
    - s.encode
    - openid.cryptutil.binaryToLong
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.getArg
    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: openid.consumer.consumer.DiffieHellmanSHA256ConsumerSession
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 507
    functionName: openid.consumer.consumer.PlainTextConsumerSession.getRequest
    functionSourceFile: openid.consumer.consumer
    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
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 510
    functionName: openid.consumer.consumer.PlainTextConsumerSession.extractSecret
    functionSourceFile: openid.consumer.consumer
    functionUses: 5
    functionsReached:
    - binascii.a2b_base64
    - openid.oidutil.fromBase64
    - <builtin>.isinstance
    - response.getArg
    - Crypto.Util.number.bytes_to_long.encode
    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 0x7f9f49035160>
    argNames:
    - self
    - user_setup_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 519
    functionName: openid.consumer.consumer.SetupNeededError.__init__
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - Exception.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - expected
    - endpoint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 533
    functionName: openid.consumer.consumer.TypeURIMismatch.__init__
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - ProtocolError.__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: ProtocolError.__init__
    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: 538
    functionName: openid.consumer.consumer.TypeURIMismatch.__str__
    functionSourceFile: openid.consumer.consumer
    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
    - error_text
    - error_code
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 549
    functionName: openid.consumer.consumer.ServerError.__init__
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - Exception.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 555
    functionName: openid.consumer.consumer.ServerError.fromMessage
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - Exception.__init__
    - openid.consumer.consumer.ServerError.__init__
    - message.getArg
    linkageType: 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: openid.consumer.consumer.ServerError
    functionSourceFile: openid.consumer.consumer
    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: openid.consumer.consumer.GenericConsumer
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - service_endpoint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 604
    functionName: openid.consumer.consumer.GenericConsumer.begin
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.message.NamespaceMap.addAlias
    - openid.consumer.consumer.GenericConsumer._getOpenID1SessionType
    - <builtin>.type
    - logger.exception
    - openid.association.Association.fromExpiresIn
    - openid.consumer.consumer.GenericConsumer._createAssociateRequest
    - openid.message.Message.__init__
    - openid.consumer.consumer.GenericConsumer._extractSupportedAssociationType
    - server_error.message.getArg
    - openid.message.Message.getOpenIDNamespace
    - openid.consumer.consumer.GenericConsumer._negotiateAssociation
    - time.strftime
    - openid.oidutil.fromBase64
    - openid.store.nonce.mkNonce
    - <builtin>.int
    - openid.consumer.consumer.PlainTextConsumerSession.extractSecret
    - openid.message.Message.fromOpenIDArgs
    - endpoint.preferredNamespace
    - logger.warning
    - openid.message.Message.setOpenIDNamespace
    - openid.consumer.consumer.GenericConsumer._getAssociation
    - openid.cryptutil.randomString
    - time.gmtime
    - logger.error
    - endpoint.compatibilityMode
    - <builtin>.str
    - <builtin>.range
    - assoc_response.isOpenID1
    - response.getArg
    - Crypto.Util.number.bytes_to_long.encode
    - openid.consumer.consumer.GenericConsumer._extractAssociation
    - openid.message.NamespaceMap.__init__
    - openid.consumer.consumer.AuthRequest.__init__
    - <builtin>.len
    - openid.message.Message.isOpenID1
    - <builtin>.repr
    - binascii.a2b_base64
    - server_error.message.isOpenID1
    - random.randrange
    - os.urandom
    - assoc_response.getArg
    - <builtin>.isinstance
    - args.update
    - secret.encode
    - openid.consumer.consumer.GenericConsumer._requestAssociation
    - openid.association.Association.__init__
    - time.time
    - assoc_session.getRequest
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - endpoint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1169
    functionName: openid.consumer.consumer.GenericConsumer._getAssociation
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - openid.message.NamespaceMap.addAlias
    - openid.consumer.consumer.GenericConsumer._getOpenID1SessionType
    - <builtin>.type
    - logger.exception
    - openid.association.Association.fromExpiresIn
    - openid.consumer.consumer.GenericConsumer._createAssociateRequest
    - openid.message.Message.__init__
    - openid.consumer.consumer.GenericConsumer._extractSupportedAssociationType
    - server_error.message.getArg
    - openid.consumer.consumer.GenericConsumer._negotiateAssociation
    - openid.message.Message.fromOpenIDArgs
    - openid.oidutil.fromBase64
    - <builtin>.int
    - openid.consumer.consumer.PlainTextConsumerSession.extractSecret
    - logger.warning
    - openid.message.Message.setOpenIDNamespace
    - logger.error
    - endpoint.compatibilityMode
    - <builtin>.str
    - assoc_response.isOpenID1
    - response.getArg
    - Crypto.Util.number.bytes_to_long.encode
    - openid.consumer.consumer.GenericConsumer._extractAssociation
    - openid.message.NamespaceMap.__init__
    - <builtin>.repr
    - binascii.a2b_base64
    - server_error.message.isOpenID1
    - assoc_response.getArg
    - <builtin>.isinstance
    - args.update
    - secret.encode
    - openid.consumer.consumer.GenericConsumer._requestAssociation
    - openid.association.Association.__init__
    - time.time
    - assoc_session.getRequest
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - endpoint
    - assoc
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1474
    functionName: openid.consumer.consumer.AuthRequest.__init__
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - <builtin>.repr
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - endpoint.preferredNamespace
    - <builtin>.type
    - openid.message.NamespaceMap.__init__
    - openid.message.Message.setOpenIDNamespace
    - openid.message.Message.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - message
    - endpoint
    - return_to
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 622
    functionName: openid.consumer.consumer.GenericConsumer.complete
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - message.getArg
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - message
    - endpoint
    - _
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 633
    functionName: openid.consumer.consumer.GenericConsumer._complete_cancel
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.consumer.consumer.CancelResponse.__init__
    - openid.consumer.consumer.Response.setEndpoint
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - endpoint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1903
    functionName: openid.consumer.consumer.CancelResponse.__init__
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - openid.consumer.consumer.Response.setEndpoint
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - message
    - endpoint
    - _
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 636
    functionName: openid.consumer.consumer.GenericConsumer._complete_error
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.consumer.consumer.FailureResponse.__init__
    - openid.consumer.consumer.Response.setEndpoint
    - message.getArg
    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 0x7f9f46f9b5b0>
    - <ast.Constant object at 0x7f9f46f9b5e0>
    - <ast.Constant object at 0x7f9f46f9b610>
    argNames:
    - self
    - endpoint
    - message
    - contact
    - reference
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1879
    functionName: openid.consumer.consumer.FailureResponse.__init__
    functionSourceFile: openid.consumer.consumer
    functionUses: 4
    functionsReached:
    - openid.consumer.consumer.Response.setEndpoint
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - message
    - endpoint
    - _
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 644
    functionName: openid.consumer.consumer.GenericConsumer._complete_setup_needed
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.consumer.consumer.GenericConsumer._completeInvalid
    - openid.consumer.consumer.SetupNeededResponse.__init__
    - openid.consumer.consumer.Response.setEndpoint
    - message.getArg
    - message.isOpenID2
    - openid.consumer.consumer.FailureResponse.__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: message.isOpenID2
    functionSourceFile: <builtin>
    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
    - message
    - endpoint
    - _
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 662
    functionName: openid.consumer.consumer.GenericConsumer._completeInvalid
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - openid.consumer.consumer.FailureResponse.__init__
    - openid.consumer.consumer.Response.setEndpoint
    - message.getArg
    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 0x7f9f46fa1310>
    argNames:
    - self
    - endpoint
    - setup_url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1925
    functionName: openid.consumer.consumer.SetupNeededResponse.__init__
    functionSourceFile: openid.consumer.consumer
    functionUses: 2
    functionsReached:
    - openid.consumer.consumer.Response.setEndpoint
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - message
    - endpoint
    - return_to
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 651
    functionName: openid.consumer.consumer.GenericConsumer._complete_id_res
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - key.split
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveredServices
    - message.getAliasedArg
    - signed_list_str.split
    - openid.consumer.consumer.GenericConsumer._checkAuth
    - openid.message.NamespaceMap.addAlias
    - time.strptime
    - <builtin>.type
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveryResults
    - openid.consumer.consumer.GenericConsumer._processCheckAuthResponse
    - logger.exception
    - failure_messages.append
    - resp_msg.getArg
    - message.getOpenIDNamespace
    - bare_args.items
    - openid.message.Message.__init__
    - endpoint.usesExtension
    - check_auth_message.setArg
    - urllib.parse.urldefrag
    - openid.consumer.discover.OpenIDServiceEndpoint.preferredNamespace
    - message.toPostArgs
    - resp_msg.getOpenIDNamespace
    - openid.consumer.consumer.SuccessResponse.__init__
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveryResultsOpenID1
    - openid.message.Message.setOpenIDNamespace
    - openid.message.Message.fromPostArgs
    - openid.consumer.consumer.GenericConsumer._discoverAndVerify
    - openid.consumer.consumer.GenericConsumer._verifyDiscoverySingle
    - logger.error
    - args.items
    - openid.consumer.consumer.GenericConsumer._checkSetupNeeded
    - assoc.checkMessageSignature
    - openid.consumer.consumer.Response.setEndpoint
    - openid.consumer.consumer.GenericConsumer._doIdRes
    - message.isOpenID1
    - message.hasKey
    - openid.consumer.consumer.GenericConsumer._idResGetNonceOpenID1
    - <builtin>.str
    - <builtin>.range
    - openid.consumer.discover.OpenIDServiceEndpoint._from_dict
    - openid.consumer.discover.OpenIDServiceEndpoint.fromOPEndpointURL
    - response.getArg
    - message.getArg
    - openid.consumer.consumer.GenericConsumer._idResCheckForFields
    - openid.store.nonce.split
    - openid.consumer.consumer.GenericConsumer._checkReturnTo
    - openid.consumer.consumer.GenericConsumer._createCheckAuthRequest
    - message.getArgs
    - openid.message.NamespaceMap.__init__
    - signed.split
    - openid.consumer.consumer.GenericConsumer._idResCheckSignature
    - openid.consumer.consumer.FailureResponse.__init__
    - <builtin>.super
    - openid.consumer.consumer.GenericConsumer._verifyReturnToArgs
    - logger.info
    - openid.consumer.consumer.SetupNeededResponse.__init__
    - openid.consumer.consumer.GenericConsumer._idResCheckNonce
    - <builtin>.repr
    - message.copy
    - <builtin>.isinstance
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveryResultsOpenID2
    - endpoint.getLocalID
    - openid.consumer.discover.OpenIDServiceEndpoint.getLocalID
    - urllib.parse.urlparse
    - calendar.timegm
    - endpoint.isOPIdentifier
    - urllib.parse.parse_qsl
    - copy.copy
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 697
    functionName: openid.consumer.consumer.GenericConsumer._checkSetupNeeded
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - message.isOpenID1
    - message.getArg
    linkageType: pythonLinkage
    raised:
    - SetupNeededError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - message
    - endpoint
    - return_to
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 711
    functionName: openid.consumer.consumer.GenericConsumer._doIdRes
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - key.split
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveredServices
    - message.getAliasedArg
    - signed_list_str.split
    - openid.consumer.consumer.GenericConsumer._checkAuth
    - openid.message.NamespaceMap.addAlias
    - time.strptime
    - <builtin>.type
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveryResults
    - openid.consumer.consumer.GenericConsumer._processCheckAuthResponse
    - logger.exception
    - failure_messages.append
    - resp_msg.getArg
    - message.getOpenIDNamespace
    - bare_args.items
    - openid.message.Message.__init__
    - endpoint.usesExtension
    - check_auth_message.setArg
    - urllib.parse.urldefrag
    - openid.consumer.discover.OpenIDServiceEndpoint.preferredNamespace
    - message.toPostArgs
    - resp_msg.getOpenIDNamespace
    - openid.consumer.consumer.SuccessResponse.__init__
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveryResultsOpenID1
    - openid.message.Message.setOpenIDNamespace
    - openid.message.Message.fromPostArgs
    - openid.consumer.consumer.GenericConsumer._discoverAndVerify
    - openid.consumer.consumer.GenericConsumer._verifyDiscoverySingle
    - logger.error
    - args.items
    - assoc.checkMessageSignature
    - message.hasKey
    - message.isOpenID1
    - openid.consumer.consumer.GenericConsumer._idResGetNonceOpenID1
    - <builtin>.str
    - <builtin>.range
    - openid.consumer.discover.OpenIDServiceEndpoint._from_dict
    - openid.consumer.discover.OpenIDServiceEndpoint.fromOPEndpointURL
    - response.getArg
    - message.getArg
    - openid.consumer.consumer.GenericConsumer._idResCheckForFields
    - openid.store.nonce.split
    - openid.consumer.consumer.GenericConsumer._checkReturnTo
    - openid.consumer.consumer.GenericConsumer._createCheckAuthRequest
    - message.getArgs
    - openid.message.NamespaceMap.__init__
    - signed.split
    - openid.consumer.consumer.GenericConsumer._idResCheckSignature
    - <builtin>.super
    - openid.consumer.consumer.GenericConsumer._verifyReturnToArgs
    - logger.info
    - <builtin>.repr
    - openid.consumer.consumer.GenericConsumer._idResCheckNonce
    - message.copy
    - <builtin>.isinstance
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveryResultsOpenID2
    - endpoint.getLocalID
    - openid.consumer.discover.OpenIDServiceEndpoint.getLocalID
    - urllib.parse.urlparse
    - calendar.timegm
    - endpoint.isOPIdentifier
    - urllib.parse.parse_qsl
    - copy.copy
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - message
    - return_to
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 666
    functionName: openid.consumer.consumer.GenericConsumer._checkReturnTo
    functionSourceFile: openid.consumer.consumer
    functionUses: 2
    functionsReached:
    - key.split
    - openid.message.NamespaceMap.addAlias
    - <builtin>.type
    - logger.exception
    - openid.message.Message.__init__
    - bare_args.items
    - message.toPostArgs
    - openid.message.Message.setOpenIDNamespace
    - openid.message.Message.fromPostArgs
    - <builtin>.str
    - <builtin>.range
    - message.getArg
    - message.getArgs
    - openid.message.NamespaceMap.__init__
    - openid.consumer.consumer.GenericConsumer._verifyReturnToArgs
    - <builtin>.repr
    - <builtin>.isinstance
    - urllib.parse.urlparse
    - urllib.parse.parse_qsl
    - args.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - query
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 851
    functionName: openid.consumer.consumer.GenericConsumer._verifyReturnToArgs
    functionSourceFile: openid.consumer.consumer
    functionUses: 3
    functionsReached:
    - <builtin>.repr
    - key.split
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - openid.message.Message.__init__
    - message.getArg
    - <builtin>.type
    - urllib.parse.urlparse
    - message.getArgs
    - urllib.parse.parse_qsl
    - openid.message.NamespaceMap.__init__
    - openid.message.Message.setOpenIDNamespace
    - openid.message.Message.fromPostArgs
    - bare_args.items
    - args.items
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 816
    functionName: openid.consumer.consumer.GenericConsumer._idResCheckForFields
    functionSourceFile: openid.consumer.consumer
    functionUses: 2
    functionsReached:
    - signed_list_str.split
    - message.hasKey
    - message.getOpenIDNamespace
    - message.getArg
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f9f48e76c10>
    argNames:
    - self
    - resp_msg
    - endpoint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 891
    functionName: openid.consumer.consumer.GenericConsumer._verifyDiscoveryResults
    functionSourceFile: openid.consumer.consumer
    functionUses: 2
    functionsReached:
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveredServices
    - <builtin>.type
    - logger.exception
    - failure_messages.append
    - resp_msg.getArg
    - endpoint.usesExtension
    - urllib.parse.urldefrag
    - openid.consumer.discover.OpenIDServiceEndpoint.preferredNamespace
    - resp_msg.getOpenIDNamespace
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveryResultsOpenID1
    - openid.consumer.consumer.GenericConsumer._discoverAndVerify
    - openid.consumer.consumer.GenericConsumer._verifyDiscoverySingle
    - <builtin>.str
    - openid.consumer.discover.OpenIDServiceEndpoint._from_dict
    - openid.consumer.discover.OpenIDServiceEndpoint.fromOPEndpointURL
    - logger.info
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveryResultsOpenID2
    - openid.consumer.discover.OpenIDServiceEndpoint.getLocalID
    - endpoint.getLocalID
    - endpoint.isOPIdentifier
    - <builtin>.super
    - copy.copy
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - message
    - server_url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 788
    functionName: openid.consumer.consumer.GenericConsumer._idResCheckSignature
    functionSourceFile: openid.consumer.consumer
    functionUses: 2
    functionsReached:
    - check_auth_message.setArg
    - logger.info
    - message.getAliasedArg
    - openid.consumer.consumer.GenericConsumer._checkAuth
    - <builtin>.str
    - message.copy
    - <builtin>.isinstance
    - response.getArg
    - message.getArg
    - signed.split
    - openid.consumer.consumer.GenericConsumer._processCheckAuthResponse
    - logger.exception
    - logger.error
    - openid.consumer.consumer.GenericConsumer._createCheckAuthRequest
    - assoc.checkMessageSignature
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - message
    - endpoint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 767
    functionName: openid.consumer.consumer.GenericConsumer._idResCheckNonce
    functionSourceFile: openid.consumer.consumer
    functionUses: 2
    functionsReached:
    - message.isOpenID1
    - openid.consumer.consumer.GenericConsumer._idResGetNonceOpenID1
    - openid.store.nonce.split
    - time.strptime
    - message.getArg
    - calendar.timegm
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: signed_list_str.split
    functionSourceFile: <builtin>
    functionUses: 3
    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 0x7f9f480da7f0>
    argNames:
    - self
    - endpoint
    - message
    - signed_fields
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1768
    functionName: openid.consumer.consumer.SuccessResponse.__init__
    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:
    - self
    - message
    - endpoint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 755
    functionName: openid.consumer.consumer.GenericConsumer._idResGetNonceOpenID1
    functionSourceFile: openid.consumer.consumer
    functionUses: 3
    functionsReached:
    - message.getArg
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - message
    - server_url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1107
    functionName: openid.consumer.consumer.GenericConsumer._checkAuth
    functionSourceFile: openid.consumer.consumer
    functionUses: 3
    functionsReached:
    - check_auth_message.setArg
    - message.getAliasedArg
    - <builtin>.str
    - message.copy
    - <builtin>.isinstance
    - response.getArg
    - message.getArg
    - signed.split
    - openid.consumer.consumer.GenericConsumer._processCheckAuthResponse
    - logger.exception
    - logger.error
    - openid.consumer.consumer.GenericConsumer._createCheckAuthRequest
    - 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: urllib.parse.parse_qsl
    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: bare_args.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: resp_msg.getOpenIDNamespace
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 5
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - resp_msg
    - endpoint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 906
    functionName: openid.consumer.consumer.GenericConsumer._verifyDiscoveryResultsOpenID2
    functionSourceFile: openid.consumer.consumer
    functionUses: 3
    functionsReached:
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveredServices
    - <builtin>.type
    - logger.exception
    - failure_messages.append
    - resp_msg.getArg
    - endpoint.usesExtension
    - urllib.parse.urldefrag
    - openid.consumer.discover.OpenIDServiceEndpoint.preferredNamespace
    - openid.consumer.consumer.GenericConsumer._discoverAndVerify
    - openid.consumer.consumer.GenericConsumer._verifyDiscoverySingle
    - <builtin>.str
    - openid.consumer.discover.OpenIDServiceEndpoint._from_dict
    - openid.consumer.discover.OpenIDServiceEndpoint.fromOPEndpointURL
    - logger.info
    - openid.consumer.discover.OpenIDServiceEndpoint.getLocalID
    - endpoint.getLocalID
    - endpoint.isOPIdentifier
    - <builtin>.super
    - copy.copy
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - resp_msg
    - endpoint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 967
    functionName: openid.consumer.consumer.GenericConsumer._verifyDiscoveryResultsOpenID1
    functionSourceFile: openid.consumer.consumer
    functionUses: 3
    functionsReached:
    - openid.consumer.discover.OpenIDServiceEndpoint.__init__
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveredServices
    - urllib.parse.urldefrag
    - openid.consumer.discover.OpenIDServiceEndpoint.preferredNamespace
    - <builtin>.str
    - openid.consumer.discover.OpenIDServiceEndpoint.getLocalID
    - endpoint.getLocalID
    - openid.consumer.consumer.GenericConsumer._discoverAndVerify
    - <builtin>.super
    - logger.exception
    - failure_messages.append
    - resp_msg.getArg
    - copy.copy
    - openid.consumer.consumer.GenericConsumer._verifyDiscoverySingle
    - endpoint.usesExtension
    - logger.info
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    - 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: resp_msg.getArg
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - claimed_id
    - to_match_endpoints
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1057
    functionName: openid.consumer.consumer.GenericConsumer._discoverAndVerify
    functionSourceFile: openid.consumer.consumer
    functionUses: 5
    functionsReached:
    - openid.consumer.consumer.GenericConsumer._verifyDiscoveredServices
    - urllib.parse.urldefrag
    - openid.consumer.discover.OpenIDServiceEndpoint.preferredNamespace
    - <builtin>.str
    - endpoint.getLocalID
    - openid.consumer.discover.OpenIDServiceEndpoint.getLocalID
    - failure_messages.append
    - openid.consumer.consumer.GenericConsumer._verifyDiscoverySingle
    - endpoint.usesExtension
    - logger.info
    linkageType: pythonLinkage
    raised:
    - DiscoveryFailure
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: endpoint.isOPIdentifier
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - endpoint
    - to_match
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1009
    functionName: openid.consumer.consumer.GenericConsumer._verifyDiscoverySingle
    functionSourceFile: openid.consumer.consumer
    functionUses: 7
    functionsReached:
    - urllib.parse.urldefrag
    - openid.consumer.discover.OpenIDServiceEndpoint.preferredNamespace
    - openid.consumer.discover.OpenIDServiceEndpoint.getLocalID
    - endpoint.getLocalID
    - endpoint.usesExtension
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    - TypeURIMismatch
    returnType: N/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: 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: endpoint.getLocalID
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - claimed_id
    - services
    - to_match_endpoints
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1080
    functionName: openid.consumer.consumer.GenericConsumer._verifyDiscoveredServices
    functionSourceFile: openid.consumer.consumer
    functionUses: 6
    functionsReached:
    - urllib.parse.urldefrag
    - openid.consumer.discover.OpenIDServiceEndpoint.preferredNamespace
    - <builtin>.str
    - openid.consumer.discover.OpenIDServiceEndpoint.getLocalID
    - endpoint.getLocalID
    - failure_messages.append
    - openid.consumer.consumer.GenericConsumer._verifyDiscoverySingle
    - endpoint.usesExtension
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: failure_messages.append
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1126
    functionName: openid.consumer.consumer.GenericConsumer._createCheckAuthRequest
    functionSourceFile: openid.consumer.consumer
    functionUses: 4
    functionsReached:
    - check_auth_message.setArg
    - message.getAliasedArg
    - <builtin>.str
    - message.copy
    - <builtin>.isinstance
    - message.getArg
    - signed.split
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - response
    - server_url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1147
    functionName: openid.consumer.consumer.GenericConsumer._processCheckAuthResponse
    functionSourceFile: openid.consumer.consumer
    functionUses: 4
    functionsReached:
    - logger.info
    - response.getArg
    - logger.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.getAliasedArg
    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: check_auth_message.setArg
    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:
    - self
    - endpoint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1190
    functionName: openid.consumer.consumer.GenericConsumer._negotiateAssociation
    functionSourceFile: openid.consumer.consumer
    functionUses: 2
    functionsReached:
    - openid.message.NamespaceMap.addAlias
    - openid.consumer.consumer.GenericConsumer._getOpenID1SessionType
    - <builtin>.type
    - logger.exception
    - openid.association.Association.fromExpiresIn
    - openid.consumer.consumer.GenericConsumer._createAssociateRequest
    - openid.message.Message.__init__
    - openid.consumer.consumer.GenericConsumer._extractSupportedAssociationType
    - server_error.message.getArg
    - openid.message.Message.fromOpenIDArgs
    - openid.oidutil.fromBase64
    - <builtin>.int
    - openid.consumer.consumer.PlainTextConsumerSession.extractSecret
    - logger.warning
    - openid.message.Message.setOpenIDNamespace
    - logger.error
    - endpoint.compatibilityMode
    - <builtin>.str
    - assoc_response.isOpenID1
    - response.getArg
    - Crypto.Util.number.bytes_to_long.encode
    - openid.consumer.consumer.GenericConsumer._extractAssociation
    - openid.message.NamespaceMap.__init__
    - <builtin>.repr
    - binascii.a2b_base64
    - server_error.message.isOpenID1
    - assoc_response.getArg
    - <builtin>.isinstance
    - args.update
    - secret.encode
    - openid.consumer.consumer.GenericConsumer._requestAssociation
    - openid.association.Association.__init__
    - time.time
    - assoc_session.getRequest
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - endpoint
    - assoc_type
    - session_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1269
    functionName: openid.consumer.consumer.GenericConsumer._requestAssociation
    functionSourceFile: openid.consumer.consumer
    functionUses: 3
    functionsReached:
    - openid.message.NamespaceMap.addAlias
    - openid.consumer.consumer.GenericConsumer._getOpenID1SessionType
    - <builtin>.type
    - logger.exception
    - openid.association.Association.fromExpiresIn
    - openid.consumer.consumer.GenericConsumer._createAssociateRequest
    - openid.message.Message.__init__
    - openid.oidutil.fromBase64
    - openid.message.Message.fromOpenIDArgs
    - <builtin>.int
    - openid.consumer.consumer.PlainTextConsumerSession.extractSecret
    - logger.warning
    - openid.message.Message.setOpenIDNamespace
    - endpoint.compatibilityMode
    - <builtin>.str
    - assoc_response.isOpenID1
    - response.getArg
    - Crypto.Util.number.bytes_to_long.encode
    - openid.consumer.consumer.GenericConsumer._extractAssociation
    - openid.message.NamespaceMap.__init__
    - <builtin>.repr
    - binascii.a2b_base64
    - assoc_response.getArg
    - <builtin>.isinstance
    - args.update
    - secret.encode
    - openid.association.Association.__init__
    - time.time
    - assoc_session.getRequest
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - server_error
    - endpoint
    - assoc_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1228
    functionName: openid.consumer.consumer.GenericConsumer._extractSupportedAssociationType
    functionSourceFile: openid.consumer.consumer
    functionUses: 3
    functionsReached:
    - server_error.message.getArg
    - server_error.message.isOpenID1
    - logger.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: server_error.message.isOpenID1
    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_error.message.getArg
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - endpoint
    - assoc_type
    - session_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1301
    functionName: openid.consumer.consumer.GenericConsumer._createAssociateRequest
    functionSourceFile: openid.consumer.consumer
    functionUses: 4
    functionsReached:
    - <builtin>.repr
    - endpoint.compatibilityMode
    - openid.message.Message.fromOpenIDArgs
    - <builtin>.str
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - args.update
    - <builtin>.type
    - openid.message.NamespaceMap.__init__
    - openid.message.Message.setOpenIDNamespace
    - openid.message.Message.__init__
    - assoc_session.getRequest
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - assoc_response
    - assoc_session
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1384
    functionName: openid.consumer.consumer.GenericConsumer._extractAssociation
    functionSourceFile: openid.consumer.consumer
    functionUses: 4
    functionsReached:
    - binascii.a2b_base64
    - openid.oidutil.fromBase64
    - assoc_response.getArg
    - <builtin>.int
    - <builtin>.isinstance
    - openid.consumer.consumer.GenericConsumer._getOpenID1SessionType
    - openid.consumer.consumer.PlainTextConsumerSession.extractSecret
    - response.getArg
    - secret.encode
    - assoc_response.isOpenID1
    - Crypto.Util.number.bytes_to_long.encode
    - logger.warning
    - openid.association.Association.__init__
    - time.time
    - openid.association.Association.fromExpiresIn
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: endpoint.compatibilityMode
    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: assoc_session.getRequest
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - assoc_response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1346
    functionName: openid.consumer.consumer.GenericConsumer._getOpenID1SessionType
    functionSourceFile: openid.consumer.consumer
    functionUses: 5
    functionsReached:
    - assoc_response.getArg
    - 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: assoc_response.getArg
    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: assoc_response.isOpenID1
    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: endpoint.preferredNamespace
    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
    - is_anonymous
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1489
    functionName: openid.consumer.consumer.AuthRequest.setAnonymous
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.message.Message.isOpenID1
    - openid.message.Message.getOpenIDNamespace
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - extension_request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1507
    functionName: openid.consumer.consumer.AuthRequest.addExtension
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - extension_request.toMessage
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: extension_request.toMessage
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - namespace
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1516
    functionName: openid.consumer.consumer.AuthRequest.addExtensionArg
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - warnings.warn
    - <builtin>.repr
    - <builtin>.str
    - openid.message.NamespaceMap.add
    - openid.message.NamespaceMap.addAlias
    - <builtin>.isinstance
    - openid.message.Message.setArg
    - <builtin>.type
    - openid.message.Message._fixNS
    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 0x7f9f47f109d0>
    - <ast.Constant object at 0x7f9f47f10a00>
    argNames:
    - self
    - realm
    - return_to
    - immediate
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1543
    functionName: openid.consumer.consumer.AuthRequest.getMessage
    functionSourceFile: openid.consumer.consumer
    functionUses: 3
    functionsReached:
    - openid.message.Message.isOpenID1
    - k.encode
    - openid.message.Message.getOpenIDNamespace
    - message.isOpenID1
    - <builtin>.hasattr
    - <builtin>.str
    - message.updateArgs
    - openid.message.Message.copy
    - v.encode
    - <builtin>.isinstance
    - urllib.parse.urlencode
    - message.isOpenID2
    - <builtin>.list
    - message.setArg
    - <builtin>.sorted
    - openid.oidutil.appendArgs
    - logger.info
    - args.items
    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: message.updateArgs
    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: message.setArg
    functionSourceFile: <builtin>
    functionUses: 4
    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 0x7f9f480eb910>
    - <ast.Constant object at 0x7f9f480eb940>
    argNames:
    - self
    - realm
    - return_to
    - immediate
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1627
    functionName: openid.consumer.consumer.AuthRequest.redirectURL
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.message.Message.copy
    - <builtin>.list
    - message.setArg
    - <builtin>.sorted
    - k.encode
    - openid.message.Message.getOpenIDNamespace
    - v.encode
    - urllib.parse.urlencode
    - openid.consumer.consumer.AuthRequest.getMessage
    - message.isOpenID1
    - <builtin>.hasattr
    - <builtin>.str
    - openid.oidutil.appendArgs
    - logger.info
    - openid.message.Message.isOpenID1
    - message.updateArgs
    - <builtin>.isinstance
    - message.isOpenID2
    - args.items
    - message.toURL
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.toURL
    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 0x7f9f480ebe80>
    - <ast.Constant object at 0x7f9f480ebeb0>
    - <ast.Constant object at 0x7f9f480ebee0>
    argNames:
    - self
    - realm
    - return_to
    - immediate
    - form_tag_attrs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1668
    functionName: openid.consumer.consumer.AuthRequest.formMarkup
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - openid.message.Message.copy
    - <builtin>.list
    - message.setArg
    - message.toFormMarkup
    - <builtin>.sorted
    - k.encode
    - openid.message.Message.getOpenIDNamespace
    - v.encode
    - urllib.parse.urlencode
    - openid.consumer.consumer.AuthRequest.getMessage
    - message.isOpenID1
    - <builtin>.hasattr
    - <builtin>.str
    - openid.oidutil.appendArgs
    - logger.info
    - openid.message.Message.isOpenID1
    - message.updateArgs
    - <builtin>.isinstance
    - message.isOpenID2
    - args.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: message.toFormMarkup
    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 0x7f9f480e2490>
    - <ast.Constant object at 0x7f9f480e24c0>
    - <ast.Constant object at 0x7f9f480e24f0>
    argNames:
    - self
    - realm
    - return_to
    - immediate
    - form_tag_attrs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1684
    functionName: openid.consumer.consumer.AuthRequest.htmlMarkup
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.message.Message.copy
    - <builtin>.list
    - message.setArg
    - message.toFormMarkup
    - <builtin>.sorted
    - k.encode
    - openid.message.Message.getOpenIDNamespace
    - v.encode
    - urllib.parse.urlencode
    - openid.oidutil.autoSubmitHTML
    - openid.consumer.consumer.AuthRequest.getMessage
    - message.isOpenID1
    - <builtin>.str
    - <builtin>.hasattr
    - openid.oidutil.appendArgs
    - logger.info
    - openid.message.Message.isOpenID1
    - message.updateArgs
    - <builtin>.isinstance
    - message.isOpenID2
    - args.items
    - openid.consumer.consumer.AuthRequest.formMarkup
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1699
    functionName: openid.consumer.consumer.AuthRequest.shouldSendRedirect
    functionSourceFile: openid.consumer.consumer
    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
    - endpoint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1717
    functionName: openid.consumer.consumer.Response.setEndpoint
    functionSourceFile: openid.consumer.consumer
    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: 0
    functionLinenumber: 1724
    functionName: openid.consumer.consumer.Response.getDisplayIdentifier
    functionSourceFile: openid.consumer.consumer
    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: 1780
    functionName: openid.consumer.consumer.SuccessResponse.isOpenID1
    functionSourceFile: openid.consumer.consumer
    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
    - ns_uri
    - ns_key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1786
    functionName: openid.consumer.consumer.SuccessResponse.isSigned
    functionSourceFile: openid.consumer.consumer
    functionUses: 4
    functionsReached: []
    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 0x7f9f480fe400>
    argNames:
    - self
    - ns_uri
    - ns_key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1792
    functionName: openid.consumer.consumer.SuccessResponse.getSigned
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - openid.consumer.consumer.SuccessResponse.isSigned
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ns_uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1801
    functionName: openid.consumer.consumer.SuccessResponse.getSignedNS
    functionSourceFile: openid.consumer.consumer
    functionUses: 1
    functionsReached:
    - openid.consumer.consumer.SuccessResponse.isSigned
    - msg_args.keys
    - 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: msg_args.keys
    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
    - namespace_uri
    - require_signed
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1817
    functionName: openid.consumer.consumer.SuccessResponse.extensionResponse
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.consumer.consumer.SuccessResponse.getSignedNS
    - openid.consumer.consumer.SuccessResponse.isSigned
    - msg_args.keys
    - logger.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: 2
    functionLinenumber: 1834
    functionName: openid.consumer.consumer.SuccessResponse.getReturnTo
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached:
    - openid.consumer.consumer.SuccessResponse.getSigned
    - openid.consumer.consumer.SuccessResponse.isSigned
    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: 1848
    functionName: openid.consumer.consumer.SuccessResponse.__eq__
    functionSourceFile: openid.consumer.consumer
    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: 1855
    functionName: openid.consumer.consumer.SuccessResponse.__ne__
    functionSourceFile: openid.consumer.consumer
    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: 1858
    functionName: openid.consumer.consumer.SuccessResponse.__repr__
    functionSourceFile: openid.consumer.consumer
    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: 1885
    functionName: openid.consumer.consumer.FailureResponse.__repr__
    functionSourceFile: openid.consumer.consumer
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_html_parse':
  - 36
  - 37
  '...fuzz_html_parse.TestOneInput':
  - 25
  - 22
  - 23
  '...fuzz_html_parse.main':
  - 32
  - 33
  - 31
  openid:
  - 2
  - 31
  openid.association:
  - 3
  - 47
  - 48
  - 188
  - 189
  openid.association.Association:
  - 203
  openid.association.Association.__eq__:
  - 388
  - 398
  openid.association.Association.__init__:
  - 304
  - 353
  - 352
  - 341
  openid.association.Association.__lt__:
  - 378
  openid.association.Association.__ne__:
  - 401
  openid.association.Association._makePairs:
  - 548
  - 549
  - 552
  - 554
  - 555
  - 556
  openid.association.Association.checkMessageSignature:
  - 544
  - 545
  - 533
  - 539
  - 540
  - 542
  openid.association.Association.deserialize:
  - 451
  - 454
  - 455
  - 456
  - 458
  - 462
  - 464
  - 465
  - 466
  - 467
  - 441
  openid.association.Association.expiresIn:
  - 362
  - 372
  - 373
  - 375
  openid.association.Association.fromExpiresIn:
  - 266
  - 299
  - 301
  openid.association.Association.getMessageSignature:
  - 504
  - 505
  - 492
  openid.association.Association.serialize:
  - 425
  - 426
  - 427
  - 431
  - 434
  - 435
  - 437
  - 414
  openid.association.Association.sign:
  - 481
  - 489
  - 470
  openid.association.Association.signMessage:
  - 513
  - 514
  - 517
  - 518
  - 521
  - 522
  - 523
  - 524
  - 525
  - 526
  - 527
  - 528
  - 529
  - 508
  openid.association.SessionNegotiator:
  - 92
  openid.association.SessionNegotiator.__init__:
  - 140
  openid.association.SessionNegotiator.addAllowedType:
  - 160
  - 161
  - 163
  - 167
  - 168
  - 170
  - 171
  - 154
  - 157
  openid.association.SessionNegotiator.copy:
  - 143
  openid.association.SessionNegotiator.getAllowedType:
  - 180
  openid.association.SessionNegotiator.isAllowed:
  - 176
  - 174
  openid.association.SessionNegotiator.setAllowedTypes:
  - 146
  - 148
  - 149
  openid.association.checkSessionType:
  - 84
  - 86
  openid.association.getSecretSize:
  - 193
  - 195
  openid.association.getSessionTypes:
  - 80
  - 75
  openid.codecutil:
  - 91
  - 4
  openid.codecutil._ends_surrogate_pair:
  - 59
  openid.codecutil._in_escape_range:
  - 48
  - 47
  openid.codecutil._pct_encoded_replacements:
  - 65
  - 66
  - 67
  - 68
  - 69
  - 70
  - 71
  - 72
  - 73
  - 74
  - 76
  openid.codecutil._pct_escape_handler:
  - 88
  - 81
  - 87
  openid.codecutil._starts_surrogate_pair:
  - 54
  openid.consumer:
  - 1
  openid.consumer.consumer:
  - 2
  - 222
  openid.consumer.consumer.AuthRequest:
  - 1463
  openid.consumer.consumer.AuthRequest.__init__:
  - 1475
  - 1486
  openid.consumer.consumer.AuthRequest.addExtension:
  - 1514
  - 1508
  openid.consumer.consumer.AuthRequest.addExtensionArg:
  - 1541
  - 1517
  openid.consumer.consumer.AuthRequest.formMarkup:
  - 1673
  - 1681
  - 1682
  openid.consumer.consumer.AuthRequest.getMessage:
  - 1544
  - 1572
  - 1573
  - 1574
  - 1577
  - 1579
  - 1583
  - 1588
  - 1589
  - 1594
  - 1600
  - 1601
  - 1607
  - 1611
  - 1613
  - 1614
  - 1616
  - 1617
  - 1622
  openid.consumer.consumer.AuthRequest.htmlMarkup:
  - 1696
  - 1689
  - 1697
  openid.consumer.consumer.AuthRequest.redirectURL:
  - 1665
  - 1666
  - 1628
  openid.consumer.consumer.AuthRequest.setAnonymous:
  - 1490
  - 1501
  openid.consumer.consumer.AuthRequest.shouldSendRedirect:
  - 1705
  - 1700
  openid.consumer.consumer.CancelResponse:
  - 1892
  openid.consumer.consumer.CancelResponse.__init__:
  - 1904
  openid.consumer.consumer.Consumer:
  - 267
  - 287
  openid.consumer.consumer.Consumer.__init__:
  - 290
  - 308
  - 310
  openid.consumer.consumer.Consumer.begin:
  - 356
  - 360
  - 314
  - 349
  - 351
  openid.consumer.consumer.Consumer.beginWithoutDiscovery:
  - 363
  - 387
  - 383
  openid.consumer.consumer.Consumer.complete:
  - 418
  - 420
  - 421
  - 394
  - 428
  - 431
  - 435
  openid.consumer.consumer.Consumer.setAssociationPreference:
  - 440
  - 459
  openid.consumer.consumer.DiffieHellmanSHA1ConsumerSession:
  - 464
  openid.consumer.consumer.DiffieHellmanSHA1ConsumerSession.__init__:
  - 469
  - 470
  openid.consumer.consumer.DiffieHellmanSHA1ConsumerSession.extractSecret:
  - 488
  - 490
  - 491
  - 492
  - 493
  openid.consumer.consumer.DiffieHellmanSHA1ConsumerSession.getRequest:
  - 480
  - 475
  - 479
  openid.consumer.consumer.DiffieHellmanSHA256ConsumerSession:
  - 498
  openid.consumer.consumer.FailureResponse:
  - 1865
  openid.consumer.consumer.FailureResponse.__init__:
  - 1880
  openid.consumer.consumer.GenericConsumer:
  - 695
  - 889
  - 598
  - 567
  openid.consumer.consumer.GenericConsumer.__init__:
  - 602
  openid.consumer.consumer.GenericConsumer._checkAuth:
  - 1121
  - 1124
  - 1108
  - 1113
  - 1114
  - 1115
  - 1118
  openid.consumer.consumer.GenericConsumer._checkReturnTo:
  - 674
  - 676
  - 680
  - 684
  - 685
  - 689
  - 690
  - 667
  openid.consumer.consumer.GenericConsumer._checkSetupNeeded:
  - 706
  - 698
  - 707
  - 708
  openid.consumer.consumer.GenericConsumer._completeInvalid:
  - 664
  - 663
  openid.consumer.consumer.GenericConsumer._complete_cancel:
  - 634
  openid.consumer.consumer.GenericConsumer._complete_error:
  - 641
  - 637
  - 638
  - 639
  openid.consumer.consumer.GenericConsumer._complete_id_res:
  - 658
  - 660
  - 653
  - 655
  openid.consumer.consumer.GenericConsumer._complete_setup_needed:
  - 648
  - 649
  - 645
  - 646
  openid.consumer.consumer.GenericConsumer._createAssociateRequest:
  - 1326
  - 1333
  - 1302
  - 1338
  - 1342
  - 1343
  openid.consumer.consumer.GenericConsumer._createCheckAuthRequest:
  - 1127
  - 1130
  - 1131
  - 1132
  - 1133
  - 1134
  - 1135
  - 1136
  - 1139
  - 1140
  - 1143
  - 1144
  openid.consumer.consumer.GenericConsumer._discoverAndVerify:
  - 1058
  - 1072
  - 1073
  - 1074
  - 1077
  openid.consumer.consumer.GenericConsumer._doIdRes:
  - 740
  - 741
  - 743
  - 712
  - 745
  - 748
  - 750
  - 751
  - 753
  - 732
  - 734
  openid.consumer.consumer.GenericConsumer._extractAssociation:
  - 1412
  - 1445
  - 1415
  - 1385
  - 1420
  - 1421
  - 1453
  - 1423
  - 1458
  - 1427
  - 1428
  - 1435
  - 1404
  - 1405
  openid.consumer.consumer.GenericConsumer._extractSupportedAssociationType:
  - 1249
  - 1254
  - 1255
  - 1257
  - 1258
  - 1261
  - 1230
  - 1264
  - 1239
  - 1240
  - 1241
  openid.consumer.consumer.GenericConsumer._getAssociation:
  - 1184
  - 1185
  - 1186
  - 1170
  - 1181
  - 1183
  openid.consumer.consumer.GenericConsumer._getOpenID1SessionType:
  - 1379
  - 1347
  - 1363
  - 1371
  - 1372
  openid.consumer.consumer.GenericConsumer._idResCheckForFields:
  - 839
  - 840
  - 843
  - 844
  - 846
  - 848
  openid.consumer.consumer.GenericConsumer._idResCheckNonce:
  - 768
  - 770
  - 773
  - 776
  - 780
  - 784
  - 785
  openid.consumer.consumer.GenericConsumer._idResCheckSignature:
  - 805
  - 813
  - 789
  - 790
  - 793
  - 795
  - 796
  openid.consumer.consumer.GenericConsumer._idResGetNonceOpenID1:
  - 756
  - 765
  openid.consumer.consumer.GenericConsumer._negotiateAssociation:
  - 1218
  - 1191
  - 1199
  - 1202
  - 1205
  - 1207
  - 1213
  openid.consumer.consumer.GenericConsumer._processCheckAuthResponse:
  - 1153
  - 1154
  - 1155
  - 1157
  - 1158
  - 1161
  - 1163
  - 1166
  - 1148
  - 1151
  openid.consumer.consumer.GenericConsumer._requestAssociation:
  - 1282
  - 1284
  - 1288
  - 1290
  - 1295
  - 1270
  - 1278
  openid.consumer.consumer.GenericConsumer._verifyDiscoveredServices:
  - 1088
  - 1090
  - 1092
  - 1082
  - 1087
  openid.consumer.consumer.GenericConsumer._verifyDiscoveryResults:
  - 904
  - 892
  - 901
  - 902
  openid.consumer.consumer.GenericConsumer._verifyDiscoveryResultsOpenID1:
  - 992
  - 995
  - 997
  - 999
  - 968
  - 1001
  - 1002
  - 971
  - 1007
  - 977
  - 980
  - 982
  - 986
  - 989
  openid.consumer.consumer.GenericConsumer._verifyDiscoveryResultsOpenID2:
  - 907
  - 909
  - 910
  - 913
  - 918
  - 922
  - 929
  - 930
  - 936
  - 937
  - 938
  - 939
  - 940
  - 941
  - 942
  - 945
  - 951
  - 953
  - 955
  - 956
  - 957
  - 962
  - 963
  openid.consumer.consumer.GenericConsumer._verifyDiscoverySingle:
  - 1024
  - 1025
  - 1030
  - 1031
  - 1037
  - 1010
  - 1046
  - 1047
  - 1053
  openid.consumer.consumer.GenericConsumer._verifyReturnToArgs:
  - 865
  - 870
  - 873
  - 883
  - 852
  - 884
  - 885
  - 857
  - 858
  - 860
  - 863
  openid.consumer.consumer.GenericConsumer.begin:
  - 608
  - 611
  - 613
  - 614
  - 616
  - 605
  openid.consumer.consumer.GenericConsumer.complete:
  - 627
  - 631
  - 629
  - 623
  openid.consumer.consumer.PlainTextConsumerSession.extractSecret:
  - 512
  - 511
  openid.consumer.consumer.ProtocolError:
  - 525
  openid.consumer.consumer.Response.getDisplayIdentifier:
  - 1741
  - 1740
  - 1725
  openid.consumer.consumer.Response.setEndpoint:
  - 1719
  openid.consumer.consumer.ServerError:
  - 546
  - 563
  openid.consumer.consumer.ServerError.__init__:
  - 550
  openid.consumer.consumer.ServerError.fromMessage:
  - 560
  - 561
  - 556
  - 558
  openid.consumer.consumer.SetupNeededError:
  - 516
  openid.consumer.consumer.SetupNeededError.__init__:
  - 520
  openid.consumer.consumer.SetupNeededResponse:
  - 1908
  openid.consumer.consumer.SetupNeededResponse.__init__:
  - 1926
  openid.consumer.consumer.SuccessResponse:
  - 1746
  openid.consumer.consumer.SuccessResponse.__init__:
  - 1776
  openid.consumer.consumer.SuccessResponse.extensionResponse:
  - 1832
  - 1818
  - 1829
  - 1830
  openid.consumer.consumer.SuccessResponse.getReturnTo:
  - 1835
  - 1846
  openid.consumer.consumer.SuccessResponse.getSigned:
  - 1793
  - 1796
  - 1797
  openid.consumer.consumer.SuccessResponse.getSignedNS:
  - 1802
  - 1806
  - 1808
  - 1809
  - 1810
  openid.consumer.consumer.SuccessResponse.isOpenID1:
  - 1784
  - 1781
  openid.consumer.consumer.SuccessResponse.isSigned:
  - 1787
  - 1790
  openid.consumer.consumer.TypeURIMismatch:
  - 530
  openid.consumer.consumer.TypeURIMismatch.__init__:
  - 534
  openid.consumer.consumer._httpResponseToMessage:
  - 241
  - 258
  - 254
  - 255
  openid.consumer.consumer.makeKVPost:
  - 225
  - 234
  - 237
  openid.consumer.discover:
  - 2
  - 38
  openid.consumer.discover.OpenIDServiceEndpoint:
  - 42
  openid.consumer.discover.OpenIDServiceEndpoint.__getattr__:
  - 96
  openid.consumer.discover.OpenIDServiceEndpoint.__init__:
  - 79
  openid.consumer.discover.OpenIDServiceEndpoint.__setattr__:
  - 101
  openid.consumer.discover.OpenIDServiceEndpoint._from_dict:
  - 93
  openid.consumer.discover.OpenIDServiceEndpoint.compatibilityMode:
  - 133
  openid.consumer.discover.OpenIDServiceEndpoint.fromBasicServiceEndpoint:
  - 167
  - 171
  - 175
  - 176
  - 177
  openid.consumer.discover.OpenIDServiceEndpoint.fromDiscoveryResult:
  - 241
  - 245
  - 231
  openid.consumer.discover.OpenIDServiceEndpoint.fromHTML:
  - 200
  - 202
  - 203
  - 204
  - 207
  - 209
  - 213
  - 190
  openid.consumer.discover.OpenIDServiceEndpoint.fromOPEndpointURL:
  - 249
  - 255
  openid.consumer.discover.OpenIDServiceEndpoint.fromXRDS:
  - 219
  - 227
  openid.consumer.discover.OpenIDServiceEndpoint.getDisplayIdentifier:
  - 130
  - 124
  - 125
  - 127
  openid.consumer.discover.OpenIDServiceEndpoint.getLocalID:
  - 160
  - 154
  openid.consumer.discover.OpenIDServiceEndpoint.parseService:
  - 145
  - 139
  - 150
  openid.consumer.discover.OpenIDServiceEndpoint.preferredNamespace:
  - 109
  openid.consumer.discover.OpenIDServiceEndpoint.supportsType:
  - 120
  - 115
  openid.consumer.discover.arrangeByType:
  - 385
  - 378
  - 379
  - 381
  - 350
  openid.consumer.discover.arrangeByType.bestMatchingService:
  - 361
  - 370
  - 373
  - 369
  openid.consumer.discover.arrangeByType.enumerate:
  - 354
  - 358
  openid.consumer.discover.discover:
  - 508
  - 509
  - 511
  openid.consumer.discover.discoverNoYadis:
  - 480
  - 481
  - 489
  openid.consumer.discover.discoverURI:
  - 494
  - 495
  - 496
  - 501
  - 502
  - 503
  openid.consumer.discover.discoverXRI:
  - 453
  - 455
  - 459
  - 462
  - 463
  - 464
  - 466
  - 468
  - 476
  openid.consumer.discover.discoverYadis:
  - 448
  - 425
  - 430
  - 442
  - 435
  - 438
  - 410
  - 446
  openid.consumer.discover.findOPLocalIdentifier:
  - 320
  - 321
  - 323
  - 314
  - 310
  - 311
  - 313
  - 282
  - 319
  openid.consumer.discover.getOPOrUserServices:
  - 392
  - 402
  - 400
  openid.consumer.discover.normalizeURL:
  - 339
  - 332
  - 335
  openid.consumer.discover.normalizeXRI:
  - 344
  - 343
  openid.consumer.html_parse:
  - 1
  - 139
  - 140
  - 141
  - 171
  - 143
  - 81
  openid.consumer.html_parse.findFirstHref:
  - 274
  - 275
  - 278
  - 271
  openid.consumer.html_parse.findLinksRel:
  - 266
  - 267
  - 263
  openid.consumer.html_parse.findLinksRel.<lambda1>:
  - 266
  openid.consumer.html_parse.linkHasRel:
  - 256
  - 258
  - 259
  openid.consumer.html_parse.parseLinkAttrs:
  - 180
  - 192
  - 197
  - 200
  - 202
  - 209
  - 210
  - 211
  - 214
  - 215
  - 216
  - 219
  - 220
  - 223
  - 224
  - 226
  - 227
  - 232
  - 234
  - 238
  openid.consumer.html_parse.relMatches:
  - 244
  - 246
  - 247
  - 248
  - 249
  openid.consumer.html_parse.replaceEnt:
  - 176
  - 175
  openid.consumer.html_parse.tagMatcher:
  - 128
  - 129
  - 134
  - 135
  openid.cryptutil:
  - 1
  - 44
  - 45
  openid.cryptutil.HashContainer.__init__:
  - 41
  openid.cryptutil.base64ToLong:
  - 134
  openid.cryptutil.binaryToLong:
  - 96
  - 97
  - 98
  - 113
  - 116
  - 119
  - 94
  - 95
  openid.cryptutil.const_eq:
  - 147
  - 151
  openid.cryptutil.hmacSha1:
  - 49
  - 50
  - 51
  - 52
  - 53
  openid.cryptutil.hmacSha256:
  - 64
  - 65
  - 66
  - 67
  - 63
  openid.cryptutil.longToBase64:
  - 130
  openid.cryptutil.longToBinary:
  - 103
  - 106
  - 107
  - 87
  - 89
  - 90
  - 91
  openid.cryptutil.randomString:
  - 138
  - 139
  - 140
  - 142
  - 143
  openid.cryptutil.sha1:
  - 57
  - 58
  - 59
  openid.cryptutil.sha256:
  - 72
  - 73
  - 71
  openid.dh.DiffieHellman:
  - 24
  openid.dh.DiffieHellman.__init__:
  - 27
  - 28
  - 30
  openid.dh.DiffieHellman._setPrivate:
  - 33
  - 35
  openid.dh.DiffieHellman.fromDefaults:
  - 22
  openid.dh.DiffieHellman.getSharedSecret:
  - 42
  openid.dh.DiffieHellman.xorSecret:
  - 45
  - 46
  - 47
  openid.dh.strxor:
  - 5
  - 8
  - 9
  - 10
  - 11
  - 13
  openid.extension.Extension:
  - 7
  openid.extension.Extension.getExtensionArgs:
  - 16
  openid.extension.Extension.toMessage:
  - 33
  - 34
  - 39
  - 41
  - 44
  - 47
  - 50
  - 27
  openid.extensions:
  - 1
  openid.extensions.ax:
  - 2
  openid.extensions.ax.AXError:
  - 40
  openid.extensions.ax.AXKeyValueMessage:
  - 419
  openid.extensions.ax.AXKeyValueMessage.__init__:
  - 430
  openid.extensions.ax.AXKeyValueMessage._getExtensionKVArgs:
  - 482
  - 484
  - 467
  - 473
  - 474
  - 478
  - 479
  openid.extensions.ax.AXKeyValueMessage.addValue:
  - 434
  - 452
  openid.extensions.ax.AXKeyValueMessage.count:
  - 585
  - 596
  openid.extensions.ax.AXKeyValueMessage.get:
  - 565
  openid.extensions.ax.AXKeyValueMessage.getSingle:
  - 538
  - 556
  - 557
  - 559
  openid.extensions.ax.AXKeyValueMessage.parseExtensionArgs:
  - 514
  - 515
  - 517
  - 491
  - 523
  - 528
  - 530
  - 533
  - 506
  - 508
  - 510
  - 511
  openid.extensions.ax.AXKeyValueMessage.setValues:
  - 455
  openid.extensions.ax.AXMessage:
  - 55
  openid.extensions.ax.AXMessage._checkMode:
  - 74
  - 81
  - 82
  - 83
  - 84
  - 85
  openid.extensions.ax.AXMessage._newArgs:
  - 91
  openid.extensions.ax.AttrInfo:
  - 99
  openid.extensions.ax.AttrInfo.__init__:
  - 138
  - 139
  openid.extensions.ax.AttrInfo.wantsUnlimitedValues:
  - 142
  openid.extensions.ax.FetchRequest:
  - 186
  - 332
  openid.extensions.ax.FetchRequest.__init__:
  - 201
  openid.extensions.ax.FetchRequest.__iter__:
  - 408
  - 406
  openid.extensions.ax.FetchRequest.add:
  - 216
  - 206
  openid.extensions.ax.FetchRequest.fromOpenIDRequest:
  - 288
  - 324
  - 325
  - 306
  - 307
  - 309
  - 313
  - 316
  - 317
  - 319
  openid.extensions.ax.FetchRequest.getExtensionArgs:
  - 257
  - 255
  - 228
  - 259
  - 260
  - 264
  - 233
  - 265
  - 235
  - 236
  - 237
  - 267
  - 268
  - 252
  - 254
  - 223
  openid.extensions.ax.FetchRequest.getRequiredAttrs:
  - 273
  - 282
  - 283
  - 281
  openid.extensions.ax.FetchRequest.has_key:
  - 411
  openid.extensions.ax.FetchRequest.iterAttrs:
  - 400
  - 403
  openid.extensions.ax.FetchRequest.parseExtensionArgs:
  - 384
  - 353
  - 355
  - 387
  - 357
  - 358
  - 391
  - 392
  - 361
  - 364
  - 365
  - 397
  - 335
  - 367
  - 368
  - 373
  - 380
  - 382
  openid.extensions.ax.FetchResponse:
  - 600
  - 724
  openid.extensions.ax.FetchResponse.__init__:
  - 619
  - 605
  openid.extensions.ax.FetchResponse.fromSuccessResponse:
  - 697
  - 714
  - 715
  - 718
  openid.extensions.ax.FetchResponse.getExtensionArgs:
  - 672
  - 668
  - 642
  - 643
  - 676
  - 677
  - 648
  - 651
  - 652
  - 684
  - 654
  - 687
  - 624
  - 660
  - 662
  - 663
  - 632
  - 636
  openid.extensions.ax.FetchResponse.parseExtensionArgs:
  - 692
  - 693
  - 694
  openid.extensions.ax.NotAXMessage:
  - 45
  openid.extensions.ax.StoreRequest:
  - 728
  openid.extensions.ax.StoreRequest.__init__:
  - 737
  - 733
  openid.extensions.ax.StoreRequest.getExtensionArgs:
  - 744
  - 745
  - 746
  - 741
  openid.extensions.ax.StoreResponse:
  - 751
  openid.extensions.ax.StoreResponse.__init__:
  - 761
  - 764
  - 759
  openid.extensions.ax.StoreResponse.getExtensionArgs:
  - 776
  - 777
  - 778
  openid.extensions.ax.StoreResponse.succeeded:
  - 772
  openid.extensions.ax.checkAlias:
  - 33
  - 35
  - 29
  openid.extensions.ax.toTypeURIs:
  - 173
  - 174
  - 175
  - 176
  - 180
  - 153
  openid.extensions.draft.pape2:
  - 1
  - 30
  openid.extensions.draft.pape2.Request:
  - 34
  - 99
  openid.extensions.draft.pape2.Request.__bool__:
  - 58
  openid.extensions.draft.pape2.Request.__init__:
  - 50
  - 51
  openid.extensions.draft.pape2.Request.addPolicyURI:
  - 72
  - 62
  - 71
  openid.extensions.draft.pape2.Request.fromOpenIDRequest:
  - 96
  - 87
  - 90
  - 91
  - 93
  openid.extensions.draft.pape2.Request.getExtensionArgs:
  - 81
  - 82
  - 75
  - 78
  openid.extensions.draft.pape2.Request.parseExtensionArgs:
  - 128
  - 130
  - 102
  - 116
  - 117
  - 118
  - 119
  - 120
  - 121
  - 122
  - 125
  openid.extensions.draft.pape2.Request.preferredTypes:
  - 151
  - 150
  - 135
  openid.extensions.draft.pape2.Response:
  - 256
  - 158
  openid.extensions.draft.pape2.Response.__init__:
  - 168
  - 169
  openid.extensions.draft.pape2.Response.addPolicyURI:
  - 178
  - 187
  - 188
  openid.extensions.draft.pape2.Response.fromSuccessResponse:
  - 204
  - 207
  - 211
  - 212
  - 191
  openid.extensions.draft.pape2.Response.getExtensionArgs:
  - 259
  - 261
  - 267
  - 270
  - 271
  - 274
  - 276
  - 277
  openid.extensions.draft.pape2.Response.parseExtensionArgs:
  - 230
  - 231
  - 232
  - 234
  - 235
  - 250
  - 237
  - 239
  - 246
  - 249
  - 218
  - 251
  - 253
  openid.extensions.draft.pape5:
  - 1
  - 35
  openid.extensions.draft.pape5.PAPEExtension.__init__:
  - 48
  openid.extensions.draft.pape5.PAPEExtension._addAuthLevelAlias:
  - 64
  - 66
  - 67
  - 51
  - 60
  - 62
  openid.extensions.draft.pape5.PAPEExtension._generateAlias:
  - 74
  - 75
  - 77
  openid.extensions.draft.pape5.PAPEExtension._getAlias:
  - 88
  - 83
  - 87
  openid.extensions.draft.pape5.Request:
  - 190
  - 95
  openid.extensions.draft.pape5.Request.__bool__:
  - 132
  openid.extensions.draft.pape5.Request.__init__:
  - 128
  - 129
  - 119
  - 120
  - 127
  openid.extensions.draft.pape5.Request.addAuthLevel:
  - 152
  - 150
  - 151
  openid.extensions.draft.pape5.Request.addPolicyURI:
  - 137
  - 146
  - 147
  openid.extensions.draft.pape5.Request.fromOpenIDRequest:
  - 177
  - 180
  - 181
  - 182
  - 184
  - 187
  openid.extensions.draft.pape5.Request.getExtensionArgs:
  - 161
  - 162
  - 164
  - 167
  - 168
  - 170
  - 172
  - 155
  - 158
  openid.extensions.draft.pape5.Request.parseExtensionArgs:
  - 193
  - 214
  - 215
  - 216
  - 217
  - 218
  - 219
  - 220
  - 223
  - 226
  - 228
  - 230
  - 234
  - 235
  - 236
  - 238
  - 243
  - 244
  - 248
  - 249
  - 253
  openid.extensions.draft.pape5.Request.preferredTypes:
  - 256
  - 272
  - 271
  openid.extensions.draft.pape5.Response:
  - 336
  - 453
  - 279
  openid.extensions.draft.pape5.Response.__init__:
  - 289
  - 290
  - 298
  - 301
  - 302
  openid.extensions.draft.pape5.Response._getNISTAuthLevel:
  - 332
  openid.extensions.draft.pape5.Response.addPolicyURI:
  - 354
  - 355
  - 341
  - 350
  openid.extensions.draft.pape5.Response.fromSuccessResponse:
  - 358
  - 371
  - 374
  - 375
  - 379
  - 380
  openid.extensions.draft.pape5.Response.getAuthLevel:
  - 319
  openid.extensions.draft.pape5.Response.getExtensionArgs:
  - 456
  - 458
  - 464
  - 467
  - 468
  - 470
  - 472
  - 473
  openid.extensions.draft.pape5.Response.parseExtensionArgs:
  - 386
  - 398
  - 399
  - 400
  - 401
  - 406
  - 410
  - 412
  - 415
  - 423
  - 424
  - 428
  - 434
  - 435
  - 439
  - 440
  - 444
  - 446
  - 447
  - 448
  - 450
  openid.extensions.draft.pape5.Response.setAuthLevel:
  - 305
  - 315
  openid.extensions.sreg:
  - 1
  - 100
  - 102
  - 103
  - 43
  - 46
  openid.extensions.sreg.SRegNamespaceError:
  - 121
  openid.extensions.sreg.SRegRequest:
  - 216
  - 177
  - 241
  openid.extensions.sreg.SRegRequest.__contains__:
  - 300
  openid.extensions.sreg.SRegRequest.__init__:
  - 201
  - 202
  - 208
  - 209
  - 211
  - 212
  openid.extensions.sreg.SRegRequest.allRequestedFields:
  - 285
  openid.extensions.sreg.SRegRequest.fromOpenIDRequest:
  - 229
  - 233
  - 235
  - 236
  - 237
  - 219
  openid.extensions.sreg.SRegRequest.getExtensionArgs:
  - 364
  - 375
  - 376
  - 378
  - 379
  - 381
  openid.extensions.sreg.SRegRequest.parseExtensionArgs:
  - 271
  - 273
  - 274
  - 275
  - 244
  - 277
  - 279
  - 282
  openid.extensions.sreg.SRegRequest.requestField:
  - 320
  - 322
  - 323
  - 326
  - 329
  - 330
  - 331
  - 335
  - 304
  - 336
  - 338
  openid.extensions.sreg.SRegRequest.requestFields:
  - 360
  - 361
  - 356
  - 341
  openid.extensions.sreg.SRegRequest.wereFieldsRequested:
  - 297
  - 293
  openid.extensions.sreg.SRegResponse:
  - 448
  - 444
  - 483
  - 388
  openid.extensions.sreg.SRegResponse.__bool__:
  - 529
  openid.extensions.sreg.SRegResponse.__contains__:
  - 518
  openid.extensions.sreg.SRegResponse.__getitem__:
  - 525
  openid.extensions.sreg.SRegResponse.__init__:
  - 410
  - 411
  openid.extensions.sreg.SRegResponse.__iter__:
  - 522
  openid.extensions.sreg.SRegResponse.extractResponse:
  - 419
  - 436
  - 438
  - 439
  - 440
  openid.extensions.sreg.SRegResponse.fromSuccessResponse:
  - 451
  - 467
  - 468
  - 469
  - 470
  - 472
  - 474
  - 477
  - 478
  openid.extensions.sreg.SRegResponse.get:
  - 497
  - 498
  - 495
  openid.extensions.sreg.SRegResponse.getExtensionArgs:
  - 486
  openid.extensions.sreg.SRegResponse.items:
  - 501
  - 503
  openid.extensions.sreg.SRegResponse.iteritems:
  - 506
  openid.extensions.sreg.SRegResponse.iterkeys:
  - 512
  openid.extensions.sreg.SRegResponse.keys:
  - 509
  openid.extensions.sreg.checkFieldName:
  - 82
  - 76
  openid.extensions.sreg.getSRegNS:
  - 136
  - 156
  - 157
  - 158
  openid.extensions.sreg.supportsSReg:
  - 107
  - 116
  - 117
  openid.fetchers:
  - 2
  openid.fetchers.CurlHTTPFetcher:
  - 311
  openid.fetchers.CurlHTTPFetcher.__init__:
  - 318
  - 319
  openid.fetchers.CurlHTTPFetcher._checkURL:
  - 347
  openid.fetchers.CurlHTTPFetcher._parseHeaders:
  - 323
  - 326
  - 329
  - 331
  - 336
  - 339
  openid.fetchers.CurlHTTPFetcher.fetch:
  - 389
  - 390
  - 391
  - 392
  - 393
  - 395
  - 397
  - 398
  - 399
  - 400
  - 401
  - 406
  - 411
  - 415
  - 418
  - 422
  - 350
  - 353
  - 356
  - 360
  - 361
  - 363
  - 365
  - 367
  - 369
  - 370
  - 373
  - 374
  - 375
  - 378
  - 381
  openid.fetchers.CurlHTTPFetcher.fetch.write_data:
  - 384
  - 387
  openid.fetchers.ExceptionWrappingFetcher:
  - 181
  openid.fetchers.ExceptionWrappingFetcher.fetch:
  - 194
  - 198
  - 199
  openid.fetchers.HTTPError:
  - 302
  openid.fetchers.HTTPFetcher:
  - 133
  openid.fetchers.HTTPFetcher.fetch:
  - 140
  openid.fetchers.HTTPFetchingError:
  - 169
  openid.fetchers.HTTPFetchingError.__init__:
  - 176
  openid.fetchers.HTTPLib2Fetcher:
  - 426
  openid.fetchers.HTTPLib2Fetcher.__init__:
  - 433
  - 441
  - 444
  - 437
  openid.fetchers.HTTPLib2Fetcher.fetch:
  - 451
  - 457
  - 489
  - 490
  - 492
  - 462
  - 467
  - 470
  openid.fetchers.HTTPResponse:
  - 115
  openid.fetchers.Urllib2Fetcher:
  - 212
  - 207
  openid.fetchers.Urllib2Fetcher._lowerCaseKeys:
  - 275
  - 276
  openid.fetchers.Urllib2Fetcher._makeResponse:
  - 260
  - 261
  - 265
  - 267
  - 244
  - 249
  - 250
  - 251
  - 252
  - 253
  - 255
  openid.fetchers.Urllib2Fetcher._parseHeaderValue:
  - 289
  - 291
  - 293
  - 294
  - 280
  - 285
  - 286
  openid.fetchers.Urllib2Fetcher.fetch:
  - 224
  - 225
  - 227
  - 231
  - 232
  - 233
  - 235
  - 236
  - 215
  - 218
  - 221
  openid.fetchers._allowedURL:
  - 163
  openid.fetchers.createHTTPFetcher:
  - 56
  - 57
  - 59
  - 53
  openid.fetchers.fetch:
  - 48
  - 49
  - 43
  openid.fetchers.getDefaultFetcher:
  - 80
  - 79
  - 71
  openid.fetchers.setDefaultFetcher:
  - 100
  - 86
  - 103
  openid.fetchers.usingCurl:
  - 107
  - 108
  - 109
  - 111
  openid.kvform:
  - 3
  openid.kvform.dictToKV:
  - 130
  openid.kvform.kvToDict:
  - 134
  openid.kvform.kvToSeq:
  - 69
  - 86
  - 87
  - 89
  - 90
  - 91
  - 97
  - 101
  - 104
  - 105
  - 107
  - 108
  - 111
  - 113
  - 114
  - 116
  - 117
  - 120
  - 122
  - 124
  openid.kvform.kvToSeq.err:
  - 81
  - 84
  openid.kvform.seqToKV:
  - 13
  - 31
  - 32
  - 33
  - 34
  - 35
  - 36
  - 38
  - 42
  - 46
  - 47
  - 49
  - 50
  - 51
  - 52
  - 53
  - 55
  - 60
  - 61
  - 63
  - 65
  openid.kvform.seqToKV.err:
  - 25
  - 28
  openid.message:
  - 1
  - 101
  - 41
  - 44
  - 48
  - 17
  openid.message.InvalidOpenIDNamespace:
  - 87
  openid.message.InvalidOpenIDNamespace.__str__:
  - 94
  openid.message.Message:
  - 283
  - 140
  openid.message.Message.__init__:
  - 162
  - 163
  - 156
  - 167
  openid.message.Message._fixNS:
  - 418
  - 423
  - 425
  - 427
  - 429
  - 403
  - 409
  - 410
  - 412
  - 413
  openid.message.Message._fromOpenIDArgs:
  - 225
  - 228
  - 229
  - 232
  - 233
  - 234
  - 236
  - 237
  - 238
  - 241
  - 243
  - 212
  - 214
  - 219
  - 220
  - 221
  - 223
  openid.message.Message._getDefaultNamespace:
  - 251
  - 252
  - 246
  openid.message.Message.copy:
  - 286
  openid.message.Message.delArg:
  - 532
  openid.message.Message.fromKVForm:
  - 280
  - 281
  openid.message.Message.fromOpenIDArgs:
  - 204
  - 205
  - 199
  openid.message.Message.fromPostArgs:
  - 193
  - 171
  - 174
  - 178
  - 179
  - 184
  - 188
  openid.message.Message.getAliasedArg:
  - 546
  - 547
  - 549
  - 550
  - 551
  - 552
  - 560
  - 565
  - 567
  - 569
  - 571
  openid.message.Message.getArg:
  - 483
  - 460
  - 478
  openid.message.Message.getArgs:
  - 489
  - 494
  - 496
  - 497
  - 498
  - 499
  - 502
  - 503
  - 506
  - 507
  openid.message.Message.getKey:
  - 449
  - 452
  - 441
  - 442
  - 443
  - 446
  openid.message.Message.hasKey:
  - 437
  openid.message.Message.isOpenID1:
  - 274
  openid.message.Message.isOpenID2:
  - 277
  openid.message.Message.setArg:
  - 520
  - 523
  - 525
  - 526
  - 528
  - 529
  openid.message.Message.setOpenIDNamespace:
  - 257
  - 262
  - 263
  - 264
  - 267
  openid.message.Message.toArgs:
  - 313
  - 316
  - 318
  - 319
  openid.message.Message.toFormMarkup:
  - 352
  - 357
  - 359
  - 360
  - 363
  - 332
  - 368
  - 371
  - 372
  - 374
  - 376
  - 380
  - 382
  openid.message.Message.toKVForm:
  - 395
  - 391
  openid.message.Message.toPostArgs:
  - 289
  - 296
  - 297
  - 299
  - 303
  - 305
  - 306
  - 308
  openid.message.Message.toURL:
  - 386
  - 388
  openid.message.Message.toURLEncoded:
  - 400
  - 398
  - 399
  openid.message.Message.updateArgs:
  - 515
  - 516
  - 517
  - 510
  openid.message.NamespaceAliasRegistrationError:
  - 109
  openid.message.NamespaceMap:
  - 575
  openid.message.NamespaceMap.__contains__:
  - 675
  openid.message.NamespaceMap.add:
  - 651
  - 654
  - 655
  - 661
  - 663
  openid.message.NamespaceMap.addAlias:
  - 608
  - 642
  - 646
  - 647
  - 616
  - 622
  - 623
  - 635
  - 636
  - 605
  - 607
  openid.message.NamespaceMap.getAlias:
  - 584
  openid.message.NamespaceMap.getNamespaceURI:
  - 587
  openid.message.NamespaceMap.items:
  - 602
  - 598
  openid.message.NamespaceMap.iterAliases:
  - 594
  - 595
  openid.message.NamespaceMap.iterNamespaceURIs:
  - 590
  - 591
  openid.message.UndefinedOpenIDNamespace:
  - 82
  openid.message.registerNamespaceAlias:
  - 128
  - 132
  - 116
  - 125
  openid.oidutil:
  - 16
  - 1
  openid.oidutil.Symbol:
  - 217
  openid.oidutil.Symbol.__eq__:
  - 226
  openid.oidutil.Symbol.__hash__:
  - 232
  openid.oidutil.appendArgs:
  - 196
  - 167
  - 168
  - 170
  - 172
  - 173
  - 175
  - 178
  - 149
  - 186
  - 187
  - 188
  - 190
  - 191
  openid.oidutil.autoSubmitHTML:
  - 48
  - 45
  - 46
  - 47
  openid.oidutil.fromBase64:
  - 208
  - 210
  - 207
  openid.oidutil.importElementTree:
  - 100
  - 103
  - 105
  - 111
  - 115
  - 90
  openid.oidutil.importSafeElementTree:
  - 82
  - 69
  - 79
  openid.oidutil.log:
  - 144
  - 127
  openid.oidutil.toBase64:
  - 200
  - 201
  - 202
  - 203
  openid.oidutil.toUnicode:
  - 32
  - 41
  - 40
  - 39
  openid.server:
  - 1
  openid.server.server:
  - 2
  - 135
  openid.server.server.AlreadySigned:
  - 1763
  openid.server.server.AssociateRequest:
  - 456
  - 377
  openid.server.server.AssociateRequest.__init__:
  - 402
  - 407
  openid.server.server.AssociateRequest.answer:
  - 481
  - 459
  - 468
  - 469
  - 470
  - 474
  - 475
  - 477
  - 478
  openid.server.server.AssociateRequest.answerUnsupported:
  - 490
  - 492
  - 495
  - 496
  - 497
  - 499
  - 500
  - 503
  - 504
  openid.server.server.AssociateRequest.fromMessage:
  - 451
  - 420
  - 421
  - 422
  - 423
  - 453
  - 426
  - 429
  - 430
  - 441
  - 413
  - 446
  - 447
  openid.server.server.CheckAuthRequest:
  - 160
  openid.server.server.CheckAuthRequest.__init__:
  - 182
  openid.server.server.CheckAuthRequest.__str__:
  - 257
  openid.server.server.CheckAuthRequest.answer:
  - 228
  - 240
  - 243
  - 244
  - 246
  - 248
  - 249
  - 251
  - 252
  openid.server.server.CheckAuthRequest.fromMessage:
  - 198
  - 205
  - 207
  - 208
  - 209
  - 211
  - 215
  - 217
  - 222
  - 223
  openid.server.server.CheckIDRequest:
  - 687
  - 590
  - 511
  openid.server.server.CheckIDRequest.__init__:
  - 577
  - 553
  - 567
  - 574
  - 575
  openid.server.server.CheckIDRequest._getNamespace:
  - 588
  - 582
  openid.server.server.CheckIDRequest.answer:
  - 790
  - 793
  - 794
  - 802
  - 804
  - 805
  - 810
  - 815
  - 817
  - 818
  - 822
  - 823
  - 824
  - 831
  - 832
  - 833
  - 834
  - 836
  - 848
  - 854
  - 859
  - 862
  - 865
  - 866
  - 868
  - 869
  - 871
  - 744
  - 872
  - 875
  - 876
  - 877
  - 881
  - 893
  - 894
  openid.server.server.CheckIDRequest.encodeToURL:
  - 929
  - 930
  - 899
  - 931
  - 908
  - 921
  - 922
  - 926
  openid.server.server.CheckIDRequest.fromMessage:
  - 648
  - 656
  - 659
  - 660
  - 665
  - 673
  - 674
  - 682
  - 593
  - 612
  - 615
  - 616
  - 623
  - 624
  - 628
  - 629
  - 630
  - 631
  - 635
  - 639
  openid.server.server.CheckIDRequest.getCancelURL:
  - 934
  - 948
  - 951
  - 955
  - 956
  - 957
  openid.server.server.CheckIDRequest.idSelect:
  - 690
  openid.server.server.CheckIDRequest.returnToVerified:
  - 714
  - 741
  openid.server.server.CheckIDRequest.trustRootValid:
  - 704
  - 705
  - 708
  - 709
  - 698
  - 702
  openid.server.server.Decoder:
  - 1379
  openid.server.server.Decoder.__init__:
  - 1390
  openid.server.server.Decoder.decode:
  - 1413
  - 1417
  - 1423
  - 1425
  - 1428
  - 1429
  - 1399
  - 1433
  - 1434
  openid.server.server.Decoder.defaultDecoder:
  - 1442
  - 1437
  openid.server.server.DiffieHellmanSHA1ServerSession:
  - 312
  - 293
  - 359
  openid.server.server.DiffieHellmanSHA1ServerSession.answer:
  - 362
  - 365
  - 366
  openid.server.server.DiffieHellmanSHA1ServerSession.fromMessage:
  - 320
  - 355
  - 357
  - 329
  - 330
  - 331
  - 334
  - 343
  - 344
  - 345
  - 346
  - 348
  - 350
  - 351
  openid.server.server.DiffieHellmanSHA256ServerSession:
  - 372
  openid.server.server.Encoder:
  - 1310
  openid.server.server.Encoder.encode:
  - 1321
  - 1326
  - 1327
  - 1328
  - 1329
  - 1331
  - 1332
  - 1333
  - 1335
  - 1336
  openid.server.server.EncodingError:
  - 1741
  openid.server.server.EncodingError.__init__:
  - 1750
  openid.server.server.EncodingError.__str__:
  - 1755
  openid.server.server.MalformedReturnURL:
  - 1780
  openid.server.server.MalformedReturnURL.__init__:
  - 1784
  openid.server.server.MalformedTrustRoot:
  - 1788
  openid.server.server.NoReturnToError:
  - 1734
  openid.server.server.OpenIDRequest:
  - 151
  openid.server.server.OpenIDResponse:
  - 966
  openid.server.server.OpenIDResponse.__init__:
  - 993
  - 988
  openid.server.server.OpenIDResponse.addExtension:
  - 1081
  - 1071
  openid.server.server.OpenIDResponse.encodeToKVForm:
  - 1084
  - 1094
  openid.server.server.OpenIDResponse.encodeToURL:
  - 1068
  - 1061
  openid.server.server.OpenIDResponse.needsSigning:
  - 1041
  - 1037
  openid.server.server.OpenIDResponse.renderAsForm:
  - 1034
  - 1027
  openid.server.server.OpenIDResponse.toFormMarkup:
  - 1000
  - 1011
  openid.server.server.OpenIDResponse.toHTML:
  - 1024
  - 1015
  openid.server.server.OpenIDResponse.whichEncoding:
  - 1053
  - 1051
  - 1052
  - 1045
  openid.server.server.PlainTextServerSession:
  - 268
  - 286
  openid.server.server.PlainTextServerSession.answer:
  - 289
  openid.server.server.PlainTextServerSession.fromMessage:
  - 284
  openid.server.server.ProtocolError:
  - 1613
  openid.server.server.ProtocolError.__init__:
  - 1632
  - 1633
  - 1620
  openid.server.server.ProtocolError.encodeToKVForm:
  - 1675
  openid.server.server.ProtocolError.encodeToURL:
  - 1672
  openid.server.server.ProtocolError.getReturnTo:
  - 1640
  - 1643
  - 1636
  openid.server.server.ProtocolError.hasReturnTo:
  - 1650
  - 1646
  openid.server.server.ProtocolError.toFormMarkup:
  - 1682
  - 1678
  openid.server.server.ProtocolError.toHTML:
  - 1690
  - 1685
  openid.server.server.ProtocolError.toMessage:
  - 1664
  - 1665
  - 1653
  - 1656
  - 1657
  - 1658
  - 1659
  - 1661
  - 1662
  openid.server.server.ProtocolError.whichEncoding:
  - 1699
  - 1700
  - 1701
  - 1706
  - 1709
  - 1710
  - 1711
  - 1693
  openid.server.server.Server:
  - 1448
  openid.server.server.Server.__init__:
  - 1517
  - 1518
  - 1519
  - 1520
  - 1522
  - 1523
  - 1502
  openid.server.server.Server.decodeRequest:
  - 1595
  - 1579
  openid.server.server.Server.encodeResponse:
  - 1609
  - 1598
  openid.server.server.Server.handleRequest:
  - 1544
  - 1545
  - 1531
  - 1543
  openid.server.server.Server.openid_associate:
  - 1569
  - 1574
  - 1575
  - 1559
  - 1566
  - 1567
  openid.server.server.Server.openid_check_authentication:
  - 1552
  - 1556
  openid.server.server.Signatory:
  - 1130
  openid.server.server.Signatory.__init__:
  - 1152
  openid.server.server.Signatory.createAssociation:
  - 1249
  - 1252
  - 1256
  - 1233
  - 1245
  - 1246
  - 1247
  openid.server.server.Signatory.getAssociation:
  - 1280
  - 1284
  - 1285
  - 1286
  - 1289
  - 1290
  - 1260
  - 1277
  openid.server.server.Signatory.invalidate:
  - 1306
  - 1302
  - 1295
  openid.server.server.Signatory.sign:
  - 1216
  - 1219
  - 1188
  - 1220
  - 1224
  - 1227
  - 1200
  - 1202
  - 1208
  - 1211
  - 1213
  openid.server.server.Signatory.verify:
  - 1161
  - 1173
  - 1174
  - 1175
  - 1180
  - 1182
  openid.server.server.SigningEncoder:
  - 1345
  openid.server.server.SigningEncoder.__init__:
  - 1349
  openid.server.server.SigningEncoder.encode:
  - 1357
  - 1368
  - 1369
  - 1372
  - 1374
  - 1375
  openid.server.server.UntrustedReturnURL:
  - 1767
  openid.server.server.UntrustedReturnURL.__init__:
  - 1770
  openid.server.server.VersionError:
  - 1729
  openid.server.server.WebResponse:
  - 1098
  openid.server.server.WebResponse.__init__:
  - 1120
  - 1114
  - 1124
  - 1125
  openid.server.trustroot:
  - 2
  - 27
  - 62
  openid.server.trustroot.RealmVerificationRedirected:
  - 67
  openid.server.trustroot.TrustRoot:
  - 312
  - 320
  - 299
  - 117
  openid.server.trustroot.TrustRoot.__str__:
  - 349
  openid.server.trustroot.TrustRoot.buildDiscoveryURL:
  - 337
  - 323
  - 335
  openid.server.trustroot.TrustRoot.checkSanity:
  - 310
  - 306
  - 307
  - 302
  openid.server.trustroot.TrustRoot.checkURL:
  - 315
  - 317
  - 318
  openid.server.trustroot.TrustRoot.isSane:
  - 163
  - 185
  - 166
  - 137
  - 170
  - 174
  - 177
  - 180
  - 181
  - 153
  - 156
  - 157
  openid.server.trustroot.TrustRoot.parse:
  - 295
  - 264
  - 265
  - 271
  - 275
  - 279
  - 248
  - 283
  - 286
  openid.server.trustroot.TrustRoot.validateURL:
  - 223
  - 226
  - 227
  - 232
  - 205
  - 206
  - 238
  - 211
  - 214
  - 217
  - 220
  - 221
  - 191
  openid.server.trustroot._extractReturnURL:
  - 360
  - 376
  openid.server.trustroot._parseURL:
  - 97
  - 99
  - 103
  - 109
  - 110
  - 84
  - 87
  - 88
  - 90
  - 91
  - 95
  openid.server.trustroot.getAllowedReturnURLs:
  - 418
  - 411
  - 415
  openid.server.trustroot.returnToMatches:
  - 389
  - 395
  - 396
  - 403
  - 383
  openid.server.trustroot.verifyReturnTo:
  - 448
  - 451
  - 454
  - 428
  - 440
  - 441
  - 446
  openid.sreg:
  - 1
  - 4
  openid.store:
  - 1
  openid.store.filestore:
  - 24
  - 1
  - 21
  openid.store.filestore.FileOpenIDStore:
  - 82
  openid.store.filestore.FileOpenIDStore.__init__:
  - 99
  - 110
  - 112
  - 114
  - 118
  - 122
  openid.store.filestore.FileOpenIDStore._allAssocs:
  - 353
  - 355
  - 359
  - 361
  - 363
  - 339
  - 340
  - 342
  - 344
  - 346
  - 347
  openid.store.filestore.FileOpenIDStore._getAssociation:
  - 263
  - 265
  - 272
  - 274
  - 277
  - 279
  - 283
  - 284
  openid.store.filestore.FileOpenIDStore._mktemp:
  - 145
  - 147
  - 150
  - 135
  openid.store.filestore.FileOpenIDStore._setup:
  - 130
  - 131
  - 132
  - 125
  openid.store.filestore.FileOpenIDStore.cleanup:
  - 376
  - 369
  - 375
  openid.store.filestore.FileOpenIDStore.cleanupAssociations:
  - 380
  - 381
  - 382
  openid.store.filestore.FileOpenIDStore.cleanupNonces:
  - 387
  - 388
  - 392
  - 393
  - 394
  - 395
  - 396
  - 397
  openid.store.filestore.FileOpenIDStore.getAssociation:
  - 225
  - 230
  - 232
  - 233
  - 235
  - 238
  - 239
  - 240
  - 241
  - 252
  - 245
  - 246
  - 247
  - 248
  - 249
  - 220
  - 255
  openid.store.filestore.FileOpenIDStore.getAssociationFilename:
  - 162
  - 165
  - 166
  - 167
  - 168
  - 169
  - 175
  - 154
  openid.store.filestore.FileOpenIDStore.removeAssociation:
  - 290
  - 294
  - 295
  - 298
  - 299
  openid.store.filestore.FileOpenIDStore.storeAssociation:
  - 194
  - 196
  - 203
  - 205
  - 216
  - 178
  - 212
  - 182
  - 183
  - 184
  - 188
  - 189
  - 191
  openid.store.filestore.FileOpenIDStore.useNonce:
  - 323
  - 325
  - 327
  - 332
  - 302
  - 306
  - 309
  - 310
  - 316
  - 317
  - 318
  openid.store.filestore._ensureDir:
  - 75
  - 67
  - 77
  openid.store.filestore._filenameEscape:
  - 39
  - 40
  - 41
  - 43
  - 44
  openid.store.filestore._removeIfPresent:
  - 48
  - 56
  - 54
  openid.store.filestore._safe64:
  - 32
  - 33
  - 34
  - 28
  - 30
  - 31
  openid.store.interface:
  - 1
  openid.store.interface.OpenIDStore:
  - 8
  openid.store.interface.OpenIDStore.cleanup:
  - 192
  - 198
  openid.store.interface.OpenIDStore.cleanupAssociations:
  - 180
  openid.store.interface.OpenIDStore.cleanupNonces:
  - 165
  openid.store.interface.OpenIDStore.getAssociation:
  - 54
  openid.store.interface.OpenIDStore.removeAssociation:
  - 99
  openid.store.interface.OpenIDStore.storeAssociation:
  - 24
  openid.store.interface.OpenIDStore.useNonce:
  - 129
  openid.store.memstore:
  - 1
  openid.store.memstore.MemoryStore:
  - 53
  openid.store.memstore.MemoryStore._getServerAssocs:
  - 66
  openid.store.memstore.MemoryStore.cleanupAssociations:
  - 110
  - 111
  - 113
  - 114
  - 117
  openid.store.memstore.MemoryStore.cleanupNonces:
  - 96
  - 98
  - 99
  - 101
  - 103
  - 105
  openid.store.memstore.MemoryStore.getAssociation:
  - 74
  - 75
  - 76
  - 78
  openid.store.memstore.MemoryStore.removeAssociation:
  - 81
  - 82
  openid.store.memstore.MemoryStore.storeAssociation:
  - 70
  - 71
  openid.store.memstore.MemoryStore.useNonce:
  - 88
  - 89
  - 85
  openid.store.memstore.ServerAssocs.best:
  - 33
  - 34
  - 28
  openid.store.memstore.ServerAssocs.cleanup:
  - 39
  - 44
  - 45
  - 46
  - 47
  - 49
  openid.store.memstore.ServerAssocs.get:
  - 17
  openid.store.nonce:
  - 20
  openid.store.nonce.checkTimestamp:
  - 64
  - 68
  - 69
  - 46
  openid.store.nonce.mkNonce:
  - 96
  - 98
  - 100
  - 83
  - 94
  - 95
  openid.store.nonce.split:
  - 24
  - 40
  - 37
  openid.store.sqlstore:
  - 1
  openid.store.sqlstore.MySQLStore:
  - 361
  openid.store.sqlstore.PostgreSQLStore:
  - 435
  - 422
  openid.store.sqlstore.PostgreSQLStore.blobDecode:
  - 510
  openid.store.sqlstore.PostgreSQLStore.blobEncode:
  - 507
  openid.store.sqlstore.PostgreSQLStore.db_set_assoc:
  - 464
  - 469
  - 470
  - 471
  - 473
  - 478
  openid.store.sqlstore.SQLStore:
  - 256
  - 35
  - 200
  - 275
  - 212
  - 245
  - 281
  - 287
  openid.store.sqlstore.SQLStore.__getattr__:
  - 164
  - 158
  openid.store.sqlstore.SQLStore.__getattr__.func:
  - 162
  openid.store.sqlstore.SQLStore.__init__:
  - 69
  - 109
  - 110
  - 113
  - 114
  openid.store.sqlstore.SQLStore._callInTransaction:
  - 170
  - 174
  - 177
  - 179
  - 181
  - 184
  - 187
  openid.store.sqlstore.SQLStore._execSQL:
  - 152
  - 139
  - 151
  openid.store.sqlstore.SQLStore._execSQL.unicode_to_str:
  - 146
  - 147
  openid.store.sqlstore.SQLStore._getSQL:
  - 133
  openid.store.sqlstore.SQLStore.blobDecode:
  - 119
  openid.store.sqlstore.SQLStore.blobEncode:
  - 125
  openid.store.sqlstore.SQLStore.txn_cleanupAssociations:
  - 284
  openid.store.sqlstore.SQLStore.txn_cleanupNonces:
  - 278
  openid.store.sqlstore.SQLStore.txn_createTables:
  - 192
  - 197
  - 198
  openid.store.sqlstore.SQLStore.txn_getAssociation:
  - 225
  - 226
  - 230
  - 231
  - 232
  - 233
  - 234
  - 235
  - 237
  - 239
  - 240
  - 215
  - 220
  - 221
  - 223
  openid.store.sqlstore.SQLStore.txn_removeAssociation:
  - 248
  - 253
  openid.store.sqlstore.SQLStore.txn_storeAssociation:
  - 208
  - 209
  - 203
  openid.store.sqlstore.SQLStore.txn_useNonce:
  - 267
  - 259
  - 263
  openid.store.sqlstore.SQLiteStore:
  - 291
  openid.store.sqlstore.SQLiteStore.blobEncode:
  - 345
  openid.store.sqlstore.SQLiteStore.useNonce:
  - 352
  - 354
  openid.store.sqlstore._inTxn:
  - 28
  - 22
  openid.store.sqlstore._inTxn.wrapped:
  - 20
  openid.urinorm:
  - 32
  - 33
  - 34
  - 35
  - 7
  - 16
  - 20
  - 23
  - 26
  - 28
  - 30
  openid.urinorm._pct_encoded_replace:
  - 52
  - 54
  openid.urinorm._pct_encoded_replace_unreserved:
  - 40
  - 41
  - 42
  - 44
  - 47
  openid.urinorm.remove_dot_segments:
  - 65
  - 67
  - 69
  - 71
  - 72
  - 73
  - 75
  - 76
  - 77
  - 81
  - 83
  - 84
  - 85
  - 86
  - 89
  - 61
  - 63
  openid.urinorm.urinorm:
  - 128
  - 131
  - 132
  - 133
  - 134
  - 136
  - 138
  - 139
  - 147
  - 148
  - 149
  - 150
  - 153
  - 154
  - 157
  - 158
  - 93
  - 97
  - 98
  - 100
  - 103
  - 104
  - 108
  - 110
  - 111
  - 114
  - 115
  - 118
  - 119
  - 122
  - 123
  - 126
  openid.yadis:
  - 17
  openid.yadis.accept:
  - 1
  openid.yadis.accept.generateAcceptHeader:
  - 32
  - 34
  - 7
  - 12
  - 13
  - 18
  - 19
  - 24
  - 26
  - 28
  - 29
  - 30
  openid.yadis.accept.getAcceptable:
  - 136
  - 126
  - 135
  openid.yadis.accept.matchTypes:
  - 99
  - 100
  - 101
  - 103
  - 104
  - 106
  - 78
  - 110
  - 111
  - 112
  - 115
  - 117
  - 118
  - 121
  - 91
  openid.yadis.accept.parseAcceptHeader:
  - 38
  - 70
  - 72
  - 73
  - 45
  - 47
  - 48
  - 50
  - 51
  - 55
  - 57
  - 58
  - 59
  - 60
  - 62
  openid.yadis.constants:
  - 9
  openid.yadis.discover.DiscoveryFailure:
  - 14
  openid.yadis.discover.DiscoveryFailure.__init__:
  - 18
  openid.yadis.discover.DiscoveryResult:
  - 23
  openid.yadis.discover.DiscoveryResult.__init__:
  - 42
  openid.yadis.discover.DiscoveryResult.isXRDS:
  - 56
  - 55
  openid.yadis.discover.DiscoveryResult.usedYadisLocation:
  - 49
  - 50
  openid.yadis.discover.discover:
  - 98
  - 74
  - 75
  - 76
  - 93
  - 86
  - 88
  - 90
  - 91
  - 92
  - 61
  openid.yadis.discover.whereIsYadis:
  - 163
  - 136
  - 105
  - 137
  - 138
  - 139
  - 143
  - 145
  - 116
  - 151
  - 120
  - 121
  - 125
  - 158
  - 127
  openid.yadis.etxrd:
  - 2
  - 106
  - 107
  - 108
  - 109
  - 110
  - 111
  - 114
  - 218
  - 30
  - 31
  openid.yadis.etxrd.XRDSError:
  - 37
  openid.yadis.etxrd.XRDSFraud:
  - 44
  openid.yadis.etxrd._Max:
  - 204
  openid.yadis.etxrd._Max.__eq__:
  - 215
  openid.yadis.etxrd._Max.__lt__:
  - 212
  openid.yadis.etxrd.expandService:
  - 290
  - 291
  - 295
  - 296
  - 297
  - 287
  openid.yadis.etxrd.expandServices:
  - 315
  - 316
  - 303
  openid.yadis.etxrd.getCanonicalID:
  - 195
  - 196
  - 166
  - 177
  - 178
  - 181
  - 185
  - 187
  - 188
  - 189
  - 190
  openid.yadis.etxrd.getPriority:
  - 241
  - 246
  openid.yadis.etxrd.getPriorityStrict:
  - 228
  - 229
  - 230
  - 231
  - 222
  openid.yadis.etxrd.getTypeURIs:
  - 282
  - 279
  openid.yadis.etxrd.getXRDExpiration:
  - 161
  - 162
  - 141
  - 154
  - 155
  openid.yadis.etxrd.getYadisXRD:
  - 129
  - 124
  - 134
  openid.yadis.etxrd.isXRDS:
  - 118
  - 119
  openid.yadis.etxrd.iterServices:
  - 265
  - 266
  - 262
  openid.yadis.etxrd.mkXRDSTag:
  - 97
  - 102
  openid.yadis.etxrd.mkXRDTag:
  - 88
  - 93
  openid.yadis.etxrd.parseXRDS:
  - 64
  - 68
  - 72
  - 73
  - 50
  - 63
  openid.yadis.etxrd.prioSort:
  - 257
  - 252
  - 255
  openid.yadis.etxrd.sortedURIs:
  - 274
  - 270
  openid.yadis.filters:
  - 1
  - 154
  openid.yadis.filters.BasicServiceEndpoint:
  - 67
  - 22
  openid.yadis.filters.BasicServiceEndpoint.fromBasicServiceEndpoint:
  - 56
  openid.yadis.filters.BasicServiceEndpoint.matchTypes:
  - 42
  openid.yadis.filters.CompoundFilter:
  - 136
  openid.yadis.filters.CompoundFilter.getServiceEndpoints:
  - 144
  - 147
  - 148
  - 149
  openid.yadis.filters.IFilter:
  - 71
  openid.yadis.filters.IFilter.getServiceEndpoints:
  - 75
  openid.yadis.filters.TransformFilterMaker:
  - 80
  openid.yadis.filters.TransformFilterMaker.__init__:
  - 94
  openid.yadis.filters.TransformFilterMaker.applyFilters:
  - 123
  - 125
  - 126
  - 127
  openid.yadis.filters.TransformFilterMaker.getServiceEndpoints:
  - 104
  - 109
  - 113
  - 116
  - 117
  - 118
  openid.yadis.filters.mkCompoundFilter:
  - 192
  - 193
  - 197
  - 198
  - 201
  - 205
  - 207
  - 176
  - 208
  - 210
  - 213
  - 185
  - 187
  - 190
  openid.yadis.filters.mkFilter:
  - 164
  - 168
  - 170
  - 172
  - 159
  openid.yadis.manager.Discovery:
  - 78
  openid.yadis.manager.Discovery.__init__:
  - 99
  - 102
  openid.yadis.manager.Discovery.cleanup:
  - 137
  - 147
  - 148
  - 149
  - 150
  openid.yadis.manager.Discovery.createManager:
  - 196
  - 197
  - 200
  - 203
  - 204
  - 189
  openid.yadis.manager.Discovery.destroyManager:
  - 208
  - 217
  - 218
  openid.yadis.manager.Discovery.getManager:
  - 167
  - 176
  - 180
  - 181
  - 183
  openid.yadis.manager.Discovery.getNextService:
  - 128
  - 129
  - 130
  - 108
  - 120
  - 121
  - 122
  - 124
  - 125
  - 126
  openid.yadis.manager.Discovery.getSessionKey:
  - 159
  openid.yadis.manager.YadisServiceManager:
  - 2
  openid.yadis.manager.YadisServiceManager.__getattr__:
  - 33
  openid.yadis.manager.YadisServiceManager.__init__:
  - 21
  - 14
  openid.yadis.manager.YadisServiceManager.__setattr__:
  - 38
  openid.yadis.manager.YadisServiceManager._from_dict:
  - 30
  openid.yadis.manager.YadisServiceManager.current:
  - 59
  openid.yadis.manager.YadisServiceManager.next_service:
  - 52
  - 47
  openid.yadis.manager.YadisServiceManager.service_count:
  - 43
  - 44
  openid.yadis.manager.YadisServiceManager.started:
  - 69
  openid.yadis.manager.YadisServiceManager.store:
  - 73
  openid.yadis.parsehtml:
  - 37
  openid.yadis.parsehtml.MetaNotFound:
  - 22
  openid.yadis.parsehtml.ParseDone:
  - 16
  openid.yadis.parsehtml.YadisHTMLParser:
  - 60
  openid.yadis.parsehtml.YadisHTMLParser.__init__:
  - 104
  - 106
  - 100
  openid.yadis.parsehtml.YadisHTMLParser.feed:
  - 169
  - 166
  - 167
  openid.yadis.parsehtml.YadisHTMLParser.handle_endtag:
  - 116
  - 117
  openid.yadis.parsehtml.YadisHTMLParser.handle_starttag:
  - 160
  - 129
  - 162
  - 132
  - 136
  - 140
  - 155
  - 143
  - 145
  - 147
  - 150
  - 151
  - 152
  - 153
  - 154
  - 123
  - 124
  - 126
  openid.yadis.parsehtml.findHTMLMeta:
  - 194
  - 196
  - 199
  - 201
  - 173
  - 206
  - 185
  - 189
  - 190
  openid.yadis.parsehtml.substituteEntities:
  - 56
  openid.yadis.parsehtml.substituteMO:
  - 41
  - 42
  - 43
  - 44
  - 47
  - 49
  - 50
  - 52
  openid.yadis.services.applyFilter:
  - 36
  - 48
  - 49
  - 52
  - 53
  - 54
  openid.yadis.services.getServiceEndpoints:
  - 9
  - 26
  - 28
  openid.yadis.xri:
  - 2
  - 34
  openid.yadis.xri.XRI:
  - 120
  - 111
  openid.yadis.xri._escape_xref:
  - 38
  - 40
  - 41
  - 42
  - 43
  openid.yadis.xri.escapeForIRI:
  - 48
  - 49
  - 50
  openid.yadis.xri.identifierScheme:
  - 16
  - 20
  openid.yadis.xri.iriToURI:
  - 64
  - 60
  - 62
  - 63
  openid.yadis.xri.providerIsAuthoritative:
  - 73
  - 68
  openid.yadis.xri.rootAuthority:
  - 97
  - 98
  - 103
  - 104
  - 107
  - 79
  - 88
  - 90
  - 91
  openid.yadis.xri.toIRINormal:
  - 28
  - 29
  - 31
  openid.yadis.xri.toURINormal:
  - 56
  - 55
  openid.yadis.xrires:
  - 2
  openid.yadis.xrires.ProxyResolver:
  - 15
  openid.yadis.xrires.ProxyResolver.query:
  - 82
  - 83
  - 84
  - 85
  - 55
  - 89
  - 90
  - 91
  - 92
  openid.yadis.xrires.ProxyResolver.queryURL:
  - 46
  - 51
  - 37
  - 22
  openid.yadis.xrires._appendArgs:
  - 101
  - 104
  - 105
  - 106
  - 108
  - 118
  - 123
Fuzzer filename: /src/fuzz_html_parse.py
Inheritance:
  openid.association.Association:
  - object
  openid.association.SessionNegotiator:
  - object
  openid.consumer.consumer.AuthRequest:
  - object
  openid.consumer.consumer.CancelResponse:
  - Response
  openid.consumer.consumer.Consumer:
  - object
  openid.consumer.consumer.DiffieHellmanSHA1ConsumerSession:
  - object
  openid.consumer.consumer.DiffieHellmanSHA256ConsumerSession:
  - DiffieHellmanSHA1ConsumerSession
  openid.consumer.consumer.FailureResponse:
  - Response
  openid.consumer.consumer.GenericConsumer:
  - object
  openid.consumer.consumer.PlainTextConsumerSession:
  - object
  openid.consumer.consumer.ProtocolError:
  - ValueError
  openid.consumer.consumer.Response:
  - object
  openid.consumer.consumer.ServerError:
  - Exception
  openid.consumer.consumer.SetupNeededError:
  - Exception
  openid.consumer.consumer.SetupNeededResponse:
  - Response
  openid.consumer.consumer.SuccessResponse:
  - Response
  openid.consumer.consumer.TypeURIMismatch:
  - ProtocolError
  openid.consumer.discover.OpenIDServiceEndpoint:
  - dict
  openid.cryptutil.HashContainer:
  - object
  openid.dh.DiffieHellman:
  - object
  openid.extension.Extension:
  - object
  openid.extensions.ax.AXError:
  - ValueError
  openid.extensions.ax.AXKeyValueMessage:
  - AXMessage
  openid.extensions.ax.AXMessage: []
  openid.extensions.ax.AttrInfo:
  - object
  openid.extensions.ax.FetchRequest:
  - AXMessage
  openid.extensions.ax.FetchResponse:
  - AXKeyValueMessage
  openid.extensions.ax.NotAXMessage:
  - AXError
  openid.extensions.ax.StoreRequest:
  - AXKeyValueMessage
  openid.extensions.ax.StoreResponse:
  - AXMessage
  openid.extensions.draft.pape2.Request:
  - Extension
  openid.extensions.draft.pape2.Response:
  - Extension
  openid.extensions.draft.pape5.PAPEExtension:
  - Extension
  openid.extensions.draft.pape5.Request:
  - PAPEExtension
  openid.extensions.draft.pape5.Response:
  - PAPEExtension
  openid.extensions.sreg.SRegNamespaceError:
  - ValueError
  openid.extensions.sreg.SRegRequest:
  - Extension
  openid.extensions.sreg.SRegResponse:
  - Extension
  openid.fetchers.CurlHTTPFetcher:
  - HTTPFetcher
  openid.fetchers.ExceptionWrappingFetcher:
  - HTTPFetcher
  openid.fetchers.HTTPError:
  - HTTPFetchingError
  openid.fetchers.HTTPFetcher:
  - object
  openid.fetchers.HTTPFetchingError:
  - Exception
  openid.fetchers.HTTPLib2Fetcher:
  - HTTPFetcher
  openid.fetchers.HTTPResponse:
  - object
  openid.fetchers.Urllib2Fetcher:
  - HTTPFetcher
  openid.kvform.KVFormError:
  - ValueError
  openid.message.InvalidOpenIDNamespace:
  - ValueError
  openid.message.Message:
  - object
  openid.message.NamespaceAliasRegistrationError:
  - Exception
  openid.message.NamespaceMap:
  - object
  openid.message.UndefinedOpenIDNamespace:
  - ValueError
  openid.oidutil.Symbol:
  - object
  openid.server.server.AlreadySigned:
  - EncodingError
  openid.server.server.AssociateRequest:
  - OpenIDRequest
  openid.server.server.CheckAuthRequest:
  - OpenIDRequest
  openid.server.server.CheckIDRequest:
  - OpenIDRequest
  openid.server.server.Decoder:
  - object
  openid.server.server.DiffieHellmanSHA1ServerSession:
  - object
  openid.server.server.DiffieHellmanSHA256ServerSession:
  - DiffieHellmanSHA1ServerSession
  openid.server.server.Encoder:
  - object
  openid.server.server.EncodingError:
  - Exception
  openid.server.server.MalformedReturnURL:
  - ProtocolError
  openid.server.server.MalformedTrustRoot:
  - ProtocolError
  openid.server.server.NoReturnToError:
  - Exception
  openid.server.server.OpenIDRequest:
  - object
  openid.server.server.OpenIDResponse:
  - object
  openid.server.server.PlainTextServerSession:
  - object
  openid.server.server.ProtocolError:
  - Exception
  openid.server.server.Server:
  - object
  openid.server.server.Signatory:
  - object
  openid.server.server.SigningEncoder:
  - Encoder
  openid.server.server.UntrustedReturnURL:
  - ProtocolError
  openid.server.server.VersionError:
  - Exception
  openid.server.server.WebResponse:
  - object
  openid.server.trustroot.RealmVerificationRedirected:
  - Exception
  openid.server.trustroot.TrustRoot:
  - object
  openid.store.filestore.FileOpenIDStore:
  - OpenIDStore
  openid.store.interface.OpenIDStore:
  - object
  openid.store.memstore.MemoryStore:
  - object
  openid.store.memstore.ServerAssocs:
  - object
  openid.store.sqlstore.MySQLStore:
  - SQLStore
  openid.store.sqlstore.PostgreSQLStore:
  - SQLStore
  openid.store.sqlstore.SQLStore:
  - OpenIDStore
  openid.store.sqlstore.SQLiteStore:
  - SQLStore
  openid.yadis.discover.DiscoveryFailure:
  - Exception
  openid.yadis.discover.DiscoveryResult:
  - object
  openid.yadis.etxrd.XRDSError:
  - Exception
  openid.yadis.etxrd.XRDSFraud:
  - XRDSError
  openid.yadis.etxrd._Max:
  - object
  openid.yadis.filters.BasicServiceEndpoint:
  - object
  openid.yadis.filters.CompoundFilter:
  - object
  openid.yadis.filters.IFilter:
  - object
  openid.yadis.filters.TransformFilterMaker:
  - object
  openid.yadis.manager.Discovery:
  - object
  openid.yadis.manager.YadisServiceManager:
  - dict
  openid.yadis.parsehtml.MetaNotFound:
  - Exception
  openid.yadis.parsehtml.ParseDone:
  - Exception
  openid.yadis.parsehtml.YadisHTMLParser:
  - HTMLParser
  openid.yadis.xrires.ProxyResolver:
  - object
ep:
  func_name: TestOneInput
  module: '...fuzz_html_parse'
