All classes:
- oauth2client._pure_python_crypt.RsaVerifier
- oauth2client._pure_python_crypt.RsaSigner
- oauth2client.crypt.AppIdentityError
- oauth2client._openssl_crypt.OpenSSLVerifier
- oauth2client._openssl_crypt.OpenSSLSigner
- oauth2client._pycrypto_crypt.PyCryptoVerifier
- oauth2client._pycrypto_crypt.PyCryptoSigner
- oauth2client.clientsecrets.Error
- oauth2client.clientsecrets.InvalidClientSecretsError
- oauth2client.transport.MemoryCache
- oauth2client.client.SETTINGS
- oauth2client.client.Error
- oauth2client.client.FlowExchangeError
- oauth2client.client.AccessTokenRefreshError
- oauth2client.client.HttpAccessTokenRefreshError
- oauth2client.client.TokenRevokeError
- oauth2client.client.UnknownClientSecretsFlowError
- oauth2client.client.AccessTokenCredentialsError
- oauth2client.client.VerifyJwtTokenError
- oauth2client.client.NonAsciiHeaderError
- oauth2client.client.ApplicationDefaultCredentialsError
- oauth2client.client.OAuth2DeviceCodeError
- oauth2client.client.CryptoUnavailableError
- oauth2client.client.Credentials
- oauth2client.client.Flow
- oauth2client.client.Storage
- oauth2client.client.OAuth2Credentials
- oauth2client.client.AccessTokenCredentials
- oauth2client.client.GoogleCredentials
- oauth2client.service_account.ServiceAccountCredentials
- oauth2client.service_account._JWTAccessCredentials
- oauth2client.contrib._appengine_ndb.SiteXsrfSecretKeyNDB
- oauth2client.contrib._appengine_ndb.FlowNDBProperty
- oauth2client.contrib._appengine_ndb.CredentialsNDBProperty
- oauth2client.contrib._appengine_ndb.CredentialsNDBModel
- oauth2client.contrib.appengine.SiteXsrfSecretKey
- oauth2client.contrib.appengine.AppAssertionCredentials
- oauth2client.contrib.appengine.FlowProperty
- oauth2client.contrib.appengine.CredentialsProperty
- oauth2client.contrib.appengine.StorageByKeyName
- oauth2client.contrib.appengine.CredentialsModel
- oauth2client.contrib.appengine.OAuth2Decorator
- oauth2client.contrib.appengine.OAuth2Decorator.callback_handler.OAuth2Handler
- oauth2client.contrib.appengine.OAuth2DecoratorFromClientSecrets
- oauth2client.contrib.gce.AppAssertionCredentials
- oauth2client.client.AssertionCredentials
- oauth2client.client.DeviceFlowInfo
- oauth2client.client.OAuth2WebServerFlow
- oauth2client.tools.ClientRedirectServer
- oauth2client.tools.ClientRedirectHandler
- oauth2client.file.Storage
- oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend
- oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage
- oauth2client.contrib.sqlalchemy.CredentialsType
- oauth2client.contrib.sqlalchemy.Storage
- oauth2client.contrib.keyring_storage.Storage
- oauth2client.contrib.devshell.Error
- oauth2client.contrib.devshell.CommunicationError
- oauth2client.contrib.devshell.NoDevshellServer
- oauth2client.contrib.devshell.CredentialInfoResponse
- oauth2client.contrib.devshell.DevshellCredentials
- oauth2client.contrib.dictionary_storage.DictionaryStorage
- oauth2client.contrib.flask_util.UserOAuth2
- oauth2client.contrib.django_util.storage.DjangoORMStorage
- oauth2client.contrib.django_util.OAuth2Settings
- oauth2client.contrib.django_util.UserOAuth2
- oauth2client.contrib.django_util.apps.GoogleOAuth2HelperConfig
- oauth2client.contrib.django_util.models.CredentialsField
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_helpers'
    functionSourceFile: '...fuzz_helpers'
    functionUses: 0
    functionsReached:
    - atheris.Fuzz
    - atheris.Setup
    - atheris.instrument_imports
    - '...fuzz_helpers.main'
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.instrument_imports
    functionSourceFile: atheris
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 22
    functionName: '...fuzz_helpers.TestInput'
    functionSourceFile: '...fuzz_helpers'
    functionUses: 0
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - base64.urlsafe_b64decode
    - os.path.isdir
    - query_params.update
    - oauth2client._helpers._from_bytes
    - <builtin>.str
    - <builtin>.isinstance
    - value.decode
    - oauth2client._helpers._json_encode
    - value.encode
    - base64.urlsafe_b64encode
    - oauth2client._helpers.scopes_to_string
    - oauth2client._helpers._urlsafe_b64decode
    - fdp.ConsumeUnicodeNoSurrogates
    - os.path.isfile
    - json.dumps
    - oauth2client._helpers._add_query_parameter
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers.parse_unique_urlencoded
    - atheris.FuzzedDataProvider
    - <builtin>.len
    - oauth2client._helpers._urlsafe_b64encode
    - os.path.islink
    - _MISSING_FILE_MESSAGE.format
    - six.moves.urllib.parse.parse_qs
    - six.moves.urllib.parse.urlencode
    - six.iteritems
    - warnings.warn
    - parts._replace
    - oauth2client._helpers.validate_file
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    - scopes.split
    - oauth2client._helpers.string_to_scopes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.FuzzedDataProvider
    functionSourceFile: atheris
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.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: 1
    argDefaultValues: []
    argNames:
    - scopes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 143
    functionName: oauth2client._helpers.scopes_to_string
    functionSourceFile: oauth2client._helpers
    functionUses: 44
    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:
    - scopes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 162
    functionName: oauth2client._helpers.string_to_scopes
    functionSourceFile: oauth2client._helpers
    functionUses: 15
    functionsReached:
    - <builtin>.isinstance
    - scopes.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - content
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 182
    functionName: oauth2client._helpers.parse_unique_urlencoded
    functionSourceFile: oauth2client._helpers
    functionUses: 31
    functionsReached:
    - six.moves.urllib.parse.parse_qs
    - <builtin>.len
    - six.iteritems
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - uri
    - params
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 205
    functionName: oauth2client._helpers.update_query_params
    functionSourceFile: oauth2client._helpers
    functionUses: 25
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - oauth2client._helpers.parse_unique_urlencoded
    - six.moves.urllib.parse.urlencode
    - query_params.update
    - six.iteritems
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - <builtin>.len
    - six.moves.urllib.parse.parse_qs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - url
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 230
    functionName: oauth2client._helpers._add_query_parameter
    functionSourceFile: oauth2client._helpers
    functionUses: 11
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - six.moves.urllib.parse.urlencode
    - oauth2client._helpers.parse_unique_urlencoded
    - query_params.update
    - six.iteritems
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - <builtin>.len
    - oauth2client._helpers.update_query_params
    - six.moves.urllib.parse.parse_qs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 249
    functionName: oauth2client._helpers.validate_file
    functionSourceFile: oauth2client._helpers
    functionUses: 3
    functionsReached:
    - os.path.isdir
    - warnings.warn
    - os.path.isfile
    - os.path.islink
    - _MISSING_FILE_MESSAGE.format
    linkageType: pythonLinkage
    raised:
    - IOError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 277
    functionName: oauth2client._helpers._json_encode
    functionSourceFile: oauth2client._helpers
    functionUses: 10
    functionsReached:
    - json.dumps
    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 0x7f1d2db101f0>
    argNames:
    - value
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 281
    functionName: oauth2client._helpers._to_bytes
    functionSourceFile: oauth2client._helpers
    functionUses: 72
    functionsReached:
    - value.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: 310
    functionName: oauth2client._helpers._from_bytes
    functionSourceFile: oauth2client._helpers
    functionUses: 71
    functionsReached:
    - <builtin>.isinstance
    - value.decode
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - raw_bytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 332
    functionName: oauth2client._helpers._urlsafe_b64encode
    functionSourceFile: oauth2client._helpers
    functionUses: 10
    functionsReached:
    - value.encode
    - base64.urlsafe_b64encode
    - <builtin>.isinstance
    - oauth2client._helpers._to_bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - b64string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 337
    functionName: oauth2client._helpers._urlsafe_b64decode
    functionSourceFile: oauth2client._helpers
    functionUses: 12
    functionsReached:
    - base64.urlsafe_b64decode
    - oauth2client._helpers._to_bytes
    - <builtin>.isinstance
    - value.encode
    - <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>.str
    functionSourceFile: <builtin>
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 80
    functionName: '...fuzz_helpers.main'
    functionSourceFile: '...fuzz_helpers'
    functionUses: 1
    functionsReached:
    - atheris.Fuzz
    - atheris.Setup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Setup
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Fuzz
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client._helpers
    functionSourceFile: oauth2client._helpers
    functionUses: 0
    functionsReached:
    - <builtin>.frozenset
    - 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: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.frozenset
    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:
    - max_positional_args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 44
    functionName: oauth2client._helpers.positional
    functionSourceFile: oauth2client._helpers
    functionUses: 11
    functionsReached:
    - oauth2client._helpers.positional
    - <builtin>.isinstance
    - <builtin>.len
    - functools.wraps
    - inspect.getargspec
    - oauth2client._helpers.positional.positional_decorator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - wrapped
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 116
    functionName: oauth2client._helpers.positional.positional_decorator
    functionSourceFile: oauth2client._helpers
    functionUses: 12
    functionsReached:
    - functools.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: functools.wraps
    functionSourceFile: functools
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 118
    functionName: oauth2client._helpers.positional.positional_decorator.positional_wrapper
    functionSourceFile: oauth2client._helpers
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - logger.warning
    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>.len
    functionSourceFile: <builtin>
    functionUses: 75
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logger.warning
    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: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 149
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.getargspec
    functionSourceFile: inspect
    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: scopes.split
    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: six.moves.urllib.parse.parse_qs
    functionSourceFile: six
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: six.iteritems
    functionSourceFile: six
    functionUses: 54
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: six.moves.urllib.parse.urlparse
    functionSourceFile: six
    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: query_params.update
    functionSourceFile: <builtin>
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: six.moves.urllib.parse.urlencode
    functionSourceFile: six
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parts._replace
    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: six.moves.urllib.parse.urlunparse
    functionSourceFile: six
    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: os.path.islink
    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: os.path.isdir
    functionSourceFile: os
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.isfile
    functionSourceFile: os
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _MISSING_FILE_MESSAGE.format
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: warnings.warn
    functionSourceFile: warnings
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - raw_key_input
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 258
    functionName: oauth2client._helpers._parse_pem_key
    functionSourceFile: oauth2client._helpers
    functionUses: 28
    functionsReached:
    - raw_key_input.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: raw_key_input.find
    functionSourceFile: <builtin>
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: json.dumps
    functionSourceFile: json
    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: value.encode
    functionSourceFile: <builtin>
    functionUses: 73
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.decode
    functionSourceFile: <builtin>
    functionUses: 72
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.urlsafe_b64encode
    functionSourceFile: base64
    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: base64.urlsafe_b64decode
    functionSourceFile: base64
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: oauth2client
    functionSourceFile: oauth2client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client.crypt
    functionSourceFile: oauth2client.crypt
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 40
    functionName: oauth2client.crypt._bad_pkcs12_key_as_pem
    functionSourceFile: oauth2client.crypt
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d0dbd60>
    argNames:
    - signer
    - payload
    - key_id
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 74
    functionName: oauth2client.crypt.make_signed_jwt
    functionSourceFile: oauth2client.crypt
    functionUses: 8
    functionsReached:
    - logger.debug
    - oauth2client._helpers._to_bytes
    - Crypto.Hash.SHA256.new
    - segments.append
    - <builtin>.str
    - <builtin>.isinstance
    - oauth2client._helpers._json_encode
    - OpenSSL.crypto.sign
    - value.encode
    - base64.urlsafe_b64encode
    - oauth2client._helpers._urlsafe_b64encode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.sign
    - json.dumps
    - Crypto.Signature.PKCS1_v1_5.new
    - oauth2client._openssl_crypt.OpenSSLSigner.sign
    linkageType: pythonLinkage
    raised: []
    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: 2
    functionLinenumber: 89
    functionName: oauth2client._pycrypto_crypt.PyCryptoSigner.sign
    functionSourceFile: oauth2client._pycrypto_crypt
    functionUses: 10
    functionsReached:
    - oauth2client._helpers._to_bytes
    - Crypto.Hash.SHA256.new
    - <builtin>.isinstance
    - value.encode
    - Crypto.Signature.PKCS1_v1_5.new
    linkageType: pythonLinkage
    raised: []
    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: 2
    functionLinenumber: 87
    functionName: oauth2client._openssl_crypt.OpenSSLSigner.sign
    functionSourceFile: oauth2client._openssl_crypt
    functionUses: 10
    functionsReached:
    - OpenSSL.crypto.sign
    - value.encode
    - <builtin>.isinstance
    - oauth2client._helpers._to_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: segments.append
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logger.debug
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - message
    - signature
    - certs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 105
    functionName: oauth2client.crypt._verify_signature
    functionSourceFile: oauth2client.crypt
    functionUses: 2
    functionsReached:
    - base64.urlsafe_b64decode
    - oauth2client._pure_python_crypt._bit_list_to_bytes
    - OpenSSL.crypto.verify
    - OpenSSL.crypto.load_certificate
    - <builtin>.isinstance
    - OpenSSL.crypto.load_privatekey
    - value.encode
    - pyasn1_modules.rfc2459.Certificate
    - <builtin>.bytes
    - oauth2client._openssl_crypt.OpenSSLVerifier.__init__
    - rsa.pem.load_pem
    - six.moves.xrange
    - rsa.PublicKey.load_pkcs1
    - oauth2client._pycrypto_crypt.PyCryptoVerifier.__init__
    - byte_vals.append
    - Crypto.Hash.SHA256.new
    - <builtin>.bytearray
    - oauth2client._openssl_crypt.OpenSSLVerifier.verify
    - oauth2client._helpers._urlsafe_b64decode
    - oauth2client._pure_python_crypt.RsaVerifier.__init__
    - oauth2client._openssl_crypt.OpenSSLVerifier.from_string
    - oauth2client._pycrypto_crypt.PyCryptoVerifier.from_string
    - Crypto.Util.asn1.DerSequence.decode
    - oauth2client._helpers._to_bytes
    - Crypto.Util.asn1.DerSequence
    - <builtin>.len
    - <builtin>.sum
    - Crypto.PublicKey.RSA.importKey
    - Crypto.Signature.PKCS1_v1_5.new
    - <builtin>.zip
    - oauth2client._pycrypto_crypt.PyCryptoVerifier.verify
    - key_pem.replace
    - oauth2client._pure_python_crypt.RsaVerifier.from_string
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised:
    - AppIdentityError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - key_pem
    - is_x509_cert
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 95
    functionName: oauth2client._pure_python_crypt.RsaVerifier.from_string
    functionSourceFile: oauth2client._pure_python_crypt
    functionUses: 3
    functionsReached:
    - rsa.PublicKey.load_pkcs1
    - byte_vals.append
    - oauth2client._pure_python_crypt._bit_list_to_bytes
    - oauth2client._helpers._to_bytes
    - <builtin>.zip
    - <builtin>.bytearray
    - <builtin>.isinstance
    - value.encode
    - pyasn1_modules.rfc2459.Certificate
    - oauth2client._pure_python_crypt.RsaVerifier.__init__
    - <builtin>.bytes
    - <builtin>.len
    - <builtin>.sum
    - rsa.pem.load_pem
    - six.moves.xrange
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - key_pem
    - is_x509_cert
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 54
    functionName: oauth2client._openssl_crypt.OpenSSLVerifier.from_string
    functionSourceFile: oauth2client._openssl_crypt
    functionUses: 3
    functionsReached:
    - oauth2client._helpers._to_bytes
    - OpenSSL.crypto.load_certificate
    - OpenSSL.crypto.load_privatekey
    - <builtin>.isinstance
    - value.encode
    - oauth2client._openssl_crypt.OpenSSLVerifier.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - key_pem
    - is_x509_cert
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 53
    functionName: oauth2client._pycrypto_crypt.PyCryptoVerifier.from_string
    functionSourceFile: oauth2client._pycrypto_crypt
    functionUses: 3
    functionsReached:
    - oauth2client._pycrypto_crypt.PyCryptoVerifier.__init__
    - base64.urlsafe_b64decode
    - oauth2client._helpers._to_bytes
    - <builtin>.isinstance
    - oauth2client._helpers._urlsafe_b64decode
    - Crypto.Util.asn1.DerSequence
    - value.encode
    - <builtin>.len
    - key_pem.replace
    - Crypto.PublicKey.RSA.importKey
    - Crypto.Util.asn1.DerSequence.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - message
    - signature
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 36
    functionName: oauth2client._pycrypto_crypt.PyCryptoVerifier.verify
    functionSourceFile: oauth2client._pycrypto_crypt
    functionUses: 3
    functionsReached:
    - oauth2client._helpers._to_bytes
    - Crypto.Hash.SHA256.new
    - <builtin>.isinstance
    - value.encode
    - Crypto.Signature.PKCS1_v1_5.new
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - message
    - signature
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 32
    functionName: oauth2client._openssl_crypt.OpenSSLVerifier.verify
    functionSourceFile: oauth2client._openssl_crypt
    functionUses: 3
    functionsReached:
    - value.encode
    - <builtin>.isinstance
    - OpenSSL.crypto.verify
    - oauth2client._helpers._to_bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - payload_dict
    - audience
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 126
    functionName: oauth2client.crypt._check_audience
    functionSourceFile: oauth2client.crypt
    functionUses: 2
    functionsReached:
    - payload_dict.get
    linkageType: pythonLinkage
    raised:
    - AppIdentityError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: payload_dict.get
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - payload_dict
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 154
    functionName: oauth2client.crypt._verify_time_range
    functionSourceFile: oauth2client.crypt
    functionUses: 2
    functionsReached:
    - <builtin>.int
    - payload_dict.get
    - time.time
    linkageType: pythonLinkage
    raised:
    - AppIdentityError
    returnType: N/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: 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>.int
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d377040>
    argNames:
    - jwt
    - certs
    - audience
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 207
    functionName: oauth2client.crypt.verify_signed_jwt_with_certs
    functionSourceFile: oauth2client.crypt
    functionUses: 1
    functionsReached:
    - base64.urlsafe_b64decode
    - jwt.split
    - OpenSSL.crypto.verify
    - oauth2client._pure_python_crypt._bit_list_to_bytes
    - OpenSSL.crypto.load_certificate
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - value.encode
    - pyasn1_modules.rfc2459.Certificate
    - <builtin>.bytes
    - oauth2client._openssl_crypt.OpenSSLVerifier.__init__
    - rsa.pem.load_pem
    - six.moves.xrange
    - rsa.PublicKey.load_pkcs1
    - oauth2client._pycrypto_crypt.PyCryptoVerifier.__init__
    - byte_vals.append
    - json.loads
    - Crypto.Hash.SHA256.new
    - jwt.count
    - oauth2client._openssl_crypt.OpenSSLVerifier.verify
    - <builtin>.bytearray
    - oauth2client._helpers._urlsafe_b64decode
    - oauth2client._pure_python_crypt.RsaVerifier.__init__
    - oauth2client._openssl_crypt.OpenSSLVerifier.from_string
    - oauth2client._pycrypto_crypt.PyCryptoVerifier.from_string
    - oauth2client.crypt._verify_signature
    - Crypto.Util.asn1.DerSequence.decode
    - certs.values
    - oauth2client._helpers._to_bytes
    - Crypto.Util.asn1.DerSequence
    - oauth2client.crypt._check_audience
    - <builtin>.len
    - <builtin>.sum
    - time.time
    - <builtin>.int
    - Crypto.PublicKey.RSA.importKey
    - Crypto.Signature.PKCS1_v1_5.new
    - oauth2client.crypt._verify_time_range
    - <builtin>.zip
    - oauth2client._pycrypto_crypt.PyCryptoVerifier.verify
    - key_pem.replace
    - oauth2client._pure_python_crypt.RsaVerifier.from_string
    - payload_dict.get
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised:
    - AppIdentityError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.count
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.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: json.loads
    functionSourceFile: json
    functionUses: 66
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: certs.values
    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: 1
    functionLinenumber: -1
    functionName: oauth2client._pure_python_crypt
    functionSourceFile: oauth2client._pure_python_crypt
    functionUses: 0
    functionsReached:
    - pyasn1_modules.rfc5208.PrivateKeyInfo
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pyasn1_modules.rfc5208.PrivateKeyInfo
    functionSourceFile: pyasn1_modules
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - bit_list
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: oauth2client._pure_python_crypt._bit_list_to_bytes
    functionSourceFile: oauth2client._pure_python_crypt
    functionUses: 4
    functionsReached:
    - byte_vals.append
    - <builtin>.zip
    - <builtin>.bytearray
    - <builtin>.bytes
    - <builtin>.len
    - <builtin>.sum
    - six.moves.xrange
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: six.moves.xrange
    functionSourceFile: six
    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>.zip
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.sum
    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: byte_vals.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: <builtin>.bytes
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pubkey
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 72
    functionName: oauth2client._pure_python_crypt.RsaVerifier.__init__
    functionSourceFile: oauth2client._pure_python_crypt
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - message
    - signature
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 75
    functionName: oauth2client._pure_python_crypt.RsaVerifier.verify
    functionSourceFile: oauth2client._pure_python_crypt
    functionUses: 0
    functionsReached:
    - value.encode
    - <builtin>.isinstance
    - rsa.pkcs1.verify
    - oauth2client._helpers._to_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: rsa.pkcs1.verify
    functionSourceFile: rsa
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rsa.pem.load_pem
    functionSourceFile: rsa
    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: pyasn1_modules.rfc2459.Certificate
    functionSourceFile: pyasn1_modules
    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: pyasn1.codec.der.decoder.decode
    functionSourceFile: pyasn1
    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: rsa.PublicKey.load_pkcs1
    functionSourceFile: rsa
    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
    - pkey
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 135
    functionName: oauth2client._pure_python_crypt.RsaSigner.__init__
    functionSourceFile: oauth2client._pure_python_crypt
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    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: 2
    functionLinenumber: 138
    functionName: oauth2client._pure_python_crypt.RsaSigner.sign
    functionSourceFile: oauth2client._pure_python_crypt
    functionUses: 0
    functionsReached:
    - rsa.pkcs1.sign
    - value.encode
    - <builtin>.isinstance
    - oauth2client._helpers._to_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: rsa.pkcs1.sign
    functionSourceFile: rsa
    functionUses: 1
    functionsReached: []
    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 0x7f1d2d092c10>
    argNames:
    - cls
    - key
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 151
    functionName: oauth2client._pure_python_crypt.RsaSigner.from_string
    functionSourceFile: oauth2client._pure_python_crypt
    functionUses: 26
    functionsReached:
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - key_info.getComponentByName
    - oauth2client._helpers._from_bytes
    - pyasn1_modules.pem.readPemBlocksFromFile
    - <builtin>.isinstance
    - six.StringIO
    - value.decode
    - pkey_info.asOctets
    - rsa.key.PrivateKey.load_pkcs1
    - pyasn1.codec.der.decoder.decode
    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: six.StringIO
    functionSourceFile: six
    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: pyasn1_modules.pem.readPemBlocksFromFile
    functionSourceFile: pyasn1_modules
    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: rsa.key.PrivateKey.load_pkcs1
    functionSourceFile: rsa
    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: key_info.getComponentByName
    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: pkey_info.asOctets
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: oauth2client._openssl_crypt
    functionSourceFile: oauth2client._openssl_crypt
    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
    - pubkey
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 24
    functionName: oauth2client._openssl_crypt.OpenSSLVerifier.__init__
    functionSourceFile: oauth2client._openssl_crypt
    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: OpenSSL.crypto.verify
    functionSourceFile: OpenSSL
    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: OpenSSL.crypto.load_certificate
    functionSourceFile: OpenSSL
    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: OpenSSL.crypto.load_privatekey
    functionSourceFile: OpenSSL
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pkey
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 79
    functionName: oauth2client._openssl_crypt.OpenSSLSigner.__init__
    functionSourceFile: oauth2client._openssl_crypt
    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: OpenSSL.crypto.sign
    functionSourceFile: OpenSSL
    functionUses: 11
    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 0x7f1d2d107e80>
    argNames:
    - key
    - password
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 100
    functionName: oauth2client._openssl_crypt.OpenSSLSigner.from_string
    functionSourceFile: oauth2client._openssl_crypt
    functionUses: 26
    functionsReached:
    - raw_key_input.find
    - oauth2client._helpers._to_bytes
    - <builtin>.isinstance
    - OpenSSL.crypto.load_privatekey
    - oauth2client._helpers._parse_pem_key
    - OpenSSL.crypto.load_pkcs12
    - value.encode
    - oauth2client._openssl_crypt.OpenSSLSigner.__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: OpenSSL.crypto.load_pkcs12
    functionSourceFile: OpenSSL
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - private_key_bytes
    - private_key_password
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 123
    functionName: oauth2client._openssl_crypt.pkcs12_key_as_pem
    functionSourceFile: oauth2client._openssl_crypt
    functionUses: 0
    functionsReached:
    - oauth2client._helpers._to_bytes
    - pkcs12.get_privatekey
    - <builtin>.isinstance
    - OpenSSL.crypto.load_pkcs12
    - value.encode
    - OpenSSL.crypto.dump_privatekey
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pkcs12.get_privatekey
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: OpenSSL.crypto.dump_privatekey
    functionSourceFile: OpenSSL
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: oauth2client._pycrypto_crypt
    functionSourceFile: oauth2client._pycrypto_crypt
    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
    - pubkey
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: oauth2client._pycrypto_crypt.PyCryptoVerifier.__init__
    functionSourceFile: oauth2client._pycrypto_crypt
    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.Hash.SHA256.new
    functionSourceFile: Crypto
    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: Crypto.Signature.PKCS1_v1_5.new
    functionSourceFile: Crypto
    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: key_pem.replace
    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: Crypto.Util.asn1.DerSequence
    functionSourceFile: Crypto
    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.asn1.DerSequence.decode
    functionSourceFile: Crypto
    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.PublicKey.RSA.importKey
    functionSourceFile: Crypto
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pkey
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 81
    functionName: oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    functionSourceFile: oauth2client._pycrypto_crypt
    functionUses: 27
    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 0x7f1d2d95f520>
    argNames:
    - key
    - password
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 102
    functionName: oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    functionSourceFile: oauth2client._pycrypto_crypt
    functionUses: 26
    functionsReached:
    - raw_key_input.find
    - oauth2client._helpers._to_bytes
    - <builtin>.isinstance
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - oauth2client._helpers._parse_pem_key
    - value.encode
    - Crypto.PublicKey.RSA.importKey
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: oauth2client.tools
    functionSourceFile: oauth2client.tools
    functionUses: 0
    functionsReached:
    - oauth2client._helpers.positional
    - oauth2client.tools._CreateArgumentParser
    - <builtin>.isinstance
    - parser.add_argument
    - <builtin>.len
    - functools.wraps
    - argparse.ArgumentParser
    - inspect.getargspec
    - oauth2client._helpers.positional.positional_decorator
    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: 1
    functionLinenumber: 77
    functionName: oauth2client.tools._CreateArgumentParser
    functionSourceFile: oauth2client.tools
    functionUses: 1
    functionsReached:
    - parser.add_argument
    - argparse.ArgumentParser
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: argparse.ArgumentParser
    functionSourceFile: argparse
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 7
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 118
    functionName: oauth2client.tools.ClientRedirectHandler.do_GET
    functionSourceFile: oauth2client.tools
    functionUses: 0
    functionsReached:
    - oauth2client._helpers.parse_unique_urlencoded
    - six.iteritems
    - six.moves.BaseHTTPServer.BaseHTTPRequestHandler.send_header
    - six.moves.BaseHTTPServer.BaseHTTPRequestHandler.send_response
    - six.moves.BaseHTTPServer.BaseHTTPRequestHandler.wfile.write
    - six.moves.urllib.parse.urlparse
    - <builtin>.len
    - six.moves.urllib.parse.parse_qs
    - six.moves.BaseHTTPServer.BaseHTTPRequestHandler.end_headers
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: six.moves.BaseHTTPServer.BaseHTTPRequestHandler.send_response
    functionSourceFile: six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: six.moves.BaseHTTPServer.BaseHTTPRequestHandler.send_header
    functionSourceFile: six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: six.moves.BaseHTTPServer.BaseHTTPRequestHandler.end_headers
    functionSourceFile: six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: six.moves.BaseHTTPServer.BaseHTTPRequestHandler.wfile.write
    functionSourceFile: six
    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
    - format
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 137
    functionName: oauth2client.tools.ClientRedirectHandler.log_message
    functionSourceFile: oauth2client.tools
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 14
    IfCount: 8
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d28d910>
    - <ast.Constant object at 0x7f1d2d28dac0>
    argNames:
    - flow
    - storage
    - flags
    - http
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 142
    functionName: oauth2client.tools.run_flow
    functionSourceFile: oauth2client.tools
    functionUses: 0
    functionsReached:
    - webbrowser.open
    - credential.set_store
    - storage.put
    - _GO_TO_LINK_MESSAGE.format
    - flow.step2_exchange
    - httpd.handle_request
    - sys.exit
    - logging.getLogger
    - flow.step1_get_authorize_url
    - _BROWSER_OPENED_MESSAGE.format
    - six.moves.input
    - argparser.parse_args
    - <builtin>.print
    - <builtin>.getattr
    - six.moves.input.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: argparser.parse_args
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 66
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.print
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flow.step1_get_authorize_url
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: webbrowser.open
    functionSourceFile: webbrowser
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _BROWSER_OPENED_MESSAGE.format
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _GO_TO_LINK_MESSAGE.format
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: httpd.handle_request
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.exit
    functionSourceFile: sys
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: six.moves.input
    functionSourceFile: six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: six.moves.input.strip
    functionSourceFile: six
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flow.step2_exchange
    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: storage.put
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: credential.set_store
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 254
    functionName: oauth2client.tools.message_if_missing
    functionSourceFile: oauth2client.tools
    functionUses: 0
    functionsReached:
    - _CLIENT_SECRETS_MESSAGE.format
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _CLIENT_SECRETS_MESSAGE.format
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: oauth2client.client
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - oauth2client._helpers.positional
    - collections.namedtuple
    - <builtin>.isinstance
    - os.getenv
    - logging.getLogger
    - <builtin>.len
    - functools.wraps
    - inspect.getargspec
    - <builtin>.int
    - oauth2client._helpers.positional.positional_decorator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.getenv
    functionSourceFile: os
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: oauth2client.client.HttpAccessTokenRefreshError.__init__
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - kwargs.get
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.super
    functionSourceFile: <builtin>
    functionUses: 68
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.get
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - expiry
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 183
    functionName: oauth2client.client._parse_expiry
    functionSourceFile: oauth2client.client
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - expiry.strftime
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: expiry.strftime
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client.client.Credentials
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - <builtin>.frozenset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 202
    functionName: oauth2client.client.Credentials.authorize
    functionSourceFile: oauth2client.client
    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
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 215
    functionName: oauth2client.client.Credentials.refresh
    functionSourceFile: oauth2client.client
    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
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 224
    functionName: oauth2client.client.Credentials.revoke
    functionSourceFile: oauth2client.client
    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
    - headers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 233
    functionName: oauth2client.client.Credentials.apply
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2daad460>
    argNames:
    - self
    - strip
    - to_serialize
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 241
    functionName: oauth2client.client.Credentials._to_json
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - <builtin>.list
    - expiry.strftime
    - val.decode
    - copy.copy
    - <builtin>.isinstance
    - to_serialize.items
    - oauth2client.client._parse_expiry
    - json.dumps
    - to_serialize.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: copy.copy
    functionSourceFile: copy
    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: to_serialize.get
    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: to_serialize.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: val.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: <builtin>.list
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 276
    functionName: oauth2client.client.Credentials.to_json
    functionSourceFile: oauth2client.client
    functionUses: 8
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials._to_json
    - copy.copy
    - <builtin>.super
    - to_serialize.get
    - base64.b64encode
    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 0x7f1d2dab64c0>
    argNames:
    - self
    - strip
    - to_serialize
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 118
    functionName: oauth2client.service_account.ServiceAccountCredentials._to_json
    functionSourceFile: oauth2client.service_account
    functionUses: 9
    functionsReached:
    - copy.copy
    - <builtin>.super
    - to_serialize.get
    - base64.b64encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - json_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 286
    functionName: oauth2client.client.Credentials.new_from_json
    functionSourceFile: oauth2client.client
    functionUses: 24
    functionsReached:
    - module_name.split
    - json.loads
    - <builtin>.getattr
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - module_name.replace
    - kls.from_json
    - <builtin>.__import__
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: module_name.replace
    functionSourceFile: <builtin>
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: module_name.split
    functionSourceFile: <builtin>
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kls.from_json
    functionSourceFile: <builtin>
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - unused_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 317
    functionName: oauth2client.client.Credentials.from_json
    functionSourceFile: oauth2client.client
    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 0x7f1d2dae8e20>
    argNames:
    - self
    - lock
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 343
    functionName: oauth2client.client.Storage.__init__
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 353
    functionName: oauth2client.client.Storage.acquire_lock
    functionSourceFile: oauth2client.client
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 361
    functionName: oauth2client.client.Storage.release_lock
    functionSourceFile: oauth2client.client
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 370
    functionName: oauth2client.client.Storage.locked_get
    functionSourceFile: oauth2client.client
    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
    - credentials
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 380
    functionName: oauth2client.client.Storage.locked_put
    functionSourceFile: oauth2client.client
    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: 390
    functionName: oauth2client.client.Storage.locked_delete
    functionSourceFile: oauth2client.client
    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: 5
    functionLinenumber: 397
    functionName: oauth2client.client.Storage.get
    functionSourceFile: oauth2client.client
    functionUses: 12
    functionsReached:
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - datetime.datetime.strptime
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - module_name.replace
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - <builtin>.hasattr
    - oauth2client._helpers.scopes_to_string
    - <builtin>.issubclass
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - base64.b64decode
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - raw_key_input.find
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.client.AccessTokenCredentials.__init__
    - json_data.get
    - <builtin>.getattr
    - credentials.to_json
    - oauth2client.client.OAuth2Credentials.set_store
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - credential.set_store
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.len
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - <builtin>.__import__
    - Crypto.PublicKey.RSA.importKey
    - kwargs.get
    - oauth2client.client.Storage.release_lock
    - pyasn1_modules.pem.readPemBlocksFromFile
    - google.appengine.ext.db.Model.get_by_key_name
    - six.StringIO
    - flask.session.get
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - pkey_info.asOctets
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 38
    functionName: oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    functionSourceFile: oauth2client.contrib.dictionary_storage
    functionUses: 14
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - datetime.datetime.strptime
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - base64.b64decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - raw_key_input.find
    - json.loads
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.client.AccessTokenCredentials.__init__
    - json_data.get
    - oauth2client.client.OAuth2Credentials.set_store
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - kwargs.get
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - flask.session.get
    - pkey_info.asOctets
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 378
    functionName: oauth2client.contrib.appengine.StorageByKeyName.locked_get
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 13
    functionsReached:
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - module_name.split
    - json.loads
    - <builtin>.getattr
    - credentials.set_store
    - oauth2client._helpers._from_bytes
    - google.appengine.ext.db.Model.get_by_key_name
    - google.appengine.ext.db.Model.get_by_id
    - <builtin>.isinstance
    - <builtin>.hasattr
    - value.decode
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - <builtin>.issubclass
    - module_name.replace
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - <builtin>.__import__
    - credentials.to_json
    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: 45
    functionName: oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    functionSourceFile: oauth2client.contrib.django_util.storage
    functionUses: 13
    functionsReached:
    - credential.set_store
    - <builtin>.len
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - credentials
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 411
    functionName: oauth2client.client.Storage.put
    functionSourceFile: oauth2client.client
    functionUses: 3
    functionsReached:
    - google.appengine.ext.db.Model.get_or_insert
    - oauth2client.service_account.ServiceAccountCredentials._to_json
    - entity.save
    - oauth2client.client.Credentials.to_json
    - oauth2client.contrib.gce.AppAssertionCredentials.to_json
    - oauth2client.client.Storage.release_lock
    - entity.put
    - copy.copy
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_put
    - <builtin>.setattr
    - oauth2client.client.Storage.acquire_lock
    - base64.b64encode
    - oauth2client.contrib.appengine.StorageByKeyName.locked_put
    - <builtin>.super
    - to_serialize.get
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_put
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - credentials
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 53
    functionName: oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_put
    functionSourceFile: oauth2client.contrib.dictionary_storage
    functionUses: 6
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials._to_json
    - oauth2client.client.Credentials.to_json
    - oauth2client.contrib.gce.AppAssertionCredentials.to_json
    - copy.copy
    - <builtin>.super
    - to_serialize.get
    - base64.b64encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - credentials
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 401
    functionName: oauth2client.contrib.appengine.StorageByKeyName.locked_put
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 4
    functionsReached:
    - google.appengine.ext.db.Model.get_or_insert
    - oauth2client.service_account.ServiceAccountCredentials._to_json
    - oauth2client.client.Credentials.to_json
    - oauth2client.contrib.gce.AppAssertionCredentials.to_json
    - entity.put
    - copy.copy
    - <builtin>.setattr
    - <builtin>.super
    - to_serialize.get
    - base64.b64encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - credentials
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_put
    functionSourceFile: oauth2client.contrib.django_util.storage
    functionUses: 4
    functionsReached:
    - <builtin>.setattr
    - entity.save
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 425
    functionName: oauth2client.client.Storage.delete
    functionSourceFile: oauth2client.client
    functionUses: 5
    functionsReached:
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_delete
    - oauth2client.contrib.appengine.StorageByKeyName._delete_entity
    - google.appengine.ext.db.delete
    - oauth2client.client.Storage.release_lock
    - google.appengine.ext.ndb.Key
    - google.appengine.ext.db.Key.from_path
    - <builtin>.isinstance
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - oauth2client.client.Storage.acquire_lock
    - google.appengine.ext.db.Model.kind
    - flask.session.pop
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_delete
    - oauth2client.contrib.appengine.StorageByKeyName.locked_delete
    - <builtin>.issubclass
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 78
    functionName: oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_delete
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 63
    functionName: oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_delete
    functionSourceFile: oauth2client.contrib.dictionary_storage
    functionUses: 6
    functionsReached:
    - flask.session.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 414
    functionName: oauth2client.contrib.appengine.StorageByKeyName.locked_delete
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 6
    functionsReached:
    - oauth2client.contrib.appengine.StorageByKeyName._delete_entity
    - google.appengine.ext.db.delete
    - google.appengine.ext.ndb.Key
    - google.appengine.ext.db.Key.from_path
    - <builtin>.isinstance
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - google.appengine.ext.db.Model.kind
    - <builtin>.issubclass
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: oauth2client.client.OAuth2Credentials
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - oauth2client._helpers.positional
    - <builtin>.isinstance
    - <builtin>.len
    - functools.wraps
    - inspect.getargspec
    - oauth2client._helpers.positional.positional_decorator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 14
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d3f6790>
    - <ast.Constant object at 0x7f1d2d3f69a0>
    - <ast.Constant object at 0x7f1d2d3f6970>
    - <ast.Constant object at 0x7f1d2d3f6730>
    - <ast.Constant object at 0x7f1d2d3f6070>
    - <ast.Constant object at 0x7f1d2d3f67c0>
    argNames:
    - self
    - access_token
    - client_id
    - client_secret
    - refresh_token
    - token_expiry
    - token_uri
    - user_agent
    - revoke_uri
    - id_token
    - token_response
    - scopes
    - token_info_uri
    - id_token_jwt
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 451
    functionName: oauth2client.client.OAuth2Credentials.__init__
    functionSourceFile: oauth2client.client
    functionUses: 5
    functionsReached:
    - oauth2client._helpers.string_to_scopes
    - <builtin>.isinstance
    - scopes.split
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.set
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 508
    functionName: oauth2client.client.OAuth2Credentials.authorize
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - oauth2client.transport.wrap_http_for_auth
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - credentials
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 137
    functionName: oauth2client.transport.wrap_http_for_auth
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 538
    functionName: oauth2client.client.OAuth2Credentials.refresh
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - oauth2client.contrib._metadata.get_token
    - oauth2client.contrib.gce.AppAssertionCredentials._refresh
    - query_params.update
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - datetime.timedelta
    - oauth2client.contrib._metadata.get
    - oauth2client.contrib.appengine.AppAssertionCredentials._refresh
    - json.loads
    - six.moves.urllib.parse.urljoin
    - <builtin>.getattr
    - oauth2client.client.AccessTokenCredentials._refresh
    - oauth2client._helpers._add_query_parameter
    - oauth2client._helpers.parse_unique_urlencoded
    - oauth2client.contrib._metadata.get_service_account_info
    - <builtin>.len
    - six.moves.urllib.parse.parse_qs
    - google.appengine.api.app_identity.get_access_token
    - six.moves.urllib.parse.urlencode
    - six.iteritems
    - oauth2client.transport.request
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    - oauth2client.contrib.gce.AppAssertionCredentials._retrieve_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 962
    functionName: oauth2client.client.AccessTokenCredentials._refresh
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AccessTokenCredentialsError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 116
    functionName: oauth2client.contrib.gce.AppAssertionCredentials._refresh
    functionSourceFile: oauth2client.contrib.gce
    functionUses: 3
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - oauth2client.contrib._metadata.get_token
    - query_params.update
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - datetime.timedelta
    - oauth2client.contrib._metadata.get
    - json.loads
    - six.moves.urllib.parse.urljoin
    - <builtin>.getattr
    - oauth2client._helpers._add_query_parameter
    - oauth2client._helpers.parse_unique_urlencoded
    - oauth2client.contrib._metadata.get_service_account_info
    - <builtin>.len
    - six.moves.urllib.parse.parse_qs
    - six.moves.urllib.parse.urlencode
    - six.iteritems
    - oauth2client.transport.request
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    - oauth2client.contrib.gce.AppAssertionCredentials._retrieve_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 158
    functionName: oauth2client.contrib.appengine.AppAssertionCredentials._refresh
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 3
    functionsReached:
    - google.appengine.api.app_identity.get_access_token
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 547
    functionName: oauth2client.client.OAuth2Credentials.revoke
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_delete
    - oauth2client.contrib.appengine.StorageByKeyName._delete_entity
    - google.appengine.ext.db.delete
    - query_params.update
    - oauth2client._helpers._from_bytes
    - google.appengine.ext.ndb.Key
    - <builtin>.isinstance
    - value.decode
    - oauth2client.client.Storage.delete
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_delete
    - <builtin>.issubclass
    - json.loads
    - logger.info
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - oauth2client.client.AccessTokenCredentials._revoke
    - flask.session.pop
    - <builtin>.getattr
    - oauth2client._helpers.parse_unique_urlencoded
    - google.appengine.ext.db.Key.from_path
    - <builtin>.len
    - google.appengine.ext.db.Model.kind
    - six.moves.urllib.parse.parse_qs
    - oauth2client.contrib.appengine.StorageByKeyName.locked_delete
    - six.moves.urllib.parse.urlencode
    - oauth2client.client.Storage.release_lock
    - six.iteritems
    - oauth2client.transport.request
    - parts._replace
    - oauth2client.client.Storage.acquire_lock
    - six.moves.urllib.parse.urlparse
    - oauth2client.client.OAuth2Credentials._do_revoke
    - oauth2client._helpers.update_query_params
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 974
    functionName: oauth2client.client.AccessTokenCredentials._revoke
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_delete
    - oauth2client.contrib.appengine.StorageByKeyName._delete_entity
    - google.appengine.ext.db.delete
    - query_params.update
    - oauth2client._helpers._from_bytes
    - google.appengine.ext.ndb.Key
    - <builtin>.isinstance
    - value.decode
    - oauth2client.client.Storage.delete
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_delete
    - <builtin>.issubclass
    - json.loads
    - logger.info
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - flask.session.pop
    - <builtin>.getattr
    - oauth2client._helpers.parse_unique_urlencoded
    - google.appengine.ext.db.Key.from_path
    - <builtin>.len
    - google.appengine.ext.db.Model.kind
    - six.moves.urllib.parse.parse_qs
    - oauth2client.contrib.appengine.StorageByKeyName.locked_delete
    - six.moves.urllib.parse.urlencode
    - oauth2client.client.Storage.release_lock
    - six.iteritems
    - oauth2client.transport.request
    - parts._replace
    - oauth2client.client.Storage.acquire_lock
    - six.moves.urllib.parse.urlparse
    - oauth2client.client.OAuth2Credentials._do_revoke
    - oauth2client._helpers.update_query_params
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - headers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 556
    functionName: oauth2client.client.OAuth2Credentials.apply
    functionSourceFile: oauth2client.client
    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
    - scopes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 564
    functionName: oauth2client.client.OAuth2Credentials.has_scopes
    functionSourceFile: oauth2client.client
    functionUses: 4
    functionsReached:
    - oauth2client._helpers.string_to_scopes
    - <builtin>.isinstance
    - scopes.split
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 583
    functionName: oauth2client.client.OAuth2Credentials.retrieve_scopes
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - query_params.update
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - oauth2client.client.OAuth2Credentials._retrieve_scopes
    - oauth2client._helpers.string_to_scopes
    - logger.info
    - json.loads
    - <builtin>.getattr
    - oauth2client._helpers.parse_unique_urlencoded
    - <builtin>.len
    - d.get
    - six.moves.urllib.parse.parse_qs
    - oauth2client.client.OAuth2Credentials._do_retrieve_scopes
    - six.moves.urllib.parse.urlencode
    - oauth2client.transport.request
    - six.iteritems
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    - scopes.split
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 865
    functionName: oauth2client.client.OAuth2Credentials._retrieve_scopes
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - query_params.update
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - logger.info
    - json.loads
    - <builtin>.getattr
    - <builtin>.set
    - oauth2client._helpers.parse_unique_urlencoded
    - <builtin>.len
    - d.get
    - six.moves.urllib.parse.parse_qs
    - oauth2client.client.OAuth2Credentials._do_retrieve_scopes
    - six.moves.urllib.parse.urlencode
    - oauth2client.transport.request
    - six.iteritems
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    - scopes.split
    - oauth2client._helpers.string_to_scopes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - json_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 599
    functionName: oauth2client.client.OAuth2Credentials.from_json
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - oauth2client.client.OAuth2Credentials.__init__
    - json.loads
    - data.get
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - datetime.datetime.strptime
    - oauth2client._helpers.string_to_scopes
    - scopes.split
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.get
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datetime.datetime.strptime
    functionSourceFile: datetime
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 636
    functionName: oauth2client.client.OAuth2Credentials.access_token_expired
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - 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: logger.info
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d0eef10>
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 654
    functionName: oauth2client.client.OAuth2Credentials.get_access_token
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - oauth2client.contrib._metadata.get_token
    - oauth2client.contrib.gce.AppAssertionCredentials._refresh
    - query_params.update
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - oauth2client.client.OAuth2Credentials._expires_in
    - value.decode
    - datetime.timedelta
    - httplib2.Http
    - oauth2client.contrib._metadata.get
    - oauth2client.client.OAuth2Credentials.refresh
    - oauth2client.contrib.appengine.AppAssertionCredentials._refresh
    - oauth2client.transport.get_http_object
    - json.loads
    - six.moves.urllib.parse.urljoin
    - <builtin>.getattr
    - oauth2client.client.AccessTokenCredentials._refresh
    - oauth2client._helpers._add_query_parameter
    - oauth2client._helpers.parse_unique_urlencoded
    - oauth2client.contrib._metadata.get_service_account_info
    - <builtin>.len
    - six.moves.urllib.parse.parse_qs
    - google.appengine.api.app_identity.get_access_token
    - six.moves.urllib.parse.urlencode
    - six.iteritems
    - oauth2client.transport.request
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    - oauth2client.contrib.gce.AppAssertionCredentials._retrieve_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 61
    functionName: oauth2client.transport.get_http_object
    functionSourceFile: oauth2client.transport
    functionUses: 12
    functionsReached:
    - httplib2.Http
    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: 0
    functionLinenumber: 679
    functionName: oauth2client.client.OAuth2Credentials._expires_in
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - store
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 667
    functionName: oauth2client.client.OAuth2Credentials.set_store
    functionSourceFile: oauth2client.client
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 699
    functionName: oauth2client.client.OAuth2Credentials._updateFromCredential
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - copy.copy
    - oauth2client.client.OAuth2Credentials.__getstate__
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 703
    functionName: oauth2client.client.OAuth2Credentials.__getstate__
    functionSourceFile: oauth2client.client
    functionUses: 2
    functionsReached:
    - copy.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - state
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 709
    functionName: oauth2client.client.OAuth2Credentials.__setstate__
    functionSourceFile: oauth2client.client
    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: 714
    functionName: oauth2client.client.OAuth2Credentials._generate_refresh_request_body
    functionSourceFile: oauth2client.client
    functionUses: 2
    functionsReached:
    - six.moves.urllib.parse.urlencode
    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: 724
    functionName: oauth2client.client.OAuth2Credentials._generate_refresh_request_headers
    functionSourceFile: oauth2client.client
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 735
    functionName: oauth2client.client.OAuth2Credentials._refresh
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials._to_json
    - base64.urlsafe_b64decode
    - oauth2client.client.OAuth2Credentials._updateFromCredential
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.client.OAuth2Credentials._do_refresh_request
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - oauth2client.client._extract_id_token
    - <builtin>.type
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - value.encode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - datetime.datetime.strptime
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - datetime.timedelta
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - oauth2client._helpers.scopes_to_string
    - base64.b64decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - to_serialize.get
    - base64.b64encode
    - raw_key_input.find
    - oauth2client.client.Credentials.to_json
    - oauth2client.contrib.gce.AppAssertionCredentials.to_json
    - logger.info
    - json.loads
    - oauth2client._helpers._urlsafe_b64decode
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.client.AccessTokenCredentials.__init__
    - json_data.get
    - oauth2client.client.OAuth2Credentials.__getstate__
    - <builtin>.getattr
    - oauth2client.client.OAuth2Credentials.set_store
    - oauth2client.client.OAuth2Credentials._generate_refresh_request_headers
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - id_token.split
    - oauth2client._helpers._parse_pem_key
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.len
    - d.get
    - <builtin>.int
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - kwargs.get
    - six.moves.urllib.parse.urlencode
    - oauth2client.client.OAuth2Credentials._generate_refresh_request_body
    - oauth2client.client.Storage.release_lock
    - copy.copy
    - oauth2client.transport.request
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - flask.session.get
    - oauth2client.client.Storage.acquire_lock
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - pkey_info.asOctets
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pyasn1.codec.der.decoder.decode
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_put
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 5
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 765
    functionName: oauth2client.client.OAuth2Credentials._do_refresh_request
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials._to_json
    - base64.urlsafe_b64decode
    - <builtin>.type
    - oauth2client._helpers._from_bytes
    - oauth2client.client._extract_id_token
    - <builtin>.isinstance
    - value.decode
    - value.encode
    - datetime.timedelta
    - to_serialize.get
    - base64.b64encode
    - oauth2client.client.Credentials.to_json
    - oauth2client.contrib.gce.AppAssertionCredentials.to_json
    - json.loads
    - logger.info
    - oauth2client._helpers._urlsafe_b64decode
    - <builtin>.getattr
    - oauth2client.client.OAuth2Credentials._generate_refresh_request_headers
    - oauth2client._helpers._to_bytes
    - id_token.split
    - <builtin>.len
    - d.get
    - <builtin>.int
    - <builtin>.super
    - six.moves.urllib.parse.urlencode
    - oauth2client.client.OAuth2Credentials._generate_refresh_request_body
    - copy.copy
    - oauth2client.transport.request
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_put
    linkageType: pythonLinkage
    raised:
    - HttpAccessTokenRefreshError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d45d730>
    - <ast.Constant object at 0x7f1d2d45d280>
    - <ast.Constant object at 0x7f1d2d45d1f0>
    - <ast.Attribute object at 0x7f1d2d45d190>
    - <ast.Constant object at 0x7f1d2d45db50>
    argNames:
    - http
    - uri
    - method
    - body
    - headers
    - redirections
    - connection_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 254
    functionName: oauth2client.transport.request
    functionSourceFile: oauth2client.transport
    functionUses: 29
    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: d.get
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datetime.timedelta
    functionSourceFile: datetime
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - id_token
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1564
    functionName: oauth2client.client._extract_id_token
    functionSourceFile: oauth2client.client
    functionUses: 6
    functionsReached:
    - base64.urlsafe_b64decode
    - oauth2client._helpers._to_bytes
    - json.loads
    - <builtin>.type
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - oauth2client._helpers._urlsafe_b64decode
    - value.decode
    - id_token.split
    - value.encode
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - VerifyJwtTokenError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 821
    functionName: oauth2client.client.OAuth2Credentials._revoke
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_delete
    - oauth2client.contrib.appengine.StorageByKeyName._delete_entity
    - google.appengine.ext.db.delete
    - query_params.update
    - oauth2client._helpers._from_bytes
    - google.appengine.ext.ndb.Key
    - <builtin>.isinstance
    - value.decode
    - oauth2client.client.Storage.delete
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_delete
    - <builtin>.issubclass
    - json.loads
    - logger.info
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - flask.session.pop
    - <builtin>.getattr
    - oauth2client._helpers.parse_unique_urlencoded
    - google.appengine.ext.db.Key.from_path
    - <builtin>.len
    - google.appengine.ext.db.Model.kind
    - six.moves.urllib.parse.parse_qs
    - oauth2client.contrib.appengine.StorageByKeyName.locked_delete
    - six.moves.urllib.parse.urlencode
    - oauth2client.client.Storage.release_lock
    - six.iteritems
    - oauth2client.transport.request
    - parts._replace
    - oauth2client.client.Storage.acquire_lock
    - six.moves.urllib.parse.urlparse
    - oauth2client.client.OAuth2Credentials._do_revoke
    - oauth2client._helpers.update_query_params
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - http
    - token
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 829
    functionName: oauth2client.client.OAuth2Credentials._do_revoke
    functionSourceFile: oauth2client.client
    functionUses: 4
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_delete
    - oauth2client.contrib.appengine.StorageByKeyName._delete_entity
    - google.appengine.ext.db.delete
    - query_params.update
    - oauth2client._helpers._from_bytes
    - google.appengine.ext.ndb.Key
    - <builtin>.isinstance
    - value.decode
    - oauth2client.client.Storage.delete
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_delete
    - <builtin>.issubclass
    - logger.info
    - json.loads
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - flask.session.pop
    - <builtin>.getattr
    - oauth2client._helpers.parse_unique_urlencoded
    - google.appengine.ext.db.Key.from_path
    - <builtin>.len
    - google.appengine.ext.db.Model.kind
    - six.moves.urllib.parse.parse_qs
    - oauth2client.contrib.appengine.StorageByKeyName.locked_delete
    - six.moves.urllib.parse.urlencode
    - oauth2client.client.Storage.release_lock
    - six.iteritems
    - oauth2client.transport.request
    - parts._replace
    - oauth2client.client.Storage.acquire_lock
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    linkageType: pythonLinkage
    raised:
    - TokenRevokeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - http
    - token
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 873
    functionName: oauth2client.client.OAuth2Credentials._do_retrieve_scopes
    functionSourceFile: oauth2client.client
    functionUses: 2
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - query_params.update
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - json.loads
    - logger.info
    - <builtin>.getattr
    - <builtin>.set
    - oauth2client._helpers.parse_unique_urlencoded
    - <builtin>.len
    - d.get
    - six.moves.urllib.parse.parse_qs
    - six.moves.urllib.parse.urlencode
    - oauth2client.transport.request
    - six.iteritems
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    - scopes.split
    - oauth2client._helpers.string_to_scopes
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d2f6d30>
    argNames:
    - self
    - access_token
    - user_agent
    - revoke_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 931
    functionName: oauth2client.client.AccessTokenCredentials.__init__
    functionSourceFile: oauth2client.client
    functionUses: 16
    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
    - json_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 955
    functionName: oauth2client.client.AccessTokenCredentials.from_json
    functionSourceFile: oauth2client.client
    functionUses: 15
    functionsReached:
    - json.loads
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - oauth2client.client.AccessTokenCredentials.__init__
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 983
    functionName: oauth2client.client._detect_gce_environment
    functionSourceFile: oauth2client.client
    functionUses: 2
    functionsReached:
    - response.get
    - oauth2client.transport.get_http_object
    - logger.info
    - oauth2client.transport.request
    - httplib2.Http
    - <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: response.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1008
    functionName: oauth2client.client._in_gae_environment
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - os.environ.get
    - server_software.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: os.environ.get
    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: server_software.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1033
    functionName: oauth2client.client._in_gce_environment
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - response.get
    - oauth2client.transport.get_http_object
    - logger.info
    - oauth2client.client._detect_gce_environment
    - oauth2client.transport.request
    - httplib2.Http
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client.client.GoogleCredentials
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - <builtin>.frozenset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 9
    argDefaultValues:
    - <ast.Attribute object at 0x7f1d2d0d0a30>
    argNames:
    - self
    - access_token
    - client_id
    - client_secret
    - refresh_token
    - token_expiry
    - token_uri
    - user_agent
    - revoke_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1078
    functionName: oauth2client.client.GoogleCredentials.__init__
    functionSourceFile: oauth2client.client
    functionUses: 4
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1105
    functionName: oauth2client.client.GoogleCredentials.create_scoped_required
    functionSourceFile: oauth2client.client
    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
    - scopes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1113
    functionName: oauth2client.client.GoogleCredentials.create_scoped
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - json_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1121
    functionName: oauth2client.client.GoogleCredentials.from_json
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - datetime.datetime.strptime
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - oauth2client.client._parse_expiry
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - base64.b64decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - raw_key_input.find
    - json.loads
    - OpenSSL.crypto.load_pkcs12
    - json_data.get
    - oauth2client.client.GoogleCredentials.__init__
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - key_info.getComponentByName
    - expiry.strftime
    - oauth2client._helpers._to_bytes
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - data.get
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - pkey_info.asOctets
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - json_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 423
    functionName: oauth2client.service_account.ServiceAccountCredentials.from_json
    functionSourceFile: oauth2client.service_account
    functionUses: 16
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - datetime.datetime.strptime
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - base64.b64decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - raw_key_input.find
    - json.loads
    - OpenSSL.crypto.load_pkcs12
    - json_data.get
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - pkey_info.asOctets
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1150
    functionName: oauth2client.client.GoogleCredentials.serialization_data
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1160
    functionName: oauth2client.client.GoogleCredentials._implicit_credentials_from_gae
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - oauth2client.client._get_application_default_credential_GAE
    - oauth2client.client._in_gae_environment
    - kwargs.get
    - server_software.startswith
    - os.environ.get
    - <builtin>.isinstance
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.super
    - oauth2client._helpers.scopes_to_string
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1432
    functionName: oauth2client.client._get_application_default_credential_GAE
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - kwargs.get
    - <builtin>.isinstance
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.super
    - oauth2client._helpers.scopes_to_string
    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: 1177
    functionName: oauth2client.client.GoogleCredentials._implicit_credentials_from_gce
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - response.get
    - oauth2client.transport.get_http_object
    - logger.info
    - oauth2client.client._detect_gce_environment
    - oauth2client.transport.request
    - warnings.warn
    - oauth2client.contrib.gce.AppAssertionCredentials.__init__
    - httplib2.Http
    - oauth2client.client._get_application_default_credential_GCE
    - oauth2client.client._in_gce_environment
    - <builtin>.super
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1438
    functionName: oauth2client.client._get_application_default_credential_GCE
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - warnings.warn
    - <builtin>.super
    - oauth2client.contrib.gce.AppAssertionCredentials.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1193
    functionName: oauth2client.client.GoogleCredentials._implicit_credentials_from_files
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.client._get_environment_variable_file
    - oauth2client._helpers._from_bytes
    - OpenSSL.crypto.load_privatekey
    - os.getenv
    - <builtin>.isinstance
    - value.decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - oauth2client.client._get_well_known_file
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - keyfile_dict.get
    - raw_key_input.find
    - <builtin>.open
    - required_fields.difference
    - os.path.isfile
    - client_credentials.keys
    - os.path.expanduser
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.service_account.ServiceAccountCredentials._from_parsed_json_keyfile
    - oauth2client.client._raise_exception_for_missing_fields
    - oauth2client.client.GoogleCredentials.__init__
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.service_account.ServiceAccountCredentials.from_json_keyfile_dict
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - client_credentials.get
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - os.environ.get
    - pyasn1_modules.pem.readPemBlocksFromFile
    - oauth2client.client._raise_exception_for_reading_json
    - os.path.join
    - six.StringIO
    - oauth2client.client._get_application_default_credential_from_file
    - json.load
    - pkey_info.asOctets
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - <builtin>.set
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1343
    functionName: oauth2client.client._get_environment_variable_file
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - os.path.isfile
    - os.environ.get
    linkageType: pythonLinkage
    raised:
    - ApplicationDefaultCredentialsError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1358
    functionName: oauth2client.client._get_well_known_file
    functionSourceFile: oauth2client.client
    functionUses: 2
    functionsReached:
    - os.environ.get
    - os.path.expanduser
    - os.getenv
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1382
    functionName: oauth2client.client._get_application_default_credential_from_file
    functionSourceFile: oauth2client.client
    functionUses: 2
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client._helpers._from_bytes
    - OpenSSL.crypto.load_privatekey
    - <builtin>.isinstance
    - value.decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - keyfile_dict.get
    - raw_key_input.find
    - <builtin>.open
    - required_fields.difference
    - client_credentials.keys
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.service_account.ServiceAccountCredentials._from_parsed_json_keyfile
    - oauth2client.client._raise_exception_for_missing_fields
    - oauth2client.client.GoogleCredentials.__init__
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.service_account.ServiceAccountCredentials.from_json_keyfile_dict
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - client_credentials.get
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - json.load
    - pkey_info.asOctets
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - <builtin>.set
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised:
    - ApplicationDefaultCredentialsError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - credential_file
    - extra_help
    - error
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1424
    functionName: oauth2client.client._raise_exception_for_reading_json
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ApplicationDefaultCredentialsError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1234
    functionName: oauth2client.client.GoogleCredentials._get_implicit_credentials
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ApplicationDefaultCredentialsError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1264
    functionName: oauth2client.client.GoogleCredentials.get_application_default
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - oauth2client.client.GoogleCredentials._get_implicit_credentials
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - credential_filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1274
    functionName: oauth2client.client.GoogleCredentials.from_stream
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client._helpers._from_bytes
    - OpenSSL.crypto.load_privatekey
    - <builtin>.isinstance
    - value.decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - keyfile_dict.get
    - raw_key_input.find
    - <builtin>.open
    - required_fields.difference
    - os.path.isfile
    - client_credentials.keys
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.service_account.ServiceAccountCredentials._from_parsed_json_keyfile
    - oauth2client.client._raise_exception_for_missing_fields
    - oauth2client.client.GoogleCredentials.__init__
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.service_account.ServiceAccountCredentials.from_json_keyfile_dict
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - client_credentials.get
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - pyasn1_modules.pem.readPemBlocksFromFile
    - oauth2client.client._raise_exception_for_reading_json
    - six.StringIO
    - oauth2client.client._get_application_default_credential_from_file
    - json.load
    - pkey_info.asOctets
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - <builtin>.set
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised:
    - ApplicationDefaultCredentialsError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - filename
    - json_contents
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1303
    functionName: oauth2client.client._save_private_file
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - tempfile.mktemp
    - json.dump
    - os.fdopen
    - shutil.move
    - os.open
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tempfile.mktemp
    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.open
    functionSourceFile: os
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.fdopen
    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: json.dump
    functionSourceFile: json
    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: shutil.move
    functionSourceFile: shutil
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d107340>
    argNames:
    - credentials
    - well_known_file
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1318
    functionName: oauth2client.client.save_to_well_known_file
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - tempfile.mktemp
    - oauth2client.client._save_private_file
    - os.path.isdir
    - os.environ.get
    - os.getenv
    - os.path.join
    - json.dump
    - os.fdopen
    - os.path.expanduser
    - os.path.dirname
    - oauth2client.client._get_well_known_file
    - shutil.move
    - os.open
    linkageType: pythonLinkage
    raised:
    - OSError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.dirname
    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: 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.expanduser
    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: <builtin>.open
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: json.load
    functionSourceFile: json
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client_credentials.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: client_credentials.keys
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: required_fields.difference
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - missing_fields
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1419
    functionName: oauth2client.client._raise_exception_for_missing_fields
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ApplicationDefaultCredentialsError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d2ecac0>
    - <ast.Constant object at 0x7f1d2d2ece80>
    - <ast.Constant object at 0x7f1d2d2ec520>
    argNames:
    - cls
    - keyfile_dict
    - scopes
    - token_uri
    - revoke_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 226
    functionName: oauth2client.service_account.ServiceAccountCredentials.from_json_keyfile_dict
    functionSourceFile: oauth2client.service_account
    functionUses: 3
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client._helpers._from_bytes
    - OpenSSL.crypto.load_privatekey
    - <builtin>.isinstance
    - value.decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - keyfile_dict.get
    - raw_key_input.find
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.service_account.ServiceAccountCredentials._from_parsed_json_keyfile
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - pkey_info.asOctets
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - scope
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 133
    functionName: oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 19
    functionsReached:
    - <builtin>.isinstance
    - kwargs.get
    - <builtin>.super
    - oauth2client._helpers.scopes_to_string
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d36f9d0>
    argNames:
    - self
    - email
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: oauth2client.contrib.gce.AppAssertionCredentials.__init__
    functionSourceFile: oauth2client.contrib.gce
    functionUses: 2
    functionsReached:
    - warnings.warn
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: oauth2client.client.AssertionCredentials
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - oauth2client._helpers.positional
    - <builtin>.isinstance
    - <builtin>.len
    - functools.wraps
    - inspect.getargspec
    - oauth2client._helpers.positional.positional_decorator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d3d8940>
    - <ast.Attribute object at 0x7f1d2d3d8c10>
    - <ast.Attribute object at 0x7f1d2d3d8b20>
    argNames:
    - self
    - assertion_type
    - user_agent
    - token_uri
    - revoke_uri
    - unused_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1456
    functionName: oauth2client.client.AssertionCredentials.__init__
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1483
    functionName: oauth2client.client.AssertionCredentials._generate_refresh_request_body
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - <builtin>.isinstance
    - oauth2client._helpers._json_encode
    - value.encode
    - base64.urlsafe_b64encode
    - oauth2client._openssl_crypt.OpenSSLSigner.sign
    - Crypto.Hash.SHA256.new
    - OpenSSL.crypto.sign
    - oauth2client._pycrypto_crypt.PyCryptoSigner.sign
    - json.dumps
    - logger.debug
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers._urlsafe_b64encode
    - time.time
    - <builtin>.int
    - oauth2client.crypt.make_signed_jwt
    - payload.update
    - Crypto.Signature.PKCS1_v1_5.new
    - six.moves.urllib.parse.urlencode
    - segments.append
    - oauth2client.service_account.ServiceAccountCredentials._generate_assertion
    - oauth2client.client.AssertionCredentials._generate_assertion
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1493
    functionName: oauth2client.client.AssertionCredentials._generate_assertion
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 373
    functionName: oauth2client.service_account.ServiceAccountCredentials._generate_assertion
    functionSourceFile: oauth2client.service_account
    functionUses: 1
    functionsReached:
    - <builtin>.str
    - <builtin>.isinstance
    - oauth2client._helpers._json_encode
    - value.encode
    - base64.urlsafe_b64encode
    - oauth2client._openssl_crypt.OpenSSLSigner.sign
    - Crypto.Hash.SHA256.new
    - OpenSSL.crypto.sign
    - oauth2client._pycrypto_crypt.PyCryptoSigner.sign
    - json.dumps
    - logger.debug
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers._urlsafe_b64encode
    - time.time
    - <builtin>.int
    - oauth2client.crypt.make_signed_jwt
    - payload.update
    - Crypto.Signature.PKCS1_v1_5.new
    - segments.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1497
    functionName: oauth2client.client.AssertionCredentials._revoke
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_delete
    - oauth2client.contrib.appengine.StorageByKeyName._delete_entity
    - google.appengine.ext.db.delete
    - query_params.update
    - oauth2client._helpers._from_bytes
    - google.appengine.ext.ndb.Key
    - <builtin>.isinstance
    - value.decode
    - oauth2client.client.Storage.delete
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_delete
    - <builtin>.issubclass
    - json.loads
    - logger.info
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - flask.session.pop
    - <builtin>.getattr
    - oauth2client._helpers.parse_unique_urlencoded
    - google.appengine.ext.db.Key.from_path
    - <builtin>.len
    - google.appengine.ext.db.Model.kind
    - six.moves.urllib.parse.parse_qs
    - oauth2client.contrib.appengine.StorageByKeyName.locked_delete
    - six.moves.urllib.parse.urlencode
    - oauth2client.client.Storage.release_lock
    - six.iteritems
    - oauth2client.transport.request
    - parts._replace
    - oauth2client.client.Storage.acquire_lock
    - six.moves.urllib.parse.urlparse
    - oauth2client.client.OAuth2Credentials._do_revoke
    - oauth2client._helpers.update_query_params
    linkageType: pythonLinkage
    raised: []
    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: 1505
    functionName: oauth2client.client.AssertionCredentials.sign_blob
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1518
    functionName: oauth2client.client._require_crypto_or_die
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - CryptoUnavailableError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d857670>
    - <ast.Name object at 0x7f1d2d857400>
    argNames:
    - id_token
    - audience
    - http
    - cert_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1530
    functionName: oauth2client.client.verify_id_token
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - base64.urlsafe_b64decode
    - oauth2client.crypt.verify_signed_jwt_with_certs
    - jwt.split
    - OpenSSL.crypto.verify
    - oauth2client._pure_python_crypt._bit_list_to_bytes
    - OpenSSL.crypto.load_certificate
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - value.encode
    - pyasn1_modules.rfc2459.Certificate
    - <builtin>.bytes
    - oauth2client._openssl_crypt.OpenSSLVerifier.__init__
    - rsa.pem.load_pem
    - six.moves.xrange
    - rsa.PublicKey.load_pkcs1
    - oauth2client._pycrypto_crypt.PyCryptoVerifier.__init__
    - byte_vals.append
    - json.loads
    - Crypto.Hash.SHA256.new
    - jwt.count
    - oauth2client._openssl_crypt.OpenSSLVerifier.verify
    - <builtin>.bytearray
    - oauth2client.transport.get_cached_http
    - oauth2client._helpers._urlsafe_b64decode
    - oauth2client._pure_python_crypt.RsaVerifier.__init__
    - oauth2client._openssl_crypt.OpenSSLVerifier.from_string
    - oauth2client._pycrypto_crypt.PyCryptoVerifier.from_string
    - oauth2client.crypt._verify_signature
    - <builtin>.getattr
    - Crypto.Util.asn1.DerSequence.decode
    - certs.values
    - oauth2client._helpers._to_bytes
    - oauth2client.client._require_crypto_or_die
    - Crypto.Util.asn1.DerSequence
    - oauth2client.crypt._check_audience
    - <builtin>.len
    - <builtin>.sum
    - time.time
    - <builtin>.int
    - Crypto.PublicKey.RSA.importKey
    - Crypto.Signature.PKCS1_v1_5.new
    - oauth2client.crypt._verify_time_range
    - <builtin>.zip
    - oauth2client._pycrypto_crypt.PyCryptoVerifier.verify
    - oauth2client.transport.request
    - key_pem.replace
    - oauth2client._pure_python_crypt.RsaVerifier.from_string
    - payload_dict.get
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised:
    - VerifyJwtTokenError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 48
    functionName: oauth2client.transport.get_cached_http
    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: <builtin>.type
    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: id_token.split
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - content
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1588
    functionName: oauth2client.client._parse_exchange_token_response
    functionSourceFile: oauth2client.client
    functionUses: 4
    functionsReached:
    - oauth2client._helpers.parse_unique_urlencoded
    - json.loads
    - oauth2client._helpers._from_bytes
    - six.iteritems
    - six.moves.urllib.parse.parse_qs
    - <builtin>.isinstance
    - value.decode
    - <builtin>.len
    - resp.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp.pop
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 14
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2ce565b0>
    - <ast.Constant object at 0x7f1d2ce565e0>
    - <ast.Constant object at 0x7f1d2ce56610>
    - <ast.Attribute object at 0x7f1d2ce56640>
    - <ast.Attribute object at 0x7f1d2ce566a0>
    - <ast.Attribute object at 0x7f1d2ce56700>
    - <ast.Attribute object at 0x7f1d2ce56760>
    - <ast.Attribute object at 0x7f1d2ce567c0>
    - <ast.Constant object at 0x7f1d2ce56820>
    - <ast.Constant object at 0x7f1d2ce56850>
    argNames:
    - client_id
    - client_secret
    - scope
    - code
    - redirect_uri
    - http
    - user_agent
    - token_uri
    - auth_uri
    - revoke_uri
    - device_uri
    - token_info_uri
    - pkce
    - code_verifier
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1618
    functionName: oauth2client.client.credentials_from_code
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - base64.urlsafe_b64decode
    - oauth2client.client.OAuth2Credentials.__init__
    - <builtin>.type
    - <builtin>.str
    - oauth2client._helpers._from_bytes
    - oauth2client.client._extract_id_token
    - <builtin>.isinstance
    - value.decode
    - value.encode
    - datetime.timedelta
    - oauth2client._helpers.string_to_scopes
    - oauth2client._helpers.scopes_to_string
    - httplib2.Http
    - params.update
    - oauth2client.client._parse_exchange_token_response
    - oauth2client.transport.get_http_object
    - logger.info
    - json.loads
    - oauth2client._helpers._urlsafe_b64decode
    - <builtin>.getattr
    - oauth2client.client._oauth2_web_server_flow_params
    - oauth2client._helpers.parse_unique_urlencoded
    - oauth2client._helpers._to_bytes
    - id_token.split
    - <builtin>.len
    - d.get
    - <builtin>.int
    - six.moves.urllib.parse.parse_qs
    - resp.pop
    - params.get
    - oauth2client.client.OAuth2WebServerFlow.__init__
    - six.moves.urllib.parse.urlencode
    - logger.warning
    - oauth2client.transport.request
    - six.iteritems
    - scopes.split
    - <builtin>.set
    - oauth2client.client.OAuth2WebServerFlow.step2_exchange
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 16
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2ce61be0>
    - <ast.Constant object at 0x7f1d2ce61c10>
    - <ast.Constant object at 0x7f1d2ce61c40>
    - <ast.Constant object at 0x7f1d2ce61c70>
    - <ast.Attribute object at 0x7f1d2ce61ca0>
    - <ast.Attribute object at 0x7f1d2ce61d00>
    - <ast.Attribute object at 0x7f1d2ce61d60>
    - <ast.Constant object at 0x7f1d2ce61dc0>
    - <ast.Attribute object at 0x7f1d2ce61df0>
    - <ast.Attribute object at 0x7f1d2ce61e50>
    - <ast.Constant object at 0x7f1d2ce61eb0>
    - <ast.Constant object at 0x7f1d2ce61ee0>
    - <ast.Constant object at 0x7f1d2ce61f10>
    argNames:
    - self
    - client_id
    - client_secret
    - scope
    - redirect_uri
    - user_agent
    - auth_uri
    - token_uri
    - revoke_uri
    - login_hint
    - device_uri
    - token_info_uri
    - authorization_header
    - pkce
    - code_verifier
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1812
    functionName: oauth2client.client.OAuth2WebServerFlow.__init__
    functionSourceFile: oauth2client.client
    functionUses: 11
    functionsReached:
    - oauth2client.client._oauth2_web_server_flow_params
    - params.get
    - params.update
    - logger.warning
    - <builtin>.isinstance
    - oauth2client._helpers.scopes_to_string
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 4
    IfCount: 16
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2ce36100>
    - <ast.Constant object at 0x7f1d2ce36130>
    - <ast.Constant object at 0x7f1d2ce36160>
    argNames:
    - self
    - code
    - http
    - device_flow_info
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1992
    functionName: oauth2client.client.OAuth2WebServerFlow.step2_exchange
    functionSourceFile: oauth2client.client
    functionUses: 3
    functionsReached:
    - base64.urlsafe_b64decode
    - oauth2client.client.OAuth2Credentials.__init__
    - <builtin>.type
    - <builtin>.str
    - oauth2client._helpers._from_bytes
    - oauth2client.client._extract_id_token
    - <builtin>.isinstance
    - value.decode
    - value.encode
    - datetime.timedelta
    - oauth2client._helpers.string_to_scopes
    - httplib2.Http
    - oauth2client.client._parse_exchange_token_response
    - oauth2client.transport.get_http_object
    - logger.info
    - json.loads
    - oauth2client._helpers._urlsafe_b64decode
    - <builtin>.getattr
    - oauth2client._helpers.parse_unique_urlencoded
    - oauth2client._helpers._to_bytes
    - id_token.split
    - <builtin>.len
    - d.get
    - <builtin>.int
    - six.moves.urllib.parse.parse_qs
    - resp.pop
    - six.moves.urllib.parse.urlencode
    - oauth2client.transport.request
    - six.iteritems
    - scopes.split
    - <builtin>.set
    linkageType: pythonLinkage
    raised:
    - FlowExchangeError
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2ce592e0>
    - <ast.Constant object at 0x7f1d2ce59310>
    - <ast.Constant object at 0x7f1d2ce59340>
    - <ast.Constant object at 0x7f1d2ce59370>
    - <ast.Constant object at 0x7f1d2ce593a0>
    argNames:
    - filename
    - scope
    - code
    - message
    - redirect_uri
    - http
    - cache
    - device_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1684
    functionName: oauth2client.client.credentials_from_clientsecrets_and_code
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - base64.urlsafe_b64decode
    - oauth2client.client.OAuth2Credentials.__init__
    - <builtin>.next
    - <builtin>.type
    - <builtin>.str
    - oauth2client._helpers._from_bytes
    - oauth2client.client._extract_id_token
    - <builtin>.isinstance
    - value.decode
    - value.encode
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - datetime.timedelta
    - oauth2client._helpers.string_to_scopes
    - oauth2client._helpers.scopes_to_string
    - httplib2.Http
    - params.update
    - oauth2client.client._parse_exchange_token_response
    - oauth2client.transport.get_http_object
    - logger.info
    - json.loads
    - oauth2client.clientsecrets._loadfile
    - <builtin>.open
    - oauth2client._helpers._urlsafe_b64decode
    - <builtin>.getattr
    - oauth2client.client._oauth2_web_server_flow_params
    - cache.get
    - client_info.get
    - oauth2client._helpers.parse_unique_urlencoded
    - oauth2client.clientsecrets.loadfile
    - oauth2client._helpers._to_bytes
    - sys.exit
    - id_token.split
    - <builtin>.len
    - oauth2client.client.flow_from_clientsecrets
    - d.get
    - <builtin>.locals
    - six.moves.urllib.parse.parse_qs
    - <builtin>.int
    - resp.pop
    - params.get
    - oauth2client.client.OAuth2WebServerFlow.__init__
    - six.moves.urllib.parse.urlencode
    - logger.warning
    - oauth2client.transport.request
    - six.iteritems
    - json.load
    - cache.set
    - scopes.split
    - <builtin>.set
    - oauth2client.client.OAuth2WebServerFlow.step2_exchange
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2c6ce370>
    - <ast.Constant object at 0x7f1d2c6ce3a0>
    - <ast.Constant object at 0x7f1d2c6ce3d0>
    - <ast.Constant object at 0x7f1d2c6ce400>
    - <ast.Constant object at 0x7f1d2c6ce430>
    - <ast.Constant object at 0x7f1d2c6ce460>
    - <ast.Constant object at 0x7f1d2c6ce490>
    - <ast.Constant object at 0x7f1d2c6ce4c0>
    argNames:
    - filename
    - scope
    - redirect_uri
    - message
    - cache
    - login_hint
    - device_uri
    - pkce
    - code_verifier
    - prompt
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2093
    functionName: oauth2client.client.flow_from_clientsecrets
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - <builtin>.next
    - <builtin>.isinstance
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - oauth2client._helpers.scopes_to_string
    - params.update
    - oauth2client.clientsecrets._loadfile
    - <builtin>.open
    - oauth2client.client._oauth2_web_server_flow_params
    - cache.get
    - client_info.get
    - oauth2client.clientsecrets.loadfile
    - sys.exit
    - <builtin>.locals
    - params.get
    - oauth2client.client.OAuth2WebServerFlow.__init__
    - logger.warning
    - six.iteritems
    - json.load
    - cache.set
    linkageType: pythonLinkage
    raised:
    - UnknownClientSecretsFlowError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1746
    functionName: oauth2client.client.DeviceFlowInfo.FromResponse
    functionSourceFile: oauth2client.client
    functionUses: 1
    functionsReached:
    - datetime.timedelta
    - response.get
    - <builtin>.int
    - kwargs.update
    linkageType: pythonLinkage
    raised:
    - OAuth2DeviceCodeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - kwargs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1778
    functionName: oauth2client.client._oauth2_web_server_flow_params
    functionSourceFile: oauth2client.client
    functionUses: 12
    functionsReached:
    - params.get
    - params.update
    - 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: params.update
    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: params.get
    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: 2
    functionLinenumber: -1
    functionName: oauth2client.client.OAuth2WebServerFlow
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - oauth2client._helpers.positional
    - <builtin>.isinstance
    - <builtin>.len
    - functools.wraps
    - inspect.getargspec
    - oauth2client._helpers.positional.positional_decorator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2ce6bf70>
    - <ast.Constant object at 0x7f1d2ce6bfa0>
    argNames:
    - self
    - redirect_uri
    - state
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1896
    functionName: oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url
    functionSourceFile: oauth2client.client
    functionUses: 4
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - oauth2client._helpers.parse_unique_urlencoded
    - logger.warning
    - six.moves.urllib.parse.urlencode
    - query_params.update
    - _pkce.code_verifier
    - six.iteritems
    - _pkce.code_challenge
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - <builtin>.len
    - oauth2client._helpers.update_query_params
    - six.moves.urllib.parse.parse_qs
    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: _pkce.code_verifier
    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: _pkce.code_challenge
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2ce32520>
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1944
    functionName: oauth2client.client.OAuth2WebServerFlow.step1_get_device_and_user_codes
    functionSourceFile: oauth2client.client
    functionUses: 0
    functionsReached:
    - response.get
    - oauth2client.client.DeviceFlowInfo.FromResponse
    - oauth2client.transport.get_http_object
    - six.moves.urllib.parse.urlencode
    - json.loads
    - oauth2client._helpers._from_bytes
    - oauth2client.transport.request
    - <builtin>.isinstance
    - value.decode
    - httplib2.Http
    - datetime.timedelta
    - <builtin>.int
    - <builtin>.getattr
    - kwargs.update
    linkageType: pythonLinkage
    raised:
    - OAuth2DeviceCodeError
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2daade20>
    argNames:
    - filename
    - cache
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 129
    functionName: oauth2client.clientsecrets.loadfile
    functionSourceFile: oauth2client.clientsecrets
    functionUses: 12
    functionsReached:
    - cache.get
    - <builtin>.next
    - oauth2client.clientsecrets._loadfile
    - <builtin>.open
    - six.iteritems
    - json.load
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - cache.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: client_info.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: <builtin>.locals
    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: oauth2client.clientsecrets
    functionSourceFile: oauth2client.clientsecrets
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - clientsecrets_dict
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 68
    functionName: oauth2client.clientsecrets._validate_clientsecrets
    functionSourceFile: oauth2client.clientsecrets
    functionUses: 16
    functionsReached:
    - clientsecrets_dict.items
    linkageType: pythonLinkage
    raised:
    - InvalidClientSecretsError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: clientsecrets_dict.items
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 109
    functionName: oauth2client.clientsecrets.load
    functionSourceFile: oauth2client.clientsecrets
    functionUses: 0
    functionsReached:
    - json.load
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    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: 114
    functionName: oauth2client.clientsecrets.loads
    functionSourceFile: oauth2client.clientsecrets
    functionUses: 0
    functionsReached:
    - json.loads
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 119
    functionName: oauth2client.clientsecrets._loadfile
    functionSourceFile: oauth2client.clientsecrets
    functionUses: 13
    functionsReached:
    - <builtin>.open
    - oauth2client.clientsecrets._validate_clientsecrets
    - json.load
    - clientsecrets_dict.items
    linkageType: pythonLinkage
    raised:
    - InvalidClientSecretsError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cache.get
    functionSourceFile: <builtin>
    functionUses: 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: cache.set
    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>.next
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: oauth2client.service_account
    functionSourceFile: oauth2client.service_account
    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: oauth2client.service_account.ServiceAccountCredentials
    functionSourceFile: oauth2client.service_account
    functionUses: 0
    functionsReached:
    - <builtin>.frozenset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d271cd0>
    - <ast.Constant object at 0x7f1d2d271a30>
    - <ast.Constant object at 0x7f1d2d2713d0>
    - <ast.Constant object at 0x7f1d2d271a00>
    - <ast.Attribute object at 0x7f1d2d271a90>
    - <ast.Attribute object at 0x7f1d2d271280>
    argNames:
    - self
    - service_account_email
    - signer
    - scopes
    - private_key_id
    - client_id
    - user_agent
    - token_uri
    - revoke_uri
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 95
    functionName: oauth2client.service_account.ServiceAccountCredentials.__init__
    functionSourceFile: oauth2client.service_account
    functionUses: 27
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.super
    - oauth2client._helpers.scopes_to_string
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.b64encode
    functionSourceFile: base64
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2dab6bb0>
    - <ast.Constant object at 0x7f1d2dab6c40>
    argNames:
    - cls
    - keyfile_dict
    - scopes
    - token_uri
    - revoke_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 144
    functionName: oauth2client.service_account.ServiceAccountCredentials._from_parsed_json_keyfile
    functionSourceFile: oauth2client.service_account
    functionUses: 5
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client._helpers._from_bytes
    - OpenSSL.crypto.load_privatekey
    - <builtin>.isinstance
    - value.decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - keyfile_dict.get
    - raw_key_input.find
    - OpenSSL.crypto.load_pkcs12
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - pkey_info.asOctets
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pyasn1.codec.der.decoder.decode
    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: keyfile_dict.get
    functionSourceFile: <builtin>
    functionUses: 6
    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 0x7f1d2d46c070>
    - <ast.Constant object at 0x7f1d2d46cfd0>
    - <ast.Constant object at 0x7f1d2d46cb50>
    argNames:
    - cls
    - filename
    - scopes
    - token_uri
    - revoke_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 194
    functionName: oauth2client.service_account.ServiceAccountCredentials.from_json_keyfile_name
    functionSourceFile: oauth2client.service_account
    functionUses: 0
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client._helpers._from_bytes
    - OpenSSL.crypto.load_privatekey
    - <builtin>.isinstance
    - value.decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - keyfile_dict.get
    - raw_key_input.find
    - <builtin>.open
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.service_account.ServiceAccountCredentials._from_parsed_json_keyfile
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - json.load
    - pkey_info.asOctets
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d2ec6d0>
    - <ast.Constant object at 0x7f1d2d2ec070>
    - <ast.Attribute object at 0x7f1d2d2ecca0>
    - <ast.Attribute object at 0x7f1d2d2ec340>
    argNames:
    - cls
    - service_account_email
    - private_key_pkcs12
    - private_key_password
    - scopes
    - token_uri
    - revoke_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 256
    functionName: oauth2client.service_account.ServiceAccountCredentials._from_p12_keyfile_contents
    functionSourceFile: oauth2client.service_account
    functionUses: 2
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - OpenSSL.crypto.load_privatekey
    - value.decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - raw_key_input.find
    - OpenSSL.crypto.load_pkcs12
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - pkey_info.asOctets
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d2120d0>
    - <ast.Constant object at 0x7f1d2d212af0>
    - <ast.Attribute object at 0x7f1d2d212d90>
    - <ast.Attribute object at 0x7f1d2d326e50>
    argNames:
    - cls
    - service_account_email
    - filename
    - private_key_password
    - scopes
    - token_uri
    - revoke_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 299
    functionName: oauth2client.service_account.ServiceAccountCredentials.from_p12_keyfile
    functionSourceFile: oauth2client.service_account
    functionUses: 0
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client._helpers._from_bytes
    - OpenSSL.crypto.load_privatekey
    - <builtin>.isinstance
    - value.decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - raw_key_input.find
    - <builtin>.open
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.service_account.ServiceAccountCredentials._from_p12_keyfile_contents
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - pkey_info.asOctets
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - file_obj.read
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: file_obj.read
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d3266a0>
    - <ast.Constant object at 0x7f1d2d326610>
    - <ast.Attribute object at 0x7f1d2d326100>
    - <ast.Attribute object at 0x7f1d2d3260a0>
    argNames:
    - cls
    - service_account_email
    - file_buffer
    - private_key_password
    - scopes
    - token_uri
    - revoke_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 337
    functionName: oauth2client.service_account.ServiceAccountCredentials.from_p12_keyfile_buffer
    functionSourceFile: oauth2client.service_account
    functionUses: 0
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client._helpers._from_bytes
    - OpenSSL.crypto.load_privatekey
    - <builtin>.isinstance
    - value.decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - raw_key_input.find
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.service_account.ServiceAccountCredentials._from_p12_keyfile_contents
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - file_buffer.read
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - pkey_info.asOctets
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: file_buffer.read
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: payload.update
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - blob
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 387
    functionName: oauth2client.service_account.ServiceAccountCredentials.sign_blob
    functionSourceFile: oauth2client.service_account
    functionUses: 0
    functionsReached:
    - oauth2client._helpers._to_bytes
    - Crypto.Hash.SHA256.new
    - <builtin>.isinstance
    - OpenSSL.crypto.sign
    - value.encode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.sign
    - Crypto.Signature.PKCS1_v1_5.new
    - oauth2client._openssl_crypt.OpenSSLSigner.sign
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 403
    functionName: oauth2client.service_account.ServiceAccountCredentials.service_account_email
    functionSourceFile: oauth2client.service_account
    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: 412
    functionName: oauth2client.service_account.ServiceAccountCredentials.serialization_data
    functionSourceFile: oauth2client.service_account
    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: json_data.get
    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: base64.b64decode
    functionSourceFile: base64
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 477
    functionName: oauth2client.service_account.ServiceAccountCredentials.create_scoped_required
    functionSourceFile: oauth2client.service_account
    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
    - scopes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 480
    functionName: oauth2client.service_account.ServiceAccountCredentials.create_scoped
    functionSourceFile: oauth2client.service_account
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - claims
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 495
    functionName: oauth2client.service_account.ServiceAccountCredentials.create_with_claims
    functionSourceFile: oauth2client.service_account
    functionUses: 1
    functionsReached:
    - new_kwargs.update
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.dict
    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: new_kwargs.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sub
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 522
    functionName: oauth2client.service_account.ServiceAccountCredentials.create_delegated
    functionSourceFile: oauth2client.service_account
    functionUses: 0
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials.create_with_claims
    - new_kwargs.update
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - utc_time
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 544
    functionName: oauth2client.service_account._datetime_to_secs
    functionSourceFile: oauth2client.service_account
    functionUses: 6
    functionsReached:
    - datetime.datetime
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datetime.datetime
    functionSourceFile: datetime
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d28d880>
    - <ast.Constant object at 0x7f1d2d28d910>
    - <ast.Constant object at 0x7f1d2d28dbe0>
    - <ast.Constant object at 0x7f1d2d28de20>
    - <ast.Attribute object at 0x7f1d2d28da00>
    - <ast.Attribute object at 0x7f1d2d28ddf0>
    - <ast.Constant object at 0x7f1d2d860220>
    argNames:
    - self
    - service_account_email
    - signer
    - scopes
    - private_key_id
    - client_id
    - user_agent
    - token_uri
    - revoke_uri
    - additional_claims
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 562
    functionName: oauth2client.service_account._JWTAccessCredentials.__init__
    functionSourceFile: oauth2client.service_account
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 584
    functionName: oauth2client.service_account._JWTAccessCredentials.authorize
    functionSourceFile: oauth2client.service_account
    functionUses: 0
    functionsReached:
    - oauth2client.transport.wrap_http_for_jwt_access
    - oauth2client.transport.wrap_http_for_auth
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - credentials
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 204
    functionName: oauth2client.transport.wrap_http_for_jwt_access
    functionSourceFile: oauth2client.transport
    functionUses: 1
    functionsReached:
    - oauth2client.transport.wrap_http_for_auth
    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 0x7f1d2d30dee0>
    - <ast.Constant object at 0x7f1d2d30d070>
    argNames:
    - self
    - http
    - additional_claims
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 602
    functionName: oauth2client.service_account._JWTAccessCredentials.get_access_token
    functionSourceFile: oauth2client.service_account
    functionUses: 0
    functionsReached:
    - oauth2client.service_account._JWTAccessCredentials.refresh
    - <builtin>.str
    - <builtin>.isinstance
    - oauth2client.client.OAuth2Credentials._expires_in
    - oauth2client._helpers._json_encode
    - value.encode
    - base64.urlsafe_b64encode
    - datetime.timedelta
    - oauth2client._openssl_crypt.OpenSSLSigner.sign
    - Crypto.Hash.SHA256.new
    - oauth2client.service_account._JWTAccessCredentials._create_token
    - OpenSSL.crypto.sign
    - oauth2client._pycrypto_crypt.PyCryptoSigner.sign
    - json.dumps
    - datetime.datetime
    - logger.debug
    - oauth2client.service_account._JWTAccessCredentials._refresh
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers._urlsafe_b64encode
    - oauth2client.crypt.make_signed_jwt
    - payload.update
    - Crypto.Signature.PKCS1_v1_5.new
    - segments.append
    - oauth2client.service_account._datetime_to_secs
    - jwt.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 651
    functionName: oauth2client.service_account._JWTAccessCredentials.refresh
    functionSourceFile: oauth2client.service_account
    functionUses: 2
    functionsReached:
    - <builtin>.str
    - <builtin>.isinstance
    - oauth2client._helpers._json_encode
    - value.encode
    - base64.urlsafe_b64encode
    - datetime.timedelta
    - oauth2client._openssl_crypt.OpenSSLSigner.sign
    - Crypto.Hash.SHA256.new
    - oauth2client.service_account._JWTAccessCredentials._create_token
    - OpenSSL.crypto.sign
    - oauth2client._pycrypto_crypt.PyCryptoSigner.sign
    - json.dumps
    - datetime.datetime
    - logger.debug
    - oauth2client.service_account._JWTAccessCredentials._refresh
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers._urlsafe_b64encode
    - oauth2client.crypt.make_signed_jwt
    - payload.update
    - Crypto.Signature.PKCS1_v1_5.new
    - segments.append
    - oauth2client.service_account._datetime_to_secs
    - jwt.decode
    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 0x7f1d2db02e20>
    argNames:
    - self
    - additional_claims
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 670
    functionName: oauth2client.service_account._JWTAccessCredentials._create_token
    functionSourceFile: oauth2client.service_account
    functionUses: 5
    functionsReached:
    - <builtin>.str
    - <builtin>.isinstance
    - oauth2client._helpers._json_encode
    - value.encode
    - base64.urlsafe_b64encode
    - datetime.timedelta
    - oauth2client._openssl_crypt.OpenSSLSigner.sign
    - Crypto.Hash.SHA256.new
    - OpenSSL.crypto.sign
    - oauth2client._pycrypto_crypt.PyCryptoSigner.sign
    - json.dumps
    - datetime.datetime
    - logger.debug
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers._urlsafe_b64encode
    - oauth2client.crypt.make_signed_jwt
    - payload.update
    - Crypto.Signature.PKCS1_v1_5.new
    - segments.append
    - oauth2client.service_account._datetime_to_secs
    - jwt.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 623
    functionName: oauth2client.service_account._JWTAccessCredentials.revoke
    functionSourceFile: oauth2client.service_account
    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: 627
    functionName: oauth2client.service_account._JWTAccessCredentials.create_scoped_required
    functionSourceFile: oauth2client.service_account
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Attribute object at 0x7f1d2d08d580>
    - <ast.Attribute object at 0x7f1d2d08d6d0>
    argNames:
    - self
    - scopes
    - token_uri
    - revoke_uri
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 631
    functionName: oauth2client.service_account._JWTAccessCredentials.create_scoped
    functionSourceFile: oauth2client.service_account
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.super
    - oauth2client._helpers.scopes_to_string
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 662
    functionName: oauth2client.service_account._JWTAccessCredentials._refresh
    functionSourceFile: oauth2client.service_account
    functionUses: 4
    functionsReached:
    - <builtin>.str
    - <builtin>.isinstance
    - oauth2client._helpers._json_encode
    - value.encode
    - base64.urlsafe_b64encode
    - datetime.timedelta
    - oauth2client._openssl_crypt.OpenSSLSigner.sign
    - Crypto.Hash.SHA256.new
    - oauth2client.service_account._JWTAccessCredentials._create_token
    - OpenSSL.crypto.sign
    - oauth2client._pycrypto_crypt.PyCryptoSigner.sign
    - json.dumps
    - datetime.datetime
    - logger.debug
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers._urlsafe_b64encode
    - oauth2client.crypt.make_signed_jwt
    - payload.update
    - Crypto.Signature.PKCS1_v1_5.new
    - segments.append
    - oauth2client.service_account._datetime_to_secs
    - jwt.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.decode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client.transport
    functionSourceFile: oauth2client.transport
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - httplib2.Http
    - oauth2client.transport.MemoryCache.__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: 35
    functionName: oauth2client.transport.MemoryCache.__init__
    functionSourceFile: oauth2client.transport
    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
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 38
    functionName: oauth2client.transport.MemoryCache.get
    functionSourceFile: oauth2client.transport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 41
    functionName: oauth2client.transport.MemoryCache.set
    functionSourceFile: oauth2client.transport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 44
    functionName: oauth2client.transport.MemoryCache.delete
    functionSourceFile: oauth2client.transport
    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: httplib2.Http
    functionSourceFile: httplib2
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - headers
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: oauth2client.transport._initialize_headers
    functionSourceFile: oauth2client.transport
    functionUses: 2
    functionsReached:
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - headers
    - user_agent
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 89
    functionName: oauth2client.transport._apply_user_agent
    functionSourceFile: oauth2client.transport
    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:
    - headers
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 110
    functionName: oauth2client.transport.clean_headers
    functionSourceFile: oauth2client.transport
    functionUses: 2
    functionsReached:
    - oauth2client._helpers._to_bytes
    - <builtin>.str
    - six.iteritems
    - <builtin>.isinstance
    - value.encode
    linkageType: pythonLinkage
    raised:
    - NonAsciiHeaderError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2db02220>
    - <ast.Constant object at 0x7f1d2db02910>
    - <ast.Constant object at 0x7f1d2db02040>
    - <ast.Attribute object at 0x7f1d2dd0d970>
    - <ast.Constant object at 0x7f1d2dd0dd90>
    argNames:
    - uri
    - method
    - body
    - headers
    - redirections
    - connection_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 153
    functionName: oauth2client.transport.wrap_http_for_auth.new_request
    functionSourceFile: oauth2client.transport
    functionUses: 0
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - body.tell
    - oauth2client.contrib._metadata.get_token
    - oauth2client.contrib.gce.AppAssertionCredentials._refresh
    - oauth2client.transport._apply_user_agent
    - _LOGGER.info
    - query_params.update
    - oauth2client._helpers._from_bytes
    - <builtin>.all
    - <builtin>.isinstance
    - value.decode
    - <builtin>.str
    - oauth2client._helpers._json_encode
    - value.encode
    - <builtin>.range
    - base64.urlsafe_b64encode
    - oauth2client.transport._initialize_headers
    - datetime.timedelta
    - oauth2client._openssl_crypt.OpenSSLSigner.sign
    - oauth2client.contrib._metadata.get
    - body.seek
    - oauth2client.contrib.appengine.AppAssertionCredentials._refresh
    - json.loads
    - oauth2client.service_account._JWTAccessCredentials._create_token
    - Crypto.Hash.SHA256.new
    - oauth2client.client.OAuth2Credentials.apply
    - OpenSSL.crypto.sign
    - six.moves.urllib.parse.urljoin
    - oauth2client._pycrypto_crypt.PyCryptoSigner.sign
    - json.dumps
    - oauth2client.transport.clean_headers
    - <builtin>.getattr
    - oauth2client.client.AccessTokenCredentials._refresh
    - oauth2client._helpers._add_query_parameter
    - datetime.datetime
    - logger.debug
    - oauth2client.service_account._JWTAccessCredentials._refresh
    - oauth2client._helpers.parse_unique_urlencoded
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib._metadata.get_service_account_info
    - <builtin>.len
    - oauth2client._helpers._urlsafe_b64encode
    - oauth2client.crypt.make_signed_jwt
    - six.moves.urllib.parse.parse_qs
    - payload.update
    - Crypto.Signature.PKCS1_v1_5.new
    - google.appengine.api.app_identity.get_access_token
    - six.moves.urllib.parse.urlencode
    - segments.append
    - oauth2client.transport.request
    - oauth2client.service_account._datetime_to_secs
    - six.iteritems
    - jwt.decode
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    - oauth2client.contrib.gce.AppAssertionCredentials._retrieve_info
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _LOGGER.info
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.all
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: body.tell
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: body.seek
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d30ddf0>
    - <ast.Constant object at 0x7f1d2d30d7c0>
    - <ast.Constant object at 0x7f1d2d30d550>
    - <ast.Attribute object at 0x7f1d2d30d100>
    - <ast.Constant object at 0x7f1d2d30dbe0>
    argNames:
    - uri
    - method
    - body
    - headers
    - redirections
    - connection_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 223
    functionName: oauth2client.transport.wrap_http_for_jwt_access.new_request
    functionSourceFile: oauth2client.transport
    functionUses: 0
    functionsReached:
    - oauth2client.service_account._JWTAccessCredentials.refresh
    - oauth2client.transport._apply_user_agent
    - <builtin>.str
    - <builtin>.isinstance
    - oauth2client._helpers._json_encode
    - value.encode
    - base64.urlsafe_b64encode
    - oauth2client.transport._initialize_headers
    - datetime.timedelta
    - oauth2client._openssl_crypt.OpenSSLSigner.sign
    - Crypto.Hash.SHA256.new
    - oauth2client.service_account._JWTAccessCredentials._create_token
    - OpenSSL.crypto.sign
    - oauth2client._pycrypto_crypt.PyCryptoSigner.sign
    - json.dumps
    - oauth2client.transport.clean_headers
    - <builtin>.getattr
    - datetime.datetime
    - logger.debug
    - oauth2client.service_account._JWTAccessCredentials._refresh
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers._urlsafe_b64encode
    - oauth2client.crypt.make_signed_jwt
    - payload.update
    - Crypto.Signature.PKCS1_v1_5.new
    - uri.split
    - segments.append
    - oauth2client.transport.request
    - oauth2client.service_account._datetime_to_secs
    - six.iteritems
    - jwt.decode
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uri.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: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client.contrib.gce
    functionSourceFile: oauth2client.contrib.gce
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - json_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 78
    functionName: oauth2client.contrib.gce.AppAssertionCredentials.from_json
    functionSourceFile: oauth2client.contrib.gce
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 82
    functionName: oauth2client.contrib.gce.AppAssertionCredentials.to_json
    functionSourceFile: oauth2client.contrib.gce
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 86
    functionName: oauth2client.contrib.gce.AppAssertionCredentials.retrieve_scopes
    functionSourceFile: oauth2client.contrib.gce
    functionUses: 0
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - query_params.update
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - oauth2client.contrib._metadata.get
    - json.loads
    - six.moves.urllib.parse.urljoin
    - <builtin>.getattr
    - oauth2client._helpers._add_query_parameter
    - oauth2client._helpers.parse_unique_urlencoded
    - oauth2client.contrib._metadata.get_service_account_info
    - <builtin>.len
    - six.moves.urllib.parse.parse_qs
    - six.moves.urllib.parse.urlencode
    - six.iteritems
    - oauth2client.transport.request
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    - oauth2client.contrib.gce.AppAssertionCredentials._retrieve_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 102
    functionName: oauth2client.contrib.gce.AppAssertionCredentials._retrieve_info
    functionSourceFile: oauth2client.contrib.gce
    functionUses: 5
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - query_params.update
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - oauth2client.contrib._metadata.get
    - json.loads
    - six.moves.urllib.parse.urljoin
    - <builtin>.getattr
    - oauth2client._helpers._add_query_parameter
    - oauth2client._helpers.parse_unique_urlencoded
    - oauth2client.contrib._metadata.get_service_account_info
    - <builtin>.len
    - six.moves.urllib.parse.parse_qs
    - six.moves.urllib.parse.urlencode
    - six.iteritems
    - oauth2client.transport.request
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    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 0x7f1d2d28d0a0>
    argNames:
    - http
    - service_account
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 74
    functionName: oauth2client.contrib._metadata.get_service_account_info
    functionSourceFile: oauth2client.contrib._metadata
    functionUses: 6
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - query_params.update
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - oauth2client.contrib._metadata.get
    - json.loads
    - six.moves.urllib.parse.urljoin
    - <builtin>.getattr
    - oauth2client._helpers._add_query_parameter
    - oauth2client._helpers.parse_unique_urlencoded
    - <builtin>.len
    - six.moves.urllib.parse.parse_qs
    - six.moves.urllib.parse.urlencode
    - six.iteritems
    - oauth2client.transport.request
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    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 0x7f1d2d28d5b0>
    argNames:
    - http
    - service_account
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 99
    functionName: oauth2client.contrib._metadata.get_token
    functionSourceFile: oauth2client.contrib._metadata
    functionUses: 4
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - query_params.update
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - datetime.timedelta
    - oauth2client.contrib._metadata.get
    - json.loads
    - six.moves.urllib.parse.urljoin
    - <builtin>.getattr
    - oauth2client._helpers._add_query_parameter
    - oauth2client._helpers.parse_unique_urlencoded
    - <builtin>.len
    - six.moves.urllib.parse.parse_qs
    - six.moves.urllib.parse.urlencode
    - six.iteritems
    - oauth2client.transport.request
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - 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: oauth2client.contrib.gce.AppAssertionCredentials.serialization_data
    functionSourceFile: oauth2client.contrib.gce
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 139
    functionName: oauth2client.contrib.gce.AppAssertionCredentials.create_scoped_required
    functionSourceFile: oauth2client.contrib.gce
    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
    - blob
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 142
    functionName: oauth2client.contrib.gce.AppAssertionCredentials.sign_blob
    functionSourceFile: oauth2client.contrib.gce
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client.contrib._metadata
    functionSourceFile: oauth2client.contrib._metadata
    functionUses: 0
    functionsReached:
    - os.getenv
    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 0x7f1d2d34d730>
    - <ast.Constant object at 0x7f1d2d34df10>
    argNames:
    - http
    - path
    - root
    - recursive
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 37
    functionName: oauth2client.contrib._metadata.get
    functionSourceFile: oauth2client.contrib._metadata
    functionUses: 8
    functionsReached:
    - oauth2client._helpers._add_query_parameter
    - six.moves.urllib.parse.urlunparse
    - oauth2client._helpers.parse_unique_urlencoded
    - json.loads
    - six.moves.urllib.parse.urlencode
    - query_params.update
    - oauth2client._helpers._from_bytes
    - six.iteritems
    - oauth2client.transport.request
    - <builtin>.isinstance
    - value.decode
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - <builtin>.len
    - six.moves.urllib.parse.urljoin
    - oauth2client._helpers.update_query_params
    - six.moves.urllib.parse.parse_qs
    - <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: six.moves.urllib.parse.urljoin
    functionSourceFile: six
    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: 2
    functionLinenumber: -1
    functionName: oauth2client.contrib.appengine
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - oauth2client._helpers.positional
    - <builtin>.isinstance
    - logging.getLogger
    - <builtin>.len
    - functools.wraps
    - inspect.getargspec
    - oauth2client._helpers.positional.positional_decorator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 70
    functionName: oauth2client.contrib.appengine._safe_html
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 4
    functionsReached:
    - cgi.escape
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cgi.escape
    functionSourceFile: cgi
    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: google.appengine.ext.db.StringProperty
    functionSourceFile: google
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client.contrib.appengine.SiteXsrfSecretKey
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - google.appengine.ext.db.StringProperty
    linkageType: 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: 91
    functionName: oauth2client.contrib.appengine._generate_new_xsrf_secret_key
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 6
    functionsReached:
    - os.urandom
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 96
    functionName: oauth2client.contrib.appengine.xsrf_secret_key
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 5
    functionsReached:
    - google.appengine.ext.db.Model.get_or_insert
    - google.appengine.api.memcache.add
    - os.urandom
    - <builtin>.str
    - model.put
    - google.appengine.api.memcache.get
    - oauth2client.contrib.appengine._generate_new_xsrf_secret_key
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: google.appengine.api.memcache.get
    functionSourceFile: google
    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: google.appengine.ext.db.Model.get_or_insert
    functionSourceFile: google
    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: model.put
    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: google.appengine.api.memcache.add
    functionSourceFile: google
    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: 2
    functionLinenumber: -1
    functionName: oauth2client.contrib.appengine.AppAssertionCredentials
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - oauth2client._helpers.positional
    - <builtin>.isinstance
    - <builtin>.len
    - functools.wraps
    - inspect.getargspec
    - oauth2client._helpers.positional.positional_decorator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - json_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 154
    functionName: oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 15
    functionsReached:
    - kwargs.get
    - json.loads
    - <builtin>.isinstance
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.super
    - oauth2client._helpers.scopes_to_string
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: google.appengine.api.app_identity.get_access_token
    functionSourceFile: google
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 180
    functionName: oauth2client.contrib.appengine.AppAssertionCredentials.serialization_data
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 184
    functionName: oauth2client.contrib.appengine.AppAssertionCredentials.create_scoped_required
    functionSourceFile: oauth2client.contrib.appengine
    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
    - scopes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 187
    functionName: oauth2client.contrib.appengine.AppAssertionCredentials.create_scoped
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - kwargs.get
    - <builtin>.isinstance
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.super
    - oauth2client._helpers.scopes_to_string
    linkageType: pythonLinkage
    raised: []
    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: 1
    functionLinenumber: 190
    functionName: oauth2client.contrib.appengine.AppAssertionCredentials.sign_blob
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - google.appengine.api.app_identity.sign_blob
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: google.appengine.api.app_identity.sign_blob
    functionSourceFile: google
    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: 206
    functionName: oauth2client.contrib.appengine.AppAssertionCredentials.service_account_email
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - google.appengine.api.app_identity.get_service_account_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: google.appengine.api.app_identity.get_service_account_name
    functionSourceFile: google
    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
    - model_instance
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 230
    functionName: oauth2client.contrib.appengine.FlowProperty.get_value_for_datastore
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - pickle.dumps
    - google.appengine.ext.db.Blob
    - <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: pickle.dumps
    functionSourceFile: pickle
    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: google.appengine.ext.db.Blob
    functionSourceFile: google
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 236
    functionName: oauth2client.contrib.appengine.FlowProperty.make_value_from_datastore
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - pickle.loads
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.loads
    functionSourceFile: pickle
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 241
    functionName: oauth2client.contrib.appengine.FlowProperty.validate
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 248
    functionName: oauth2client.contrib.appengine.FlowProperty.empty
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - model_instance
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 263
    functionName: oauth2client.contrib.appengine.CredentialsProperty.get_value_for_datastore
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - logger.info
    - <builtin>.type
    - <builtin>.str
    - cred.to_json
    - google.appengine.ext.db.Blob
    - <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: cred.to_json
    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:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 274
    functionName: oauth2client.contrib.appengine.CredentialsProperty.make_value_from_datastore
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - module_name.split
    - logger.info
    - json.loads
    - <builtin>.type
    - <builtin>.str
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - <builtin>.getattr
    - <builtin>.len
    - module_name.replace
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - <builtin>.__import__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 286
    functionName: oauth2client.contrib.appengine.CredentialsProperty.validate
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - logger.info
    - <builtin>.type
    - <builtin>.str
    - <builtin>.isinstance
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: oauth2client.contrib.appengine.StorageByKeyName
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - oauth2client._helpers.positional
    - <builtin>.isinstance
    - google.appengine.ext.db.non_transactional
    - <builtin>.len
    - functools.wraps
    - inspect.getargspec
    - oauth2client._helpers.positional.positional_decorator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d389220>
    - <ast.Constant object at 0x7f1d2d389730>
    argNames:
    - self
    - model
    - key_name
    - property_name
    - cache
    - user
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 305
    functionName: oauth2client.contrib.appengine.StorageByKeyName.__init__
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 3
    functionsReached:
    - user.user_id
    - <builtin>.super
    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: user.user_id
    functionSourceFile: <builtin>
    functionUses: 6
    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: 333
    functionName: oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 23
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.issubclass
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.issubclass
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 351
    functionName: oauth2client.contrib.appengine.StorageByKeyName._get_entity
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 14
    functionsReached:
    - <builtin>.isinstance
    - google.appengine.ext.db.Model.get_by_id
    - google.appengine.ext.db.Model.get_by_key_name
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - <builtin>.issubclass
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: google.appengine.ext.db.Model.get_by_id
    functionSourceFile: google
    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: google.appengine.ext.db.Model.get_by_key_name
    functionSourceFile: google
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 365
    functionName: oauth2client.contrib.appengine.StorageByKeyName._delete_entity
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 7
    functionsReached:
    - google.appengine.ext.db.delete
    - google.appengine.ext.ndb.Key
    - google.appengine.ext.db.Key.from_path
    - <builtin>.isinstance
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - google.appengine.ext.db.Model.kind
    - <builtin>.issubclass
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: google.appengine.ext.ndb.Key
    functionSourceFile: google
    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: google.appengine.ext.db.Model.kind
    functionSourceFile: google
    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: google.appengine.ext.db.Key.from_path
    functionSourceFile: google
    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: google.appengine.ext.db.delete
    functionSourceFile: google
    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: google.appengine.ext.db.non_transactional
    functionSourceFile: google
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: credentials.to_json
    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: <builtin>.hasattr
    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: credentials.set_store
    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: <builtin>.setattr
    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: entity.put
    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: oauth2client.contrib.appengine.CredentialsModel
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - google.appengine.ext.db.Property.__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: google.appengine.ext.db.Property.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - request_handler
    - user
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 431
    functionName: oauth2client.contrib.appengine._build_state_value
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 2
    functionsReached:
    - digester.digest
    - user.user_id
    - <builtin>.str
    - <builtin>.isinstance
    - value.encode
    - base64.urlsafe_b64encode
    - google.appengine.api.memcache.get
    - oauth2client.contrib.appengine._generate_new_xsrf_secret_key
    - oauth2client.contrib.appengine.xsrf_secret_key
    - google.appengine.ext.db.Model.get_or_insert
    - oauth2client.contrib.xsrfutil.generate_token
    - oauth2client._helpers._to_bytes
    - hmac.new
    - time.time
    - <builtin>.int
    - google.appengine.api.memcache.add
    - os.urandom
    - model.put
    - digester.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d3f6850>
    - <ast.Constant object at 0x7f1d2d3f68e0>
    argNames:
    - key
    - user_id
    - action_id
    - when
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 33
    functionName: oauth2client.contrib.xsrfutil.generate_token
    functionSourceFile: oauth2client.contrib.xsrfutil
    functionUses: 6
    functionsReached:
    - digester.digest
    - oauth2client._helpers._to_bytes
    - hmac.new
    - <builtin>.str
    - <builtin>.isinstance
    - value.encode
    - base64.urlsafe_b64encode
    - time.time
    - <builtin>.int
    - digester.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - state
    - user
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 450
    functionName: oauth2client.contrib.appengine._parse_state_value
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 1
    functionsReached:
    - base64.urlsafe_b64decode
    - digester.digest
    - user.user_id
    - <builtin>.str
    - <builtin>.isinstance
    - value.encode
    - base64.urlsafe_b64encode
    - google.appengine.api.memcache.get
    - oauth2client.contrib.appengine._generate_new_xsrf_secret_key
    - state.rsplit
    - oauth2client.contrib.xsrfutil.validate_token
    - decoded.split
    - <builtin>.bytearray
    - oauth2client.contrib.appengine.xsrf_secret_key
    - google.appengine.ext.db.Model.get_or_insert
    - oauth2client.contrib.xsrfutil.generate_token
    - oauth2client._helpers._to_bytes
    - hmac.new
    - <builtin>.len
    - time.time
    - <builtin>.int
    - google.appengine.api.memcache.add
    - <builtin>.zip
    - os.urandom
    - model.put
    - digester.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: state.rsplit
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2dae8fd0>
    - <ast.Constant object at 0x7f1d2dae8160>
    argNames:
    - key
    - token
    - user_id
    - action_id
    - current_time
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 61
    functionName: oauth2client.contrib.xsrfutil.validate_token
    functionSourceFile: oauth2client.contrib.xsrfutil
    functionUses: 2
    functionsReached:
    - oauth2client.contrib.xsrfutil.generate_token
    - base64.urlsafe_b64decode
    - decoded.split
    - digester.digest
    - <builtin>.zip
    - oauth2client._helpers._to_bytes
    - <builtin>.bytearray
    - hmac.new
    - <builtin>.str
    - <builtin>.isinstance
    - value.encode
    - <builtin>.len
    - base64.urlsafe_b64encode
    - time.time
    - <builtin>.int
    - digester.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - credentials
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 492
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.set_credentials
    functionSourceFile: oauth2client.contrib.appengine
    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: 495
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.get_credentials
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    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>.property
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: 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: oauth2client.contrib.appengine.OAuth2Decorator
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - <builtin>.property
    - oauth2client._helpers.positional
    - <builtin>.isinstance
    - <builtin>.len
    - functools.wraps
    - inspect.getargspec
    - oauth2client._helpers.positional.positional_decorator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - flow
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 507
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.set_flow
    functionSourceFile: oauth2client.contrib.appengine
    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: 510
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.get_flow
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 15
    argDefaultValues:
    - <ast.Attribute object at 0x7f1d2d092e50>
    - <ast.Attribute object at 0x7f1d2d092250>
    - <ast.Attribute object at 0x7f1d2d092820>
    - <ast.Constant object at 0x7f1d2d092790>
    - <ast.Constant object at 0x7f1d2d092df0>
    - <ast.Constant object at 0x7f1d2d092490>
    - <ast.Constant object at 0x7f1d2d092e20>
    - <ast.Name object at 0x7f1d2d092cd0>
    - <ast.Name object at 0x7f1d2d092d30>
    - <ast.Constant object at 0x7f1d2d0928b0>
    argNames:
    - self
    - client_id
    - client_secret
    - scope
    - auth_uri
    - token_uri
    - revoke_uri
    - user_agent
    - message
    - callback_path
    - token_response_param
    - _storage_class
    - _credentials_class
    - _credentials_property_name
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 523
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.__init__
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - threading.local
    - oauth2client._helpers.scopes_to_string
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.local
    functionSourceFile: threading
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request_handler
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 603
    functionName: oauth2client.contrib.appengine.OAuth2Decorator._display_error_message
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 2
    functionsReached:
    - request_handler.response.out.write
    - cgi.escape
    - oauth2client.contrib.appengine._safe_html
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_handler.response.out.write
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - method
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 608
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.oauth_required
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - request_handler
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 619
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.oauth_required.check_oauth
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine._build_state_value
    - user.user_id
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client.contrib.appengine._safe_html
    - google.appengine.api.memcache.get
    - oauth2client.contrib.appengine._generate_new_xsrf_secret_key
    - oauth2client._helpers.scopes_to_string
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - request_handler.redirect
    - oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url
    - oauth2client.client.AccessTokenCredentials.__init__
    - <builtin>.getattr
    - google.appengine.api.users.create_login_url
    - oauth2client.client.OAuth2Credentials.set_store
    - hmac.new
    - _pkce.code_verifier
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - <builtin>.int
    - six.moves.urllib.parse.parse_qs
    - google.appengine.api.memcache.add
    - oauth2client.client.OAuth2WebServerFlow.__init__
    - kwargs.get
    - oauth2client.client.Storage.release_lock
    - six.StringIO
    - flask.session.get
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - model.put
    - pkey_info.asOctets
    - oauth2client._helpers.update_query_params
    - kls.from_json
    - six.moves.urllib.parse.urlunparse
    - <builtin>.str
    - OpenSSL.crypto.load_privatekey
    - value.decode
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - <builtin>.issubclass
    - oauth2client.contrib.appengine.OAuth2Decorator._display_error_message
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.contrib.appengine.StorageByKeyName.__init__
    - credentials.to_json
    - oauth2client.client._oauth2_web_server_flow_params
    - oauth2client.contrib.xsrfutil.generate_token
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers.parse_unique_urlencoded
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.len
    - time.time
    - oauth2client.contrib.appengine.OAuth2Decorator.has_credentials
    - params.get
    - six.moves.urllib.parse.urlencode
    - pyasn1_modules.pem.readPemBlocksFromFile
    - google.appengine.ext.db.Model.get_by_key_name
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - cgi.escape
    - pyasn1.codec.der.decoder.decode
    - digester.digest
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - datetime.datetime.strptime
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - base64.b64decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - params.update
    - oauth2client.client.Storage.get
    - webapp2.RequestHandler.request.relative_url
    - credential.set_store
    - oauth2client._helpers._parse_pem_key
    - request_handler.response.out.write
    - rsa.key.PrivateKey.load_pkcs1
    - Crypto.PublicKey.RSA.importKey
    - <builtin>.__import__
    - oauth2client.contrib.appengine.OAuth2Decorator.authorize_url
    - logger.warning
    - six.iteritems
    - oauth2client.contrib.appengine.OAuth2Decorator._create_flow
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.client.Credentials.new_from_json
    - query_params.update
    - <builtin>.isinstance
    - _pkce.code_challenge
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - base64.urlsafe_b64encode
    - module_name.replace
    - <builtin>.hasattr
    - raw_key_input.find
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - google.appengine.api.users.get_current_user
    - oauth2client.contrib.appengine.xsrf_secret_key
    - json_data.get
    - google.appengine.ext.db.Model.get_or_insert
    - key_info.getComponentByName
    - <builtin>.super
    - os.urandom
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - digester.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: google.appengine.api.users.get_current_user
    functionSourceFile: google
    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: google.appengine.api.users.create_login_url
    functionSourceFile: google
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_handler.redirect
    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_handler
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 653
    functionName: oauth2client.contrib.appengine.OAuth2Decorator._create_flow
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 3
    functionsReached:
    - oauth2client.client._oauth2_web_server_flow_params
    - params.get
    - oauth2client.client.OAuth2WebServerFlow.__init__
    - params.update
    - logger.warning
    - <builtin>.isinstance
    - webapp2.RequestHandler.request.relative_url
    - oauth2client._helpers.scopes_to_string
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 713
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.has_credentials
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 721
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.authorize_url
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 1
    functionsReached:
    - six.moves.urllib.parse.urlunparse
    - oauth2client._helpers.parse_unique_urlencoded
    - logger.warning
    - six.moves.urllib.parse.urlencode
    - oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url
    - query_params.update
    - <builtin>.str
    - six.iteritems
    - _pkce.code_verifier
    - _pkce.code_challenge
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - <builtin>.len
    - oauth2client._helpers.update_query_params
    - six.moves.urllib.parse.parse_qs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: webapp2.RequestHandler.request.relative_url
    functionSourceFile: webapp2
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - method
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 672
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.oauth_aware
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - request_handler
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 686
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.oauth_aware.setup_oauth
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine._build_state_value
    - user.user_id
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client.contrib.appengine._safe_html
    - google.appengine.api.memcache.get
    - oauth2client.contrib.appengine._generate_new_xsrf_secret_key
    - oauth2client._helpers.scopes_to_string
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - request_handler.redirect
    - oauth2client.client.AccessTokenCredentials.__init__
    - <builtin>.getattr
    - google.appengine.api.users.create_login_url
    - oauth2client.client.OAuth2Credentials.set_store
    - hmac.new
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - <builtin>.int
    - google.appengine.api.memcache.add
    - oauth2client.client.OAuth2WebServerFlow.__init__
    - kwargs.get
    - oauth2client.client.Storage.release_lock
    - six.StringIO
    - flask.session.get
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - model.put
    - pkey_info.asOctets
    - kls.from_json
    - <builtin>.str
    - OpenSSL.crypto.load_privatekey
    - value.decode
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - <builtin>.issubclass
    - oauth2client.contrib.appengine.OAuth2Decorator._display_error_message
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.contrib.appengine.StorageByKeyName.__init__
    - credentials.to_json
    - oauth2client.client._oauth2_web_server_flow_params
    - oauth2client.contrib.xsrfutil.generate_token
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.len
    - time.time
    - params.get
    - pyasn1_modules.pem.readPemBlocksFromFile
    - google.appengine.ext.db.Model.get_by_key_name
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - cgi.escape
    - pyasn1.codec.der.decoder.decode
    - digester.digest
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - datetime.datetime.strptime
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - base64.b64decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - params.update
    - oauth2client.client.Storage.get
    - webapp2.RequestHandler.request.relative_url
    - credential.set_store
    - oauth2client._helpers._parse_pem_key
    - request_handler.response.out.write
    - rsa.key.PrivateKey.load_pkcs1
    - Crypto.PublicKey.RSA.importKey
    - <builtin>.__import__
    - logger.warning
    - oauth2client.contrib.appengine.OAuth2Decorator._create_flow
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.client.Credentials.new_from_json
    - <builtin>.isinstance
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - base64.urlsafe_b64encode
    - module_name.replace
    - <builtin>.hasattr
    - raw_key_input.find
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - google.appengine.api.users.get_current_user
    - oauth2client.contrib.appengine.xsrf_secret_key
    - json_data.get
    - google.appengine.ext.db.Model.get_or_insert
    - key_info.getComponentByName
    - <builtin>.super
    - os.urandom
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - digester.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 730
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.http
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - oauth2client.transport.wrap_http_for_auth
    - oauth2client.client.OAuth2Credentials.authorize
    - oauth2client.transport.get_http_object
    - httplib2.Http
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 745
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.callback_path
    functionSourceFile: oauth2client.contrib.appengine
    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: 757
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.callback_handler
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.callback_handler.OAuth2Handler
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - google.appengine.ext.webapp.util.login_required
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: google.appengine.ext.webapp.util.login_required
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 778
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.callback_handler.OAuth2Handler.get
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - user.user_id
    - oauth2client.contrib.appengine._safe_html
    - google.appengine.api.memcache.get
    - oauth2client.contrib.appengine._generate_new_xsrf_secret_key
    - datetime.timedelta
    - httplib2.Http
    - oauth2client._helpers.scopes_to_string
    - oauth2client.client._parse_exchange_token_response
    - <builtin>.getattr
    - hmac.new
    - entity.put
    - <builtin>.setattr
    - id_token.split
    - d.get
    - <builtin>.int
    - six.moves.urllib.parse.parse_qs
    - google.appengine.api.memcache.add
    - oauth2client.client.OAuth2WebServerFlow.__init__
    - oauth2client.client.Storage.release_lock
    - model.put
    - oauth2client._helpers.update_query_params
    - oauth2client.contrib.appengine.StorageByKeyName.locked_put
    - <builtin>.set
    - six.moves.urllib.parse.urlunparse
    - oauth2client.client.OAuth2Credentials.__init__
    - <builtin>.str
    - oauth2client.client._extract_id_token
    - value.decode
    - oauth2client.contrib.xsrfutil.validate_token
    - oauth2client._helpers._urlsafe_b64decode
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_put
    - oauth2client.contrib.appengine.StorageByKeyName.__init__
    - json.dumps
    - oauth2client.client._oauth2_web_server_flow_params
    - oauth2client._helpers._add_query_parameter
    - oauth2client.contrib.xsrfutil.generate_token
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers.parse_unique_urlencoded
    - oauth2client.contrib.appengine._parse_state_value
    - <builtin>.len
    - time.time
    - entity.save
    - params.get
    - six.moves.urllib.parse.urlencode
    - oauth2client.transport.request
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - cgi.escape
    - oauth2client._helpers.string_to_scopes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_put
    - oauth2client.service_account.ServiceAccountCredentials._to_json
    - digester.digest
    - oauth2client._helpers._from_bytes
    - base64.b64encode
    - decoded.split
    - oauth2client.contrib.gce.AppAssertionCredentials.to_json
    - params.update
    - <builtin>.bytearray
    - webapp2.RequestHandler.request.relative_url
    - webapp2.RequestHandler.request.get
    - <builtin>.zip
    - logger.warning
    - six.iteritems
    - oauth2client.contrib.appengine.OAuth2Decorator._create_flow
    - oauth2client.client.Storage.acquire_lock
    - webapp2.RequestHandler.response.out.write
    - scopes.split
    - oauth2client.client.OAuth2WebServerFlow.step2_exchange
    - base64.urlsafe_b64decode
    - webapp2.RequestHandler.redirect
    - oauth2client.client.Storage.put
    - <builtin>.type
    - query_params.update
    - <builtin>.isinstance
    - value.encode
    - base64.urlsafe_b64encode
    - to_serialize.get
    - state.rsplit
    - oauth2client.client.Credentials.to_json
    - oauth2client.transport.get_http_object
    - logger.info
    - json.loads
    - google.appengine.api.users.get_current_user
    - oauth2client.contrib.appengine.xsrf_secret_key
    - google.appengine.ext.db.Model.get_or_insert
    - resp.pop
    - <builtin>.super
    - os.urandom
    - copy.copy
    - digester.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: webapp2.RequestHandler.request.get
    functionSourceFile: webapp2
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: webapp2.RequestHandler.response.out.write
    functionSourceFile: webapp2
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: webapp2.RequestHandler.redirect
    functionSourceFile: webapp2
    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: 812
    functionName: oauth2client.contrib.appengine.OAuth2Decorator.callback_application
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - webapp2.WSGIApplication
    - oauth2client.contrib.appengine.OAuth2Decorator.callback_handler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: webapp2.WSGIApplication
    functionSourceFile: webapp2
    functionUses: 1
    functionsReached: []
    linkageType: 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: oauth2client.contrib.appengine.OAuth2DecoratorFromClientSecrets
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - oauth2client._helpers.positional
    - <builtin>.isinstance
    - <builtin>.len
    - functools.wraps
    - inspect.getargspec
    - oauth2client._helpers.positional.positional_decorator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d37fd90>
    - <ast.Constant object at 0x7f1d2d37f9d0>
    argNames:
    - self
    - filename
    - scope
    - message
    - cache
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 849
    functionName: oauth2client.contrib.appengine.OAuth2DecoratorFromClientSecrets.__init__
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 1
    functionsReached:
    - cache.get
    - constructor_kwargs.update
    - <builtin>.next
    - client_info.get
    - oauth2client.clientsecrets.loadfile
    - oauth2client.clientsecrets._loadfile
    - <builtin>.open
    - six.iteritems
    - json.load
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - cache.set
    - <builtin>.super
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: constructor_kwargs.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d2ecc70>
    - <ast.Constant object at 0x7f1d2d2ecee0>
    argNames:
    - filename
    - scope
    - message
    - cache
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 892
    functionName: oauth2client.contrib.appengine.oauth2decorator_from_clientsecrets
    functionSourceFile: oauth2client.contrib.appengine
    functionUses: 0
    functionsReached:
    - cache.get
    - constructor_kwargs.update
    - client_info.get
    - oauth2client.clientsecrets._loadfile
    - oauth2client.clientsecrets.loadfile
    - oauth2client.contrib.appengine.OAuth2DecoratorFromClientSecrets.__init__
    - <builtin>.next
    - <builtin>.open
    - six.iteritems
    - json.load
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - cache.set
    - <builtin>.super
    - <builtin>.dict
    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: -1
    functionName: oauth2client.contrib._appengine_ndb
    functionSourceFile: oauth2client.contrib._appengine_ndb
    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: google.appengine.ext.ndb.StringProperty
    functionSourceFile: google
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client.contrib._appengine_ndb.SiteXsrfSecretKeyNDB
    functionSourceFile: oauth2client.contrib._appengine_ndb
    functionUses: 0
    functionsReached:
    - google.appengine.ext.ndb.StringProperty
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 51
    functionName: oauth2client.contrib._appengine_ndb.SiteXsrfSecretKeyNDB._get_kind
    functionSourceFile: oauth2client.contrib._appengine_ndb
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 68
    functionName: oauth2client.contrib._appengine_ndb.FlowNDBProperty._validate
    functionSourceFile: oauth2client.contrib._appengine_ndb
    functionUses: 0
    functionsReached:
    - <builtin>.type
    - <builtin>.isinstance
    - _LOGGER.info
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 96
    functionName: oauth2client.contrib._appengine_ndb.CredentialsNDBProperty._validate
    functionSourceFile: oauth2client.contrib._appengine_ndb
    functionUses: 0
    functionsReached:
    - <builtin>.type
    - <builtin>.isinstance
    - _LOGGER.info
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 111
    functionName: oauth2client.contrib._appengine_ndb.CredentialsNDBProperty._to_base_type
    functionSourceFile: oauth2client.contrib._appengine_ndb
    functionUses: 0
    functionsReached:
    - value.to_json
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.to_json
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 126
    functionName: oauth2client.contrib._appengine_ndb.CredentialsNDBProperty._from_base_type
    functionSourceFile: oauth2client.contrib._appengine_ndb
    functionUses: 0
    functionsReached:
    - module_name.split
    - json.loads
    - <builtin>.getattr
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - module_name.replace
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - <builtin>.__import__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client.contrib._appengine_ndb.CredentialsNDBModel
    functionSourceFile: oauth2client.contrib._appengine_ndb
    functionUses: 0
    functionsReached:
    - google.appengine.ext.ndb.BlobProperty.__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: google.appengine.ext.ndb.BlobProperty.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 161
    functionName: oauth2client.contrib._appengine_ndb.CredentialsNDBModel._get_kind
    functionSourceFile: oauth2client.contrib._appengine_ndb
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: oauth2client.contrib.xsrfutil
    functionSourceFile: oauth2client.contrib.xsrfutil
    functionUses: 0
    functionsReached:
    - oauth2client._helpers.positional
    - <builtin>.isinstance
    - <builtin>.len
    - functools.wraps
    - inspect.getargspec
    - oauth2client._helpers.positional.positional_decorator
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: digester.update
    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: digester.digest
    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: decoded.split
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: oauth2client.contrib
    functionSourceFile: oauth2client.contrib
    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: oauth2client._pkce
    functionSourceFile: oauth2client._pkce
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d3f6070>
    argNames:
    - n_bytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 27
    functionName: oauth2client._pkce.code_verifier
    functionSourceFile: oauth2client._pkce
    functionUses: 0
    functionsReached:
    - os.urandom
    - base64.urlsafe_b64encode
    - <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:
    - verifier
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 52
    functionName: oauth2client._pkce.code_challenge
    functionSourceFile: oauth2client._pkce
    functionUses: 0
    functionsReached:
    - base64.urlsafe_b64encode
    - 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.sha256
    functionSourceFile: hashlib
    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: oauth2client.file
    functionSourceFile: oauth2client.file
    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
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: oauth2client.file.Storage.__init__
    functionSourceFile: oauth2client.file
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - threading.Lock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Lock
    functionSourceFile: threading
    functionUses: 6
    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: 3
    functionLinenumber: 35
    functionName: oauth2client.file.Storage.locked_get
    functionSourceFile: oauth2client.file
    functionUses: 0
    functionsReached:
    - module_name.split
    - os.path.isdir
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - module_name.replace
    - json.loads
    - <builtin>.open
    - credentials.set_store
    - os.path.isfile
    - <builtin>.getattr
    - os.path.islink
    - _MISSING_FILE_MESSAGE.format
    - f.read
    - f.close
    - <builtin>.__import__
    - warnings.warn
    - oauth2client._helpers.validate_file
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.read
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 61
    functionName: oauth2client.file.Storage._create_file_if_needed
    functionSourceFile: oauth2client.file
    functionUses: 1
    functionsReached:
    - os.path.exists
    - <builtin>.open
    - os.umask
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.exists
    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: os.umask
    functionSourceFile: os
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - credentials
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 74
    functionName: oauth2client.file.Storage.locked_put
    functionSourceFile: oauth2client.file
    functionUses: 0
    functionsReached:
    - oauth2client.file.Storage._create_file_if_needed
    - os.path.exists
    - os.path.isdir
    - os.umask
    - <builtin>.open
    - warnings.warn
    - f.write
    - oauth2client._helpers.validate_file
    - os.path.isfile
    - os.path.islink
    - _MISSING_FILE_MESSAGE.format
    - f.close
    - credentials.to_json
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 89
    functionName: oauth2client.file.Storage.locked_delete
    functionSourceFile: oauth2client.file
    functionUses: 0
    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: 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: oauth2client.contrib.multiprocess_file_storage
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - threading.Lock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 100
    functionName: oauth2client.contrib.multiprocess_file_storage._create_file_if_needed
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 1
    functionsReached:
    - os.path.exists
    - <builtin>.open
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - credentials_file
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 115
    functionName: oauth2client.contrib.multiprocess_file_storage._load_credentials_file
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 5
    functionsReached:
    - module_name.split
    - logger.warning
    - data.get
    - json.loads
    - oauth2client._helpers._from_bytes
    - six.iteritems
    - <builtin>.isinstance
    - value.decode
    - <builtin>.getattr
    - json.load
    - credentials_file.seek
    - module_name.replace
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - <builtin>.__import__
    - base64.b64decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: credentials_file.seek
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - credentials_file
    - credentials
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 166
    functionName: oauth2client.contrib.multiprocess_file_storage._write_credentials_file
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 3
    functionsReached:
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers._from_bytes
    - six.iteritems
    - <builtin>.isinstance
    - value.decode
    - credentials_file.truncate
    - json.dump
    - value.encode
    - base64.b64encode
    - credentials_file.seek
    - credential.to_json
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: credential.to_json
    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: credentials_file.truncate
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 197
    functionName: oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.__init__
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 2
    functionsReached:
    - fasteners.InterProcessLock
    - threading.Lock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fasteners.InterProcessLock
    functionSourceFile: fasteners
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 206
    functionName: oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._load_credentials
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 4
    functionsReached:
    - logger.debug
    - module_name.split
    - logger.warning
    - data.get
    - json.loads
    - oauth2client._helpers._from_bytes
    - six.iteritems
    - <builtin>.isinstance
    - value.decode
    - <builtin>.getattr
    - base64.b64decode
    - json.load
    - credentials_file.seek
    - module_name.replace
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - <builtin>.__import__
    - oauth2client.contrib.multiprocess_file_storage._load_credentials_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 216
    functionName: oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._write_credentials
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 2
    functionsReached:
    - logger.debug
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers._from_bytes
    - oauth2client.contrib.multiprocess_file_storage._write_credentials_file
    - six.iteritems
    - <builtin>.isinstance
    - value.decode
    - credentials_file.truncate
    - json.dump
    - value.encode
    - base64.b64encode
    - credentials_file.seek
    - credential.to_json
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 224
    functionName: oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.acquire_lock
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 0
    functionsReached:
    - module_name.split
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - module_name.replace
    - base64.b64decode
    - oauth2client.contrib.multiprocess_file_storage._load_credentials_file
    - logger.info
    - os.path.exists
    - json.loads
    - <builtin>.open
    - credentials_file.seek
    - <builtin>.getattr
    - logger.warn
    - logger.debug
    - oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._load_credentials
    - <builtin>.__import__
    - logger.warning
    - oauth2client.contrib.multiprocess_file_storage._create_file_if_needed
    - data.get
    - six.iteritems
    - json.load
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.warn
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 246
    functionName: oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.release_lock
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - credentials
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 256
    functionName: oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._refresh_predicate
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    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
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 266
    functionName: oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.locked_get
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 0
    functionsReached:
    - module_name.split
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - module_name.replace
    - base64.b64decode
    - oauth2client.contrib.multiprocess_file_storage._load_credentials_file
    - json.loads
    - credentials_file.seek
    - <builtin>.getattr
    - logger.debug
    - oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._load_credentials
    - <builtin>.__import__
    - logger.warning
    - data.get
    - six.iteritems
    - json.load
    - oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._refresh_predicate
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - credentials
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 281
    functionName: oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.locked_put
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 0
    functionsReached:
    - module_name.split
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - credentials_file.truncate
    - value.encode
    - module_name.replace
    - base64.b64decode
    - oauth2client.contrib.multiprocess_file_storage._load_credentials_file
    - base64.b64encode
    - json.loads
    - oauth2client.contrib.multiprocess_file_storage._write_credentials_file
    - credentials_file.seek
    - oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._write_credentials
    - <builtin>.getattr
    - logger.debug
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._load_credentials
    - <builtin>.__import__
    - logger.warning
    - data.get
    - six.iteritems
    - json.dump
    - json.load
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - credential.to_json
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 286
    functionName: oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.locked_delete
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 0
    functionsReached:
    - module_name.split
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - credentials_file.truncate
    - value.encode
    - module_name.replace
    - base64.b64decode
    - oauth2client.contrib.multiprocess_file_storage._load_credentials_file
    - base64.b64encode
    - json.loads
    - oauth2client.contrib.multiprocess_file_storage._write_credentials_file
    - credentials_file.seek
    - oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._write_credentials
    - <builtin>.getattr
    - logger.debug
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._load_credentials
    - <builtin>.__import__
    - logger.warning
    - data.get
    - six.iteritems
    - json.dump
    - json.load
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - credential.to_json
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 292
    functionName: oauth2client.contrib.multiprocess_file_storage._get_backend
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 1
    functionsReached:
    - oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.__init__
    - fasteners.InterProcessLock
    - threading.Lock
    - os.path.abspath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.abspath
    functionSourceFile: os
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - filename
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 321
    functionName: oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage.__init__
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 0
    functionsReached:
    - oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.__init__
    - oauth2client.contrib.multiprocess_file_storage._get_backend
    - threading.Lock
    - fasteners.InterProcessLock
    - os.path.abspath
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 325
    functionName: oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage.acquire_lock
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    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: 328
    functionName: oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage.release_lock
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 331
    functionName: oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage.locked_get
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    functionUses: 0
    functionsReached:
    - credential.set_store
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - credentials
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 344
    functionName: oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage.locked_put
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    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: 353
    functionName: oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage.locked_delete
    functionSourceFile: oauth2client.contrib.multiprocess_file_storage
    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: oauth2client.contrib.sqlalchemy
    functionSourceFile: oauth2client.contrib.sqlalchemy
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - session
    - model_class
    - key_name
    - key_value
    - property_name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 114
    functionName: oauth2client.contrib.sqlalchemy.Storage.__init__
    functionSourceFile: oauth2client.contrib.sqlalchemy
    functionUses: 0
    functionsReached:
    - <builtin>.super
    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: 136
    functionName: oauth2client.contrib.sqlalchemy.Storage.locked_get
    functionSourceFile: oauth2client.contrib.sqlalchemy
    functionUses: 0
    functionsReached:
    - query.first
    - credential.set_store
    - <builtin>.hasattr
    - <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: query.first
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - credentials
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 154
    functionName: oauth2client.contrib.sqlalchemy.Storage.locked_put
    functionSourceFile: oauth2client.contrib.sqlalchemy
    functionUses: 0
    functionsReached:
    - query.first
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 170
    functionName: oauth2client.contrib.sqlalchemy.Storage.locked_delete
    functionSourceFile: oauth2client.contrib.sqlalchemy
    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: oauth2client.contrib.keyring_storage
    functionSourceFile: oauth2client.contrib.keyring_storage
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - service_name
    - user_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: oauth2client.contrib.keyring_storage.Storage.__init__
    functionSourceFile: oauth2client.contrib.keyring_storage
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - threading.Lock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 62
    functionName: oauth2client.contrib.keyring_storage.Storage.locked_get
    functionSourceFile: oauth2client.contrib.keyring_storage
    functionUses: 0
    functionsReached:
    - keyring.get_password
    - module_name.split
    - json.loads
    - <builtin>.getattr
    - credentials.set_store
    - oauth2client._helpers._from_bytes
    - <builtin>.isinstance
    - value.decode
    - module_name.replace
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - <builtin>.__import__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: keyring.get_password
    functionSourceFile: keyring
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - credentials
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 80
    functionName: oauth2client.contrib.keyring_storage.Storage.locked_put
    functionSourceFile: oauth2client.contrib.keyring_storage
    functionUses: 0
    functionsReached:
    - keyring.set_password
    - credentials.to_json
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: keyring.set_password
    functionSourceFile: keyring
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 89
    functionName: oauth2client.contrib.keyring_storage.Storage.locked_delete
    functionSourceFile: oauth2client.contrib.keyring_storage
    functionUses: 0
    functionsReached:
    - keyring.set_password
    linkageType: 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: oauth2client.contrib.devshell
    functionSourceFile: oauth2client.contrib.devshell
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - json_string
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 60
    functionName: oauth2client.contrib.devshell.CredentialInfoResponse.__init__
    functionSourceFile: oauth2client.contrib.devshell
    functionUses: 3
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    - json.loads
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 72
    functionName: oauth2client.contrib.devshell._SendRecv
    functionSourceFile: oauth2client.contrib.devshell
    functionUses: 2
    functionsReached:
    - oauth2client._helpers._to_bytes
    - socket.socket
    - json.loads
    - <builtin>.isinstance
    - oauth2client.contrib.devshell.CredentialInfoResponse.__init__
    - os.getenv
    - value.encode
    - <builtin>.len
    - header.split
    - sock.recv
    - sock.sendall
    - sock.connect
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - CommunicationError
    - NoDevshellServer
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.socket
    functionSourceFile: socket
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.connect
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.sendall
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.recv
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header.split
    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:
    - <ast.Constant object at 0x7f1d2d2886a0>
    argNames:
    - self
    - user_agent
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 110
    functionName: oauth2client.contrib.devshell.DevshellCredentials.__init__
    functionSourceFile: oauth2client.contrib.devshell
    functionUses: 0
    functionsReached:
    - oauth2client.contrib.devshell._SendRecv
    - socket.socket
    - oauth2client._helpers._to_bytes
    - json.loads
    - oauth2client.contrib.devshell.DevshellCredentials._refresh
    - <builtin>.isinstance
    - os.getenv
    - oauth2client.contrib.devshell.CredentialInfoResponse.__init__
    - value.encode
    - <builtin>.len
    - header.split
    - sock.recv
    - sock.sendall
    - datetime.timedelta
    - sock.connect
    - <builtin>.int
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - http
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 121
    functionName: oauth2client.contrib.devshell.DevshellCredentials._refresh
    functionSourceFile: oauth2client.contrib.devshell
    functionUses: 1
    functionsReached:
    - oauth2client.contrib.devshell._SendRecv
    - socket.socket
    - oauth2client._helpers._to_bytes
    - json.loads
    - <builtin>.isinstance
    - os.getenv
    - oauth2client.contrib.devshell.CredentialInfoResponse.__init__
    - value.encode
    - <builtin>.len
    - header.split
    - sock.recv
    - sock.sendall
    - datetime.timedelta
    - sock.connect
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 137
    functionName: oauth2client.contrib.devshell.DevshellCredentials.user_email
    functionSourceFile: oauth2client.contrib.devshell
    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: 141
    functionName: oauth2client.contrib.devshell.DevshellCredentials.project_id
    functionSourceFile: oauth2client.contrib.devshell
    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
    - json_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 145
    functionName: oauth2client.contrib.devshell.DevshellCredentials.from_json
    functionSourceFile: oauth2client.contrib.devshell
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 150
    functionName: oauth2client.contrib.devshell.DevshellCredentials.serialization_data
    functionSourceFile: oauth2client.contrib.devshell
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: oauth2client.contrib.flask_util
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - csrf_token
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 197
    functionName: oauth2client.contrib.flask_util._get_flow_for_token
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 1
    functionsReached:
    - pickle.loads
    - _FLOW_KEY.format
    - flask.session.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _FLOW_KEY.format
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flask.session.pop
    functionSourceFile: flask
    functionUses: 9
    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 0x7f1d2d24cd90>
    argNames:
    - self
    - app
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 230
    functionName: oauth2client.contrib.flask_util.UserOAuth2.__init__
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 0
    functionsReached:
    - app.register_blueprint
    - <builtin>.next
    - flask.Blueprint.add_url_rule
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - flask.Blueprint
    - oauth2client.clientsecrets._loadfile
    - <builtin>.open
    - app.config.get
    - oauth2client.contrib.flask_util.UserOAuth2._load_client_secrets
    - cache.get
    - oauth2client.clientsecrets.loadfile
    - oauth2client.contrib.flask_util.UserOAuth2.init_app
    - <builtin>.super
    - six.iteritems
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - oauth2client.contrib.flask_util.UserOAuth2._create_blueprint
    - json.load
    - cache.set
    - oauth2client.contrib.flask_util.UserOAuth2._load_config
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2d24cac0>
    - <ast.Constant object at 0x7f1d2d24c5e0>
    - <ast.Constant object at 0x7f1d2d24cfd0>
    - <ast.Constant object at 0x7f1d2d24cd00>
    - <ast.Constant object at 0x7f1d2d24c0a0>
    - <ast.Constant object at 0x7f1d2d24ca00>
    argNames:
    - self
    - app
    - scopes
    - client_secrets_file
    - client_id
    - client_secret
    - authorize_callback
    - storage
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 235
    functionName: oauth2client.contrib.flask_util.UserOAuth2.init_app
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 1
    functionsReached:
    - app.register_blueprint
    - <builtin>.next
    - flask.Blueprint.add_url_rule
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - flask.Blueprint
    - oauth2client.clientsecrets._loadfile
    - <builtin>.open
    - app.config.get
    - oauth2client.contrib.flask_util.UserOAuth2._load_client_secrets
    - cache.get
    - oauth2client.clientsecrets.loadfile
    - <builtin>.super
    - six.iteritems
    - oauth2client.contrib.flask_util.UserOAuth2._create_blueprint
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - json.load
    - cache.set
    - oauth2client.contrib.flask_util.UserOAuth2._load_config
    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 0x7f1d2d07c910>
    argNames:
    - self
    - dictionary
    - key
    - lock
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    functionSourceFile: oauth2client.contrib.dictionary_storage
    functionUses: 13
    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: app.config.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - client_secrets_file
    - client_id
    - client_secret
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 276
    functionName: oauth2client.contrib.flask_util.UserOAuth2._load_config
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 2
    functionsReached:
    - cache.get
    - <builtin>.next
    - oauth2client.clientsecrets._loadfile
    - oauth2client.clientsecrets.loadfile
    - <builtin>.open
    - six.iteritems
    - json.load
    - oauth2client.contrib.flask_util.UserOAuth2._load_client_secrets
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - cache.set
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 356
    functionName: oauth2client.contrib.flask_util.UserOAuth2._create_blueprint
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 2
    functionsReached:
    - flask.Blueprint
    - flask.Blueprint.add_url_rule
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: app.register_blueprint
    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
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 314
    functionName: oauth2client.contrib.flask_util.UserOAuth2._load_client_secrets
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 3
    functionsReached:
    - cache.get
    - <builtin>.next
    - oauth2client.clientsecrets._loadfile
    - oauth2client.clientsecrets.loadfile
    - <builtin>.open
    - six.iteritems
    - json.load
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - cache.set
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f1d2daa16a0>
    argNames:
    - self
    - return_url
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 325
    functionName: oauth2client.contrib.flask_util.UserOAuth2._make_flow
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 1
    functionsReached:
    - pickle.dumps
    - flask.url_for
    - params.get
    - oauth2client.client.OAuth2WebServerFlow.__init__
    - oauth2client.client._oauth2_web_server_flow_params
    - params.update
    - logger.warning
    - os.urandom
    - _FLOW_KEY.format
    - <builtin>.isinstance
    - kw.update
    - kw.pop
    - json.dumps
    - <builtin>.set
    - oauth2client._helpers.scopes_to_string
    - 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: kw.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kw.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: flask.url_for
    functionSourceFile: flask
    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: flask.Blueprint
    functionSourceFile: flask
    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: flask.Blueprint.add_url_rule
    functionSourceFile: flask
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 363
    functionName: oauth2client.contrib.flask_util.UserOAuth2.authorize_view
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 0
    functionsReached:
    - pickle.dumps
    - six.moves.urllib.parse.urlunparse
    - query_params.update
    - <builtin>.isinstance
    - _pkce.code_challenge
    - oauth2client.contrib.flask_util.UserOAuth2._make_flow
    - args.pop
    - oauth2client._helpers.scopes_to_string
    - flask.request.args.to_dict
    - params.update
    - oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url
    - flask.request.args.getlist
    - json.dumps
    - oauth2client.client._oauth2_web_server_flow_params
    - oauth2client._helpers.parse_unique_urlencoded
    - _pkce.code_verifier
    - <builtin>.len
    - kw.pop
    - _FLOW_KEY.format
    - six.moves.urllib.parse.parse_qs
    - params.get
    - flask.url_for
    - oauth2client.client.OAuth2WebServerFlow.__init__
    - six.moves.urllib.parse.urlencode
    - logger.warning
    - flask.redirect
    - os.urandom
    - six.iteritems
    - parts._replace
    - kw.update
    - six.moves.urllib.parse.urlparse
    - oauth2client._helpers.update_query_params
    - <builtin>.set
    - 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: flask.request.args.to_dict
    functionSourceFile: flask
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flask.request.args.getlist
    functionSourceFile: flask
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flask.redirect
    functionSourceFile: flask
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 383
    functionName: oauth2client.contrib.flask_util.UserOAuth2.callback_view
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 0
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials._to_json
    - oauth2client.client.Storage.put
    - flask.request.args.get
    - pickle.loads
    - to_serialize.get
    - base64.b64encode
    - oauth2client.client.Credentials.to_json
    - oauth2client.contrib.gce.AppAssertionCredentials.to_json
    - json.loads
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_put
    - flask.session.pop
    - markupsafe.escape
    - google.appengine.ext.db.Model.get_or_insert
    - flask.current_app.logger.exception
    - flow.step2_exchange
    - entity.put
    - <builtin>.setattr
    - _FLOW_KEY.format
    - entity.save
    - <builtin>.super
    - flask.redirect
    - oauth2client.client.Storage.release_lock
    - copy.copy
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.contrib.flask_util._get_flow_for_token
    - oauth2client.contrib.appengine.StorageByKeyName.locked_put
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_put
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flask.request.args.get
    functionSourceFile: flask
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: markupsafe.escape
    functionSourceFile: markupsafe
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flask.current_app.logger.exception
    functionSourceFile: flask
    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: 6
    functionLinenumber: 435
    functionName: oauth2client.contrib.flask_util.UserOAuth2.credentials
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 0
    functionsReached:
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - datetime.datetime.strptime
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - module_name.replace
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - <builtin>.hasattr
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - oauth2client._helpers.scopes_to_string
    - <builtin>.issubclass
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - base64.b64decode
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - raw_key_input.find
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.client.AccessTokenCredentials.__init__
    - oauth2client.client.Storage.get
    - json_data.get
    - <builtin>.getattr
    - credentials.to_json
    - oauth2client.client.OAuth2Credentials.set_store
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - credential.set_store
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client._helpers._parse_pem_key
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.len
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - <builtin>.__import__
    - Crypto.PublicKey.RSA.importKey
    - kwargs.get
    - oauth2client.client.Storage.release_lock
    - pyasn1_modules.pem.readPemBlocksFromFile
    - google.appengine.ext.db.Model.get_by_key_name
    - six.StringIO
    - flask.session.get
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - pkey_info.asOctets
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - pyasn1.codec.der.decoder.decode
    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: 0
    functionLinenumber: 444
    functionName: oauth2client.contrib.flask_util.UserOAuth2.has_credentials
    functionSourceFile: oauth2client.contrib.flask_util
    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: 456
    functionName: oauth2client.contrib.flask_util.UserOAuth2.email
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 0
    functionsReached:
    - flask.current_app.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: flask.current_app.logger.error
    functionSourceFile: flask
    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: 472
    functionName: oauth2client.contrib.flask_util.UserOAuth2.user_id
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 0
    functionsReached:
    - flask.current_app.logger.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - return_url
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 487
    functionName: oauth2client.contrib.flask_util.UserOAuth2.authorize_url
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 1
    functionsReached:
    - flask.url_for
    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 0x7f1d2d4a04f0>
    - <ast.Constant object at 0x7f1d2d4a0ca0>
    argNames:
    - self
    - decorated_function
    - scopes
    - decorator_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 498
    functionName: oauth2client.contrib.flask_util.UserOAuth2.required
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 0
    functionsReached:
    - oauth2client.contrib.flask_util.UserOAuth2.required.curry_wrapper
    - functools.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - wrapped_function
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 507
    functionName: oauth2client.contrib.flask_util.UserOAuth2.required.curry_wrapper
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 1
    functionsReached:
    - functools.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 509
    functionName: oauth2client.contrib.flask_util.UserOAuth2.required.curry_wrapper.required_wrapper
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 0
    functionsReached:
    - oauth2client.contrib.flask_util.UserOAuth2.authorize_url
    - flask.url_for
    - <builtin>.list
    - flask.redirect
    - oauth2client.contrib.flask_util.UserOAuth2.has_credentials
    - decorator_kwargs.pop
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: decorator_kwargs.pop
    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
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 541
    functionName: oauth2client.contrib.flask_util.UserOAuth2.http
    functionSourceFile: oauth2client.contrib.flask_util
    functionUses: 0
    functionsReached:
    - oauth2client.transport.get_http_object
    - httplib2.Http
    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: oauth2client.contrib.dictionary_storage
    functionSourceFile: oauth2client.contrib.dictionary_storage
    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: flask.session.get
    functionSourceFile: flask
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client.contrib.django_util.site
    functionSourceFile: oauth2client.contrib.django_util.site
    functionUses: 0
    functionsReached:
    - django.conf.urls.url
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: django.conf.urls.url
    functionSourceFile: django
    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: 7
    functionLinenumber: -1
    functionName: oauth2client.contrib.django_util
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 0
    functionsReached:
    - cache.get
    - <builtin>.next
    - oauth2client.clientsecrets._loadfile
    - oauth2client.contrib.django_util.OAuth2Settings.__init__
    - oauth2client.clientsecrets.loadfile
    - <builtin>.open
    - six.iteritems
    - oauth2client.contrib.django_util._get_oauth2_client_id_and_secret
    - oauth2client.contrib.django_util._get_storage_model
    - json.load
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - cache.set
    - oauth2client.contrib.django_util._load_client_secrets
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 245
    functionName: oauth2client.contrib.django_util._load_client_secrets
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 3
    functionsReached:
    - cache.get
    - <builtin>.next
    - oauth2client.clientsecrets._loadfile
    - oauth2client.clientsecrets.loadfile
    - <builtin>.open
    - six.iteritems
    - json.load
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - cache.set
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - settings_instance
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 264
    functionName: oauth2client.contrib.django_util._get_oauth2_client_id_and_secret
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 2
    functionsReached:
    - cache.get
    - <builtin>.next
    - oauth2client.clientsecrets._loadfile
    - oauth2client.clientsecrets.loadfile
    - <builtin>.open
    - six.iteritems
    - json.load
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - cache.set
    - oauth2client.contrib.django_util._load_client_secrets
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 292
    functionName: oauth2client.contrib.django_util._get_storage_model
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 2
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - settings_instance
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 335
    functionName: oauth2client.contrib.django_util.OAuth2Settings.__init__
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 1
    functionsReached:
    - cache.get
    - <builtin>.next
    - oauth2client.clientsecrets._loadfile
    - oauth2client.clientsecrets.loadfile
    - <builtin>.open
    - six.iteritems
    - oauth2client.contrib.django_util._get_oauth2_client_id_and_secret
    - oauth2client.contrib.django_util._get_storage_model
    - json.load
    - oauth2client.clientsecrets._validate_clientsecrets
    - clientsecrets_dict.items
    - cache.set
    - oauth2client.contrib.django_util._load_client_secrets
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - request
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 370
    functionName: oauth2client.contrib.django_util.get_storage
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 10
    functionsReached:
    - importlib.import_module
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - storage_model.rsplit
    - <builtin>.super
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: storage_model.rsplit
    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: importlib.import_module
    functionSourceFile: importlib
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - model_class
    - key_name
    - key_value
    - property_name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__
    functionSourceFile: oauth2client.contrib.django_util.storage
    functionUses: 11
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - url_name
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 398
    functionName: oauth2client.contrib.django_util._redirect_with_params
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 2
    functionsReached:
    - django.core.urlresolvers.reverse
    - six.moves.urllib.parse.urlencode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: django.core.urlresolvers.reverse
    functionSourceFile: django
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - request
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 416
    functionName: oauth2client.contrib.django_util._credentials_from_request
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 8
    functionsReached:
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - datetime.datetime.strptime
    - oauth2client.contrib.django_util.get_storage
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - module_name.replace
    - <builtin>.hasattr
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - base64.b64decode
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - <builtin>.issubclass
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - raw_key_input.find
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.client.AccessTokenCredentials.__init__
    - oauth2client.client.Storage.get
    - json_data.get
    - <builtin>.getattr
    - credentials.to_json
    - oauth2client.client.OAuth2Credentials.set_store
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - credential.set_store
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__
    - storage_model.rsplit
    - oauth2client._helpers._parse_pem_key
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.len
    - request.user.is_authenticated
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - <builtin>.__import__
    - kwargs.get
    - oauth2client.client.Storage.release_lock
    - pyasn1_modules.pem.readPemBlocksFromFile
    - google.appengine.ext.db.Model.get_by_key_name
    - six.StringIO
    - importlib.import_module
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - flask.session.get
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pkey_info.asOctets
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.user.is_authenticated
    functionSourceFile: <builtin>
    functionUses: 9
    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 0x7f1d2d4a0700>
    - <ast.Constant object at 0x7f1d2d4a0cd0>
    argNames:
    - self
    - request
    - scopes
    - return_url
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 431
    functionName: oauth2client.contrib.django_util.UserOAuth2.__init__
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 3
    functionsReached:
    - request.get_full_path
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.get_full_path
    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: 8
    functionLinenumber: 447
    functionName: oauth2client.contrib.django_util.UserOAuth2.get_authorize_redirect
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 1
    functionsReached:
    - django.core.urlresolvers.reverse
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - datetime.datetime.strptime
    - oauth2client.contrib.django_util.get_storage
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - module_name.replace
    - <builtin>.hasattr
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - base64.b64decode
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - <builtin>.issubclass
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - oauth2client.contrib.django_util._credentials_from_request
    - raw_key_input.find
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.client.AccessTokenCredentials.__init__
    - oauth2client.client.Storage.get
    - json_data.get
    - <builtin>.getattr
    - credentials.to_json
    - oauth2client.client.OAuth2Credentials.set_store
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - credential.set_store
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__
    - storage_model.rsplit
    - oauth2client._helpers._parse_pem_key
    - oauth2client.contrib.django_util.UserOAuth2._get_scopes
    - <builtin>.len
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - request.user.is_authenticated
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - <builtin>.__import__
    - oauth2client.contrib.django_util._redirect_with_params
    - kwargs.get
    - six.moves.urllib.parse.urlencode
    - oauth2client.client.Storage.release_lock
    - pyasn1_modules.pem.readPemBlocksFromFile
    - google.appengine.ext.db.Model.get_by_key_name
    - six.StringIO
    - importlib.import_module
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - flask.session.get
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pkey_info.asOctets
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - pyasn1.codec.der.decoder.decode
    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: 7
    functionLinenumber: 463
    functionName: oauth2client.contrib.django_util.UserOAuth2._get_scopes
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 6
    functionsReached:
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - datetime.datetime.strptime
    - oauth2client.contrib.django_util.get_storage
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - module_name.replace
    - <builtin>.hasattr
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - base64.b64decode
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - <builtin>.issubclass
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - oauth2client.contrib.django_util._credentials_from_request
    - raw_key_input.find
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.client.AccessTokenCredentials.__init__
    - oauth2client.client.Storage.get
    - json_data.get
    - <builtin>.getattr
    - credentials.to_json
    - oauth2client.client.OAuth2Credentials.set_store
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - credential.set_store
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__
    - storage_model.rsplit
    - oauth2client._helpers._parse_pem_key
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.len
    - request.user.is_authenticated
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - <builtin>.__import__
    - kwargs.get
    - oauth2client.client.Storage.release_lock
    - pyasn1_modules.pem.readPemBlocksFromFile
    - google.appengine.ext.db.Model.get_by_key_name
    - six.StringIO
    - importlib.import_module
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - flask.session.get
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pkey_info.asOctets
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 456
    functionName: oauth2client.contrib.django_util.UserOAuth2.has_credentials
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 3
    functionsReached:
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - datetime.datetime.strptime
    - oauth2client.contrib.django_util.get_storage
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - module_name.replace
    - oauth2client._helpers.string_to_scopes
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - <builtin>.hasattr
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - base64.b64decode
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - <builtin>.issubclass
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - oauth2client.contrib.django_util._credentials_from_request
    - raw_key_input.find
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.client.AccessTokenCredentials.__init__
    - oauth2client.client.Storage.get
    - json_data.get
    - <builtin>.getattr
    - credentials.to_json
    - oauth2client.client.OAuth2Credentials.set_store
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - credential.set_store
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__
    - storage_model.rsplit
    - oauth2client._helpers._parse_pem_key
    - oauth2client.contrib.django_util.UserOAuth2._get_scopes
    - <builtin>.len
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - request.user.is_authenticated
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - <builtin>.__import__
    - kwargs.get
    - oauth2client.client.Storage.release_lock
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - google.appengine.ext.db.Model.get_by_key_name
    - importlib.import_module
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - flask.session.get
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pkey_info.asOctets
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - scopes.split
    - <builtin>.set
    - pyasn1.codec.der.decoder.decode
    - oauth2client.client.OAuth2Credentials.has_scopes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 473
    functionName: oauth2client.contrib.django_util.UserOAuth2.scopes
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 0
    functionsReached:
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - datetime.datetime.strptime
    - oauth2client.contrib.django_util.get_storage
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - module_name.replace
    - <builtin>.hasattr
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - base64.b64decode
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - <builtin>.issubclass
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - oauth2client.contrib.django_util._credentials_from_request
    - raw_key_input.find
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.client.AccessTokenCredentials.__init__
    - oauth2client.client.Storage.get
    - json_data.get
    - <builtin>.getattr
    - credentials.to_json
    - oauth2client.client.OAuth2Credentials.set_store
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - credential.set_store
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__
    - storage_model.rsplit
    - oauth2client._helpers._parse_pem_key
    - oauth2client.contrib.django_util.UserOAuth2._get_scopes
    - <builtin>.len
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - request.user.is_authenticated
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - <builtin>.__import__
    - kwargs.get
    - oauth2client.client.Storage.release_lock
    - pyasn1_modules.pem.readPemBlocksFromFile
    - google.appengine.ext.db.Model.get_by_key_name
    - six.StringIO
    - importlib.import_module
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - flask.session.get
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pkey_info.asOctets
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - pyasn1.codec.der.decoder.decode
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 480
    functionName: oauth2client.contrib.django_util.UserOAuth2.credentials
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 0
    functionsReached:
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - datetime.datetime.strptime
    - oauth2client.contrib.django_util.get_storage
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - module_name.replace
    - <builtin>.hasattr
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - base64.b64decode
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - <builtin>.issubclass
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - oauth2client.contrib.django_util._credentials_from_request
    - raw_key_input.find
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.client.AccessTokenCredentials.__init__
    - oauth2client.client.Storage.get
    - json_data.get
    - <builtin>.getattr
    - credentials.to_json
    - oauth2client.client.OAuth2Credentials.set_store
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - credential.set_store
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__
    - storage_model.rsplit
    - oauth2client._helpers._parse_pem_key
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.len
    - request.user.is_authenticated
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - <builtin>.__import__
    - kwargs.get
    - oauth2client.client.Storage.release_lock
    - pyasn1_modules.pem.readPemBlocksFromFile
    - google.appengine.ext.db.Model.get_by_key_name
    - six.StringIO
    - importlib.import_module
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - flask.session.get
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pkey_info.asOctets
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - pyasn1.codec.der.decoder.decode
    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: 8
    functionLinenumber: 485
    functionName: oauth2client.contrib.django_util.UserOAuth2.http
    functionSourceFile: oauth2client.contrib.django_util
    functionUses: 0
    functionsReached:
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - <builtin>.isinstance
    - value.decode
    - OpenSSL.crypto.load_privatekey
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - datetime.datetime.strptime
    - oauth2client.contrib.django_util.get_storage
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - module_name.replace
    - oauth2client._helpers.string_to_scopes
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - <builtin>.hasattr
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - httplib2.Http
    - base64.b64decode
    - oauth2client._helpers.scopes_to_string
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - <builtin>.issubclass
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - oauth2client.contrib.django_util._credentials_from_request
    - raw_key_input.find
    - oauth2client.transport.get_http_object
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.client.AccessTokenCredentials.__init__
    - oauth2client.contrib.django_util.UserOAuth2.has_credentials
    - oauth2client.client.Storage.get
    - json_data.get
    - <builtin>.getattr
    - credentials.to_json
    - oauth2client.client.OAuth2Credentials.set_store
    - key_info.getComponentByName
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - credential.set_store
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__
    - storage_model.rsplit
    - oauth2client._helpers._parse_pem_key
    - oauth2client.contrib.django_util.UserOAuth2._get_scopes
    - <builtin>.len
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - request.user.is_authenticated
    - rsa.key.PrivateKey.load_pkcs1
    - <builtin>.super
    - Crypto.PublicKey.RSA.importKey
    - <builtin>.__import__
    - kwargs.get
    - oauth2client.client.Storage.release_lock
    - pyasn1_modules.pem.readPemBlocksFromFile
    - six.StringIO
    - importlib.import_module
    - google.appengine.ext.db.Model.get_by_key_name
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - flask.session.get
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - pkey_info.asOctets
    - oauth2client.client.Credentials.new_from_json
    - kls.from_json
    - scopes.split
    - <builtin>.set
    - pyasn1.codec.der.decoder.decode
    - oauth2client.client.OAuth2Credentials.has_scopes
    linkageType: 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: oauth2client.contrib.django_util.storage
    functionSourceFile: oauth2client.contrib.django_util.storage
    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: entity.save
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: oauth2client.contrib.django_util.views
    functionSourceFile: oauth2client.contrib.django_util.views
    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 0x7f1d2db14b80>
    argNames:
    - request
    - scopes
    - return_url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 44
    functionName: oauth2client.contrib.django_util.views._make_flow
    functionSourceFile: oauth2client.contrib.django_util.views
    functionUses: 1
    functionsReached:
    - oauth2client.client._oauth2_web_server_flow_params
    - params.get
    - django.core.urlresolvers.reverse
    - oauth2client.client.OAuth2WebServerFlow.__init__
    - params.update
    - logger.warning
    - os.urandom
    - jsonpickle.encode
    - _FLOW_KEY.format
    - request.build_absolute_uri
    - <builtin>.isinstance
    - json.dumps
    - oauth2client._helpers.scopes_to_string
    - 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: request.build_absolute_uri
    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: jsonpickle.encode
    functionSourceFile: jsonpickle
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - csrf_token
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: oauth2client.contrib.django_util.views._get_flow_for_token
    functionSourceFile: oauth2client.contrib.django_util.views
    functionUses: 1
    functionsReached:
    - request.session.get
    - _FLOW_KEY.format
    - jsonpickle.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.session.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: jsonpickle.decode
    functionSourceFile: jsonpickle
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - request
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 96
    functionName: oauth2client.contrib.django_util.views.oauth2_callback
    functionSourceFile: oauth2client.contrib.django_util.views
    functionUses: 0
    functionsReached:
    - oauth2client.service_account.ServiceAccountCredentials._to_json
    - oauth2client.client.Storage.put
    - oauth2client.contrib.django_util.get_storage
    - to_serialize.get
    - base64.b64encode
    - oauth2client.client.Credentials.to_json
    - oauth2client.contrib.gce.AppAssertionCredentials.to_json
    - json.loads
    - request.GET.get
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_put
    - django.shortcuts.redirect
    - django.http.HttpResponseBadRequest
    - jsonpickle.decode
    - <builtin>.getattr
    - oauth2client.contrib.django_util.views._get_flow_for_token
    - google.appengine.ext.db.Model.get_or_insert
    - flow.step2_exchange
    - entity.put
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__
    - <builtin>.setattr
    - signals.oauth2_authorized.send
    - storage_model.rsplit
    - django.utils.html.escape
    - _FLOW_KEY.format
    - entity.save
    - <builtin>.super
    - request.session.get
    - oauth2client.client.Storage.release_lock
    - copy.copy
    - importlib.import_module
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.contrib.appengine.StorageByKeyName.locked_put
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_put
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.GET.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: django.utils.html.escape
    functionSourceFile: django
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: django.http.HttpResponseBadRequest
    functionSourceFile: django
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: signals.oauth2_authorized.send
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: django.shortcuts.redirect
    functionSourceFile: django
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - request
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 159
    functionName: oauth2client.contrib.django_util.views.oauth2_authorize
    functionSourceFile: oauth2client.contrib.django_util.views
    functionUses: 0
    functionsReached:
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client._helpers.scopes_to_string
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - oauth2client.contrib.django_util._credentials_from_request
    - oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url
    - request.GET.get
    - oauth2client.client.AccessTokenCredentials.__init__
    - <builtin>.getattr
    - oauth2client.client.OAuth2Credentials.set_store
    - _pkce.code_verifier
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - storage_model.rsplit
    - six.moves.urllib.parse.parse_qs
    - oauth2client.client.OAuth2WebServerFlow.__init__
    - kwargs.get
    - oauth2client.client.Storage.release_lock
    - jsonpickle.encode
    - six.StringIO
    - importlib.import_module
    - flask.session.get
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - pkey_info.asOctets
    - oauth2client._helpers.update_query_params
    - kls.from_json
    - <builtin>.set
    - hashlib.sha256
    - six.moves.urllib.parse.urlunparse
    - OpenSSL.crypto.load_privatekey
    - value.decode
    - oauth2client.contrib.django_util.get_storage
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - <builtin>.issubclass
    - six.moves.urllib.parse.quote
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.contrib.django_util.UserOAuth2.has_credentials
    - django.shortcuts.redirect
    - json.dumps
    - credentials.to_json
    - oauth2client.client._oauth2_web_server_flow_params
    - oauth2client._helpers._to_bytes
    - oauth2client._helpers.parse_unique_urlencoded
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.len
    - params.get
    - six.moves.urllib.parse.urlencode
    - pyasn1_modules.pem.readPemBlocksFromFile
    - google.appengine.ext.db.Model.get_by_key_name
    - parts._replace
    - six.moves.urllib.parse.urlparse
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - oauth2client._helpers.string_to_scopes
    - pyasn1.codec.der.decoder.decode
    - django.core.urlresolvers.reverse
    - oauth2client.contrib.django_util.UserOAuth2.__init__
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - datetime.datetime.strptime
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - base64.b64decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - params.update
    - oauth2client.client.Storage.get
    - request.GET.getlist
    - credential.set_store
    - oauth2client._helpers._parse_pem_key
    - _FLOW_KEY.format
    - rsa.key.PrivateKey.load_pkcs1
    - request.META.get
    - Crypto.PublicKey.RSA.importKey
    - <builtin>.__import__
    - logger.warning
    - six.iteritems
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.client.Credentials.new_from_json
    - scopes.split
    - query_params.update
    - <builtin>.isinstance
    - _pkce.code_challenge
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - request.get_full_path
    - module_name.replace
    - <builtin>.hasattr
    - raw_key_input.find
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - json_data.get
    - key_info.getComponentByName
    - oauth2client.contrib.django_util.UserOAuth2._get_scopes
    - oauth2client.contrib.django_util.views._make_flow
    - request.user.is_authenticated
    - <builtin>.super
    - os.urandom
    - request.build_absolute_uri
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - oauth2client.client.OAuth2Credentials.has_scopes
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.META.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: request.GET.getlist
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: six.moves.urllib.parse.quote
    functionSourceFile: six
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: oauth2client.contrib.django_util.signals
    functionSourceFile: oauth2client.contrib.django_util.signals
    functionUses: 0
    functionsReached:
    - django.dispatch.Signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: django.dispatch.Signal
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: oauth2client.contrib.django_util.apps
    functionSourceFile: oauth2client.contrib.django_util.apps
    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: oauth2client.contrib.django_util.decorators
    functionSourceFile: oauth2client.contrib.django_util.decorators
    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 0x7f1d2d867340>
    - <ast.Constant object at 0x7f1d2d867220>
    argNames:
    - decorated_function
    - scopes
    - decorator_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 36
    functionName: oauth2client.contrib.django_util.decorators.oauth_required
    functionSourceFile: oauth2client.contrib.django_util.decorators
    functionUses: 0
    functionsReached:
    - oauth2client.contrib.django_util.decorators.oauth_required.curry_wrapper
    - six.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - wrapped_function
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 70
    functionName: oauth2client.contrib.django_util.decorators.oauth_required.curry_wrapper
    functionSourceFile: oauth2client.contrib.django_util.decorators
    functionUses: 1
    functionsReached:
    - six.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: six.wraps
    functionSourceFile: six
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - request
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 72
    functionName: oauth2client.contrib.django_util.decorators.oauth_required.curry_wrapper.required_wrapper
    functionSourceFile: oauth2client.contrib.django_util.decorators
    functionUses: 0
    functionsReached:
    - module_name.split
    - oauth2client.service_account.ServiceAccountCredentials.__init__
    - oauth2client.contrib.appengine.StorageByKeyName.locked_get
    - oauth2client._helpers.scopes_to_string
    - oauth2client.contrib.appengine.StorageByKeyName._get_entity
    - oauth2client.contrib.django_util._credentials_from_request
    - oauth2client.client.AccessTokenCredentials.__init__
    - <builtin>.getattr
    - oauth2client.client.OAuth2Credentials.set_store
    - oauth2client._pure_python_crypt.RsaSigner.from_string
    - <builtin>.setattr
    - storage_model.rsplit
    - kwargs.get
    - oauth2client.client.Storage.release_lock
    - six.StringIO
    - importlib.import_module
    - flask.session.get
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get
    - oauth2client._openssl_crypt.OpenSSLSigner.__init__
    - pkey_info.asOctets
    - kls.from_json
    - <builtin>.set
    - OpenSSL.crypto.load_privatekey
    - value.decode
    - oauth2client.contrib.django_util.get_storage
    - oauth2client.service_account.ServiceAccountCredentials.from_json
    - oauth2client._openssl_crypt.OpenSSLSigner.from_string
    - <builtin>.issubclass
    - six.moves.urllib.parse.quote
    - OpenSSL.crypto.load_pkcs12
    - oauth2client.contrib.django_util.UserOAuth2.has_credentials
    - django.shortcuts.redirect
    - credentials.to_json
    - oauth2client._helpers._to_bytes
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get
    - google.appengine.ext.db.Model.get_by_id
    - oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__
    - oauth2client.contrib.appengine.AppAssertionCredentials.__init__
    - <builtin>.len
    - six.moves.urllib.parse.urlencode
    - pyasn1_modules.pem.readPemBlocksFromFile
    - google.appengine.ext.db.Model.get_by_key_name
    - decorator_kwargs.pop
    - oauth2client.contrib.appengine.AppAssertionCredentials.from_json
    - oauth2client._helpers.string_to_scopes
    - pyasn1.codec.der.decoder.decode
    - django.core.urlresolvers.reverse
    - oauth2client.contrib.django_util.UserOAuth2.__init__
    - oauth2client._helpers._from_bytes
    - oauth2client.client.AccessTokenCredentials.from_json
    - datetime.datetime.strptime
    - oauth2client.contrib.gce.AppAssertionCredentials.from_json
    - base64.b64decode
    - oauth2client._pycrypto_crypt.PyCryptoSigner.from_string
    - oauth2client.client.Storage.get
    - credential.set_store
    - oauth2client._helpers._parse_pem_key
    - rsa.key.PrivateKey.load_pkcs1
    - Crypto.PublicKey.RSA.importKey
    - <builtin>.__import__
    - oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__
    - oauth2client.client.Storage.acquire_lock
    - oauth2client.client.Credentials.new_from_json
    - scopes.split
    - <builtin>.isinstance
    - oauth2client._pycrypto_crypt.PyCryptoSigner.__init__
    - value.encode
    - request.get_full_path
    - module_name.replace
    - <builtin>.hasattr
    - raw_key_input.find
    - json.loads
    - credentials.set_store
    - oauth2client.contrib.appengine.StorageByKeyName._is_ndb
    - json_data.get
    - key_info.getComponentByName
    - oauth2client.contrib.django_util.UserOAuth2._get_scopes
    - request.user.is_authenticated
    - oauth2client.contrib.django_util.UserOAuth2.get_authorize_redirect
    - <builtin>.super
    - oauth2client.contrib.django_util._redirect_with_params
    - oauth2client._pure_python_crypt.RsaSigner.__init__
    - oauth2client.client.OAuth2Credentials.has_scopes
    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 0x7f1d2d07c220>
    - <ast.Constant object at 0x7f1d2d07c730>
    argNames:
    - decorated_function
    - scopes
    - decorator_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 97
    functionName: oauth2client.contrib.django_util.decorators.oauth_enabled
    functionSourceFile: oauth2client.contrib.django_util.decorators
    functionUses: 0
    functionsReached:
    - oauth2client.contrib.django_util.decorators.oauth_enabled.curry_wrapper
    - six.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - wrapped_function
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 130
    functionName: oauth2client.contrib.django_util.decorators.oauth_enabled.curry_wrapper
    functionSourceFile: oauth2client.contrib.django_util.decorators
    functionUses: 1
    functionsReached:
    - six.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - request
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 132
    functionName: oauth2client.contrib.django_util.decorators.oauth_enabled.curry_wrapper.enabled_wrapper
    functionSourceFile: oauth2client.contrib.django_util.decorators
    functionUses: 0
    functionsReached:
    - oauth2client.contrib.django_util.UserOAuth2.__init__
    - <builtin>.setattr
    - request.get_full_path
    - decorator_kwargs.pop
    - <builtin>.set
    linkageType: 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: oauth2client.contrib.django_util.models
    functionSourceFile: oauth2client.contrib.django_util.models
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 30
    functionName: oauth2client.contrib.django_util.models.CredentialsField.__init__
    functionSourceFile: oauth2client.contrib.django_util.models
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 35
    functionName: oauth2client.contrib.django_util.models.CredentialsField.get_internal_type
    functionSourceFile: oauth2client.contrib.django_util.models
    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
    - value
    - expression
    - connection
    - context
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 38
    functionName: oauth2client.contrib.django_util.models.CredentialsField.from_db_value
    functionSourceFile: oauth2client.contrib.django_util.models
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - django.utils.encoding.smart_bytes
    - pickle.loads
    - jsonpickle.decode
    - oauth2client.contrib.django_util.models.CredentialsField.to_python
    - base64.b64decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: oauth2client.contrib.django_util.models.CredentialsField.to_python
    functionSourceFile: oauth2client.contrib.django_util.models
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - django.utils.encoding.smart_bytes
    - pickle.loads
    - jsonpickle.decode
    - base64.b64decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: django.utils.encoding.smart_bytes
    functionSourceFile: django
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: oauth2client.contrib.django_util.models.CredentialsField.get_prep_value
    functionSourceFile: oauth2client.contrib.django_util.models
    functionUses: 1
    functionsReached:
    - jsonpickle.encode
    - django.utils.encoding.smart_text
    - base64.b64encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: django.utils.encoding.smart_text
    functionSourceFile: django
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 70
    functionName: oauth2client.contrib.django_util.models.CredentialsField.value_to_string
    functionSourceFile: oauth2client.contrib.django_util.models
    functionUses: 0
    functionsReached:
    - django.utils.encoding.smart_text
    - jsonpickle.encode
    - oauth2client.contrib.django_util.models.CredentialsField.get_prep_value
    - django.db.models.Field._get_val_from_obj
    - base64.b64encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: django.db.models.Field._get_val_from_obj
    functionSourceFile: django
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_helpers':
  - 19
  - 84
  - 85
  '...fuzz_helpers.TestInput':
  - 23
  - 37
  - 38
  - 39
  - 41
  - 43
  - 45
  - 47
  - 48
  - 49
  - 50
  - 51
  - 54
  - 55
  - 56
  - 57
  - 60
  - 62
  - 64
  - 65
  - 66
  - 68
  - 69
  - 70
  - 73
  - 74
  - 77
  '...fuzz_helpers.main':
  - 81
  - 82
  oauth2client:
  - 15
  oauth2client._helpers:
  - 34
  - 29
  - 15
  oauth2client._helpers._add_query_parameter:
  - 243
  - 246
  - 231
  oauth2client._helpers._from_bytes:
  - 323
  - 324
  - 325
  - 311
  oauth2client._helpers._json_encode:
  - 278
  oauth2client._helpers._parse_pem_key:
  - 272
  - 273
  - 259
  oauth2client._helpers._to_bytes:
  - 304
  - 282
  - 302
  - 303
  oauth2client._helpers._urlsafe_b64decode:
  - 339
  - 340
  - 341
  oauth2client._helpers._urlsafe_b64encode:
  - 333
  - 334
  oauth2client._helpers.parse_unique_urlencoded:
  - 194
  - 196
  - 197
  - 199
  - 183
  oauth2client._helpers.positional:
  - 136
  - 139
  - 140
  - 45
  oauth2client._helpers.positional.positional_decorator:
  - 117
  oauth2client._helpers.positional.positional_decorator.positional_wrapper:
  - 129
  - 131
  - 132
  - 133
  - 119
  - 121
  - 123
  - 127
  oauth2client._helpers.scopes_to_string:
  - 144
  - 156
  - 159
  oauth2client._helpers.string_to_scopes:
  - 176
  - 177
  - 163
  - 174
  oauth2client._helpers.update_query_params:
  - 224
  - 225
  - 226
  - 227
  - 206
  - 222
  - 223
  oauth2client._helpers.validate_file:
  - 250
  - 252
  - 254
  - 255
  oauth2client._openssl_crypt:
  - 14
  oauth2client._openssl_crypt.OpenSSLSigner:
  - 77
  oauth2client._openssl_crypt.OpenSSLSigner.__init__:
  - 80
  oauth2client._openssl_crypt.OpenSSLSigner.from_string:
  - 101
  - 113
  - 114
  - 115
  - 116
  - 118
  - 119
  - 120
  oauth2client._openssl_crypt.OpenSSLSigner.sign:
  - 88
  - 97
  - 96
  oauth2client._openssl_crypt.OpenSSLVerifier:
  - 22
  oauth2client._openssl_crypt.OpenSSLVerifier.__init__:
  - 25
  oauth2client._openssl_crypt.OpenSSLVerifier.from_string:
  - 68
  - 69
  - 70
  - 72
  - 73
  - 55
  oauth2client._openssl_crypt.OpenSSLVerifier.verify:
  - 48
  - 33
  - 45
  - 46
  oauth2client._openssl_crypt.pkcs12_key_as_pem:
  - 133
  - 134
  - 135
  - 136
  - 124
  oauth2client._pkce:
  - 15
  oauth2client._pkce.code_challenge:
  - 66
  - 67
  - 53
  oauth2client._pkce.code_verifier:
  - 46
  - 41
  - 28
  - 44
  oauth2client._pure_python_crypt:
  - 46
  - 15
  oauth2client._pure_python_crypt.RsaSigner:
  - 129
  oauth2client._pure_python_crypt.RsaSigner.from_string:
  - 166
  - 167
  - 168
  - 170
  - 171
  - 173
  - 174
  - 176
  - 178
  - 179
  - 152
  - 184
  oauth2client._pure_python_crypt.RsaSigner.sign:
  - 148
  - 139
  - 147
  oauth2client._pure_python_crypt.RsaVerifier:
  - 66
  oauth2client._pure_python_crypt.RsaVerifier.from_string:
  - 96
  - 113
  - 114
  - 115
  - 116
  - 117
  - 121
  - 122
  - 124
  - 125
  oauth2client._pure_python_crypt.RsaVerifier.verify:
  - 88
  - 90
  - 76
  oauth2client._pure_python_crypt._bit_list_to_bytes:
  - 50
  - 55
  - 56
  - 57
  - 59
  - 60
  - 61
  - 62
  oauth2client._pycrypto_crypt:
  - 14
  oauth2client._pycrypto_crypt.PyCryptoSigner:
  - 79
  oauth2client._pycrypto_crypt.PyCryptoSigner.__init__:
  - 82
  oauth2client._pycrypto_crypt.PyCryptoSigner.from_string:
  - 103
  - 116
  - 117
  - 118
  - 124
  oauth2client._pycrypto_crypt.PyCryptoSigner.sign:
  - 90
  - 99
  - 98
  oauth2client._pycrypto_crypt.PyCryptoVerifier:
  - 25
  oauth2client._pycrypto_crypt.PyCryptoVerifier.__init__:
  - 28
  oauth2client._pycrypto_crypt.PyCryptoVerifier.from_string:
  - 64
  - 65
  - 66
  - 67
  - 68
  - 69
  - 70
  - 71
  - 72
  - 74
  - 75
  - 54
  oauth2client._pycrypto_crypt.PyCryptoVerifier.verify:
  - 48
  - 49
  - 50
  - 37
  oauth2client.client:
  - 101
  - 106
  - 2092
  - 15
  - 111
  - 1617
  - 1683
  - 52
  - 1529
  - 95
  oauth2client.client.AccessTokenCredentials:
  - 906
  oauth2client.client.AccessTokenCredentials.__init__:
  - 944
  - 932
  oauth2client.client.AccessTokenCredentials._refresh:
  - 963
  oauth2client.client.AccessTokenCredentials._revoke:
  - 980
  - 975
  oauth2client.client.AccessTokenCredentials.from_json:
  - 956
  - 957
  oauth2client.client.AccessTokenCredentialsError:
  - 160
  oauth2client.client.AccessTokenRefreshError:
  - 141
  oauth2client.client.ApplicationDefaultCredentialsError:
  - 172
  oauth2client.client.AssertionCredentials:
  - 1445
  - 1455
  oauth2client.client.AssertionCredentials.__init__:
  - 1472
  - 1460
  oauth2client.client.AssertionCredentials._generate_assertion:
  - 1494
  oauth2client.client.AssertionCredentials._generate_refresh_request_body:
  - 1484
  - 1486
  oauth2client.client.AssertionCredentials._revoke:
  - 1498
  - 1503
  oauth2client.client.AssertionCredentials.sign_blob:
  - 1506
  oauth2client.client.Credentials:
  - 200
  - 191
  oauth2client.client.Credentials._to_json:
  - 256
  - 257
  - 260
  - 261
  - 262
  - 264
  - 265
  - 269
  - 270
  - 271
  - 272
  - 273
  - 242
  - 274
  oauth2client.client.Credentials.apply:
  - 234
  oauth2client.client.Credentials.authorize:
  - 203
  oauth2client.client.Credentials.from_json:
  - 328
  - 318
  oauth2client.client.Credentials.new_from_json:
  - 298
  - 299
  - 304
  - 308
  - 309
  - 311
  - 312
  - 313
  - 314
  - 287
  oauth2client.client.Credentials.refresh:
  - 216
  oauth2client.client.Credentials.revoke:
  - 225
  oauth2client.client.Credentials.to_json:
  - 283
  - 277
  oauth2client.client.CryptoUnavailableError:
  - 180
  oauth2client.client.DeviceFlowInfo:
  - 1743
  oauth2client.client.DeviceFlowInfo.FromResponse:
  - 1760
  - 1761
  - 1762
  - 1767
  - 1771
  - 1773
  - 1774
  - 1775
  - 1747
  oauth2client.client.Error:
  - 133
  oauth2client.client.Flow:
  - 332
  oauth2client.client.FlowExchangeError:
  - 137
  oauth2client.client.GoogleCredentials:
  - 1049
  - 1074
  - 1076
  oauth2client.client.GoogleCredentials.__init__:
  - 1081
  - 1101
  oauth2client.client.GoogleCredentials._get_implicit_credentials:
  - 1256
  - 1257
  - 1235
  - 1255
  oauth2client.client.GoogleCredentials._implicit_credentials_from_files:
  - 1219
  - 1194
  - 1227
  - 1230
  - 1207
  - 1208
  - 1209
  - 1210
  oauth2client.client.GoogleCredentials._implicit_credentials_from_gae:
  - 1161
  - 1171
  - 1174
  oauth2client.client.GoogleCredentials._implicit_credentials_from_gce:
  - 1178
  - 1187
  - 1190
  oauth2client.client.GoogleCredentials.create_scoped:
  - 1114
  oauth2client.client.GoogleCredentials.create_scoped_required:
  - 1106
  oauth2client.client.GoogleCredentials.from_json:
  - 1125
  - 1129
  - 1131
  - 1132
  - 1134
  - 1136
  - 1137
  - 1145
  oauth2client.client.GoogleCredentials.from_stream:
  - 1289
  - 1275
  - 1294
  - 1287
  oauth2client.client.GoogleCredentials.get_application_default:
  - 1265
  - 1271
  oauth2client.client.GoogleCredentials.serialization_data:
  - 1151
  oauth2client.client.HttpAccessTokenRefreshError:
  - 145
  oauth2client.client.HttpAccessTokenRefreshError.__init__:
  - 147
  - 148
  oauth2client.client.NonAsciiHeaderError:
  - 168
  oauth2client.client.OAuth2Credentials:
  - 450
  - 442
  oauth2client.client.OAuth2Credentials.__getstate__:
  - 704
  - 705
  oauth2client.client.OAuth2Credentials.__init__:
  - 501
  - 455
  oauth2client.client.OAuth2Credentials.__setstate__:
  - 710
  - 711
  oauth2client.client.OAuth2Credentials._do_refresh_request:
  - 774
  - 775
  - 777
  - 778
  - 781
  - 782
  - 783
  - 786
  - 787
  - 788
  - 789
  - 792
  - 793
  - 801
  - 802
  - 806
  - 807
  - 809
  - 810
  - 812
  - 815
  - 816
  - 766
  oauth2client.client.OAuth2Credentials._do_retrieve_scopes:
  - 897
  - 898
  - 874
  - 885
  - 887
  - 889
  - 890
  - 891
  - 892
  - 893
  - 895
  oauth2client.client.OAuth2Credentials._do_revoke:
  - 841
  - 843
  - 845
  - 846
  - 847
  - 848
  - 862
  - 850
  - 853
  - 855
  - 856
  - 830
  - 863
  oauth2client.client.OAuth2Credentials._expires_in:
  - 680
  - 689
  - 690
  - 691
  oauth2client.client.OAuth2Credentials._generate_refresh_request_body:
  - 715
  - 716
  oauth2client.client.OAuth2Credentials._generate_refresh_request_headers:
  - 730
  - 725
  oauth2client.client.OAuth2Credentials._refresh:
  - 736
  - 748
  - 749
  - 751
  - 753
  - 755
  - 758
  - 759
  - 761
  - 763
  oauth2client.client.OAuth2Credentials._retrieve_scopes:
  - 866
  - 871
  oauth2client.client.OAuth2Credentials._revoke:
  - 827
  - 822
  oauth2client.client.OAuth2Credentials._updateFromCredential:
  - 700
  - 701
  oauth2client.client.OAuth2Credentials.access_token_expired:
  - 641
  - 644
  - 647
  - 648
  - 649
  - 637
  oauth2client.client.OAuth2Credentials.apply:
  - 557
  oauth2client.client.OAuth2Credentials.authorize:
  - 509
  - 535
  oauth2client.client.OAuth2Credentials.from_json:
  - 610
  - 611
  - 612
  - 614
  - 618
  - 626
  - 627
  - 628
  - 629
  - 630
  - 631
  - 600
  oauth2client.client.OAuth2Credentials.get_access_token:
  - 655
  - 660
  - 661
  - 662
  - 663
  - 664
  - 665
  oauth2client.client.OAuth2Credentials.has_scopes:
  - 581
  - 580
  - 565
  oauth2client.client.OAuth2Credentials.refresh:
  - 545
  - 539
  oauth2client.client.OAuth2Credentials.retrieve_scopes:
  - 584
  - 595
  oauth2client.client.OAuth2Credentials.revoke:
  - 554
  - 548
  oauth2client.client.OAuth2Credentials.set_store:
  - 668
  oauth2client.client.OAuth2DeviceCodeError:
  - 176
  oauth2client.client.OAuth2WebServerFlow:
  - 1991
  - 1895
  - 1806
  - 1811
  - 1943
  oauth2client.client.OAuth2WebServerFlow.__init__:
  - 1893
  - 1881
  - 1827
  - 1877
  oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url:
  - 1921
  - 1897
  - 1929
  - 1931
  - 1933
  - 1934
  - 1935
  - 1936
  - 1940
  - 1941
  - 1913
  - 1914
  oauth2client.client.OAuth2WebServerFlow.step1_get_device_and_user_codes:
  - 1984
  - 1954
  - 1962
  - 1965
  - 1966
  - 1983
  - 1968
  - 1970
  - 1971
  - 1973
  - 1945
  - 1978
  - 1980
  - 1982
  - 1951
  oauth2client.client.OAuth2WebServerFlow.step2_exchange:
  - 2050
  - 2051
  - 2053
  - 2055
  - 2056
  - 2058
  - 2059
  - 2060
  - 2064
  - 2065
  - 2066
  - 2070
  - 2071
  - 2074
  - 2075
  - 2082
  - 2083
  - 2085
  - 2086
  - 2088
  - 1993
  - 2014
  - 2016
  - 2019
  - 2021
  - 2022
  - 2032
  - 2034
  - 2036
  - 2041
  - 2045
  - 2047
  oauth2client.client.SETTINGS:
  - 128
  oauth2client.client.Storage:
  - 337
  oauth2client.client.Storage.__init__:
  - 344
  oauth2client.client.Storage.acquire_lock:
  - 354
  - 358
  - 359
  oauth2client.client.Storage.delete:
  - 434
  - 426
  - 436
  - 438
  oauth2client.client.Storage.get:
  - 409
  - 405
  - 398
  - 407
  oauth2client.client.Storage.locked_delete:
  - 391
  oauth2client.client.Storage.locked_get:
  - 371
  oauth2client.client.Storage.locked_put:
  - 381
  oauth2client.client.Storage.put:
  - 419
  - 412
  - 421
  - 423
  oauth2client.client.Storage.release_lock:
  - 368
  - 362
  - 367
  oauth2client.client.TokenRevokeError:
  - 152
  oauth2client.client.UnknownClientSecretsFlowError:
  - 156
  oauth2client.client.VerifyJwtTokenError:
  - 164
  oauth2client.client._detect_gce_environment:
  - 996
  - 998
  - 1002
  - 1004
  - 984
  oauth2client.client._extract_id_token:
  - 1575
  - 1576
  - 1578
  - 1580
  - 1584
  - 1585
  - 1565
  oauth2client.client._get_application_default_credential_GAE:
  - 1435
  oauth2client.client._get_application_default_credential_GCE:
  - 1441
  oauth2client.client._get_application_default_credential_from_file:
  - 1383
  - 1415
  - 1385
  - 1386
  - 1388
  - 1389
  - 1390
  - 1391
  - 1392
  - 1399
  - 1401
  - 1402
  - 1404
  - 1405
  oauth2client.client._get_environment_variable_file:
  - 1345
  - 1347
  - 1348
  oauth2client.client._get_well_known_file:
  - 1379
  - 1359
  - 1362
  - 1363
  - 1364
  - 1366
  - 1371
  - 1372
  - 1375
  oauth2client.client._in_gae_environment:
  - 1026
  - 1009
  - 1014
  - 1022
  - 1023
  oauth2client.client._in_gce_environment:
  - 1034
  - 1042
  - 1039
  oauth2client.client._oauth2_web_server_flow_params:
  - 1795
  - 1796
  - 1779
  - 1785
  - 1789
  - 1790
  - 1791
  oauth2client.client._parse_exchange_token_response:
  - 1602
  - 1604
  - 1608
  - 1611
  - 1612
  - 1589
  oauth2client.client._parse_expiry:
  - 184
  - 185
  oauth2client.client._require_crypto_or_die:
  - 1525
  - 1519
  oauth2client.client._save_private_file:
  - 1312
  - 1313
  - 1315
  - 1304
  - 1310
  - 1311
  oauth2client.client.credentials_from_clientsecrets_and_code:
  - 1736
  - 1690
  - 1733
  oauth2client.client.credentials_from_code:
  - 1668
  - 1628
  - 1679
  oauth2client.client.flow_from_clientsecrets:
  - 2144
  - 2152
  - 2153
  - 2154
  - 2156
  - 2097
  - 2161
  - 2162
  - 2163
  - 2165
  - 2134
  - 2136
  oauth2client.client.save_to_well_known_file:
  - 1319
  - 1331
  - 1332
  - 1334
  - 1335
  - 1340
  oauth2client.client.verify_id_token:
  - 1552
  - 1553
  - 1554
  - 1556
  - 1557
  - 1558
  - 1559
  - 1532
  oauth2client.clientsecrets:
  - 15
  oauth2client.clientsecrets.Error:
  - 61
  oauth2client.clientsecrets.InvalidClientSecretsError:
  - 65
  oauth2client.clientsecrets._loadfile:
  - 121
  - 122
  - 126
  oauth2client.clientsecrets._validate_clientsecrets:
  - 97
  - 98
  - 69
  - 102
  - 103
  - 83
  - 86
  - 93
  oauth2client.clientsecrets.load:
  - 110
  - 111
  oauth2client.clientsecrets.loadfile:
  - 130
  - 164
  - 165
  - 167
  - 168
  - 169
  - 171
  - 173
  oauth2client.clientsecrets.loads:
  - 115
  - 116
  oauth2client.contrib:
  - 1
  oauth2client.contrib._appengine_ndb:
  - 33
  - 35
  - 30
  - 15
  oauth2client.contrib._appengine_ndb.CredentialsNDBModel:
  - 148
  - 158
  oauth2client.contrib._appengine_ndb.CredentialsNDBModel._get_kind:
  - 162
  oauth2client.contrib._appengine_ndb.CredentialsNDBProperty:
  - 85
  oauth2client.contrib._appengine_ndb.CredentialsNDBProperty._from_base_type:
  - 137
  - 141
  - 127
  oauth2client.contrib._appengine_ndb.CredentialsNDBProperty._to_base_type:
  - 112
  - 121
  - 124
  oauth2client.contrib._appengine_ndb.CredentialsNDBProperty._validate:
  - 97
  - 106
  - 105
  oauth2client.contrib._appengine_ndb.FlowNDBProperty:
  - 57
  oauth2client.contrib._appengine_ndb.FlowNDBProperty._validate:
  - 77
  - 69
  - 78
  oauth2client.contrib._appengine_ndb.SiteXsrfSecretKeyNDB:
  - 48
  - 39
  oauth2client.contrib._appengine_ndb.SiteXsrfSecretKeyNDB._get_kind:
  - 52
  oauth2client.contrib._metadata:
  - 32
  - 33
  - 15
  oauth2client.contrib._metadata.get:
  - 64
  - 65
  - 38
  - 56
  - 57
  - 59
  - 62
  - 63
  oauth2client.contrib._metadata.get_service_account_info:
  - 75
  - 93
  - 95
  oauth2client.contrib._metadata.get_token:
  - 116
  - 113
  - 115
  - 100
  oauth2client.contrib.appengine:
  - 48
  - 891
  - 54
  - 15
  oauth2client.contrib.appengine.AppAssertionCredentials:
  - 120
  - 132
  oauth2client.contrib.appengine.AppAssertionCredentials.__init__:
  - 144
  - 146
  - 134
  - 151
  oauth2client.contrib.appengine.AppAssertionCredentials._refresh:
  - 172
  - 173
  - 159
  oauth2client.contrib.appengine.AppAssertionCredentials.create_scoped:
  - 188
  oauth2client.contrib.appengine.AppAssertionCredentials.from_json:
  - 155
  - 156
  oauth2client.contrib.appengine.AppAssertionCredentials.service_account_email:
  - 215
  - 213
  - 207
  oauth2client.contrib.appengine.AppAssertionCredentials.sign_blob:
  - 203
  - 191
  oauth2client.contrib.appengine.CredentialsModel:
  - 424
  - 428
  oauth2client.contrib.appengine.CredentialsProperty:
  - 253
  oauth2client.contrib.appengine.CredentialsProperty.get_value_for_datastore:
  - 264
  - 265
  - 267
  - 270
  - 271
  oauth2client.contrib.appengine.CredentialsProperty.make_value_from_datastore:
  - 281
  - 275
  - 276
  - 278
  oauth2client.contrib.appengine.CredentialsProperty.validate:
  - 288
  - 289
  - 287
  oauth2client.contrib.appengine.FlowProperty:
  - 220
  oauth2client.contrib.appengine.FlowProperty.get_value_for_datastore:
  - 233
  - 231
  oauth2client.contrib.appengine.FlowProperty.make_value_from_datastore:
  - 237
  - 239
  oauth2client.contrib.appengine.FlowProperty.validate:
  - 242
  - 246
  oauth2client.contrib.appengine.OAuth2Decorator:
  - 520
  - 505
  - 522
  - 471
  oauth2client.contrib.appengine.OAuth2Decorator.__init__:
  - 584
  - 589
  - 535
  oauth2client.contrib.appengine.OAuth2Decorator._create_flow:
  - 664
  - 666
  - 654
  - 663
  oauth2client.contrib.appengine.OAuth2Decorator._display_error_message:
  - 604
  - 605
  - 606
  oauth2client.contrib.appengine.OAuth2Decorator.authorize_url:
  - 728
  - 722
  - 727
  oauth2client.contrib.appengine.OAuth2Decorator.callback_application:
  - 813
  - 822
  - 823
  oauth2client.contrib.appengine.OAuth2Decorator.callback_handler:
  - 758
  oauth2client.contrib.appengine.OAuth2Decorator.callback_handler.OAuth2Handler:
  - 775
  oauth2client.contrib.appengine.OAuth2Decorator.callback_handler.OAuth2Handler.get:
  - 801
  - 803
  - 804
  - 808
  - 779
  - 780
  - 781
  - 782
  - 783
  - 784
  - 786
  - 787
  - 788
  - 790
  - 794
  - 795
  - 796
  - 797
  oauth2client.contrib.appengine.OAuth2Decorator.callback_path:
  - 746
  oauth2client.contrib.appengine.OAuth2Decorator.get_credentials:
  - 496
  - 503
  oauth2client.contrib.appengine.OAuth2Decorator.get_flow:
  - 518
  - 511
  oauth2client.contrib.appengine.OAuth2Decorator.has_credentials:
  - 714
  oauth2client.contrib.appengine.OAuth2Decorator.http:
  - 731
  - 741
  - 742
  oauth2client.contrib.appengine.OAuth2Decorator.oauth_aware:
  - 673
  oauth2client.contrib.appengine.OAuth2Decorator.oauth_aware.setup_oauth:
  - 707
  - 687
  - 688
  - 691
  - 694
  - 695
  - 699
  - 701
  - 703
  oauth2client.contrib.appengine.OAuth2Decorator.oauth_required:
  - 609
  oauth2client.contrib.appengine.OAuth2Decorator.oauth_required.check_oauth:
  - 641
  - 642
  - 644
  - 646
  - 620
  - 621
  - 624
  - 627
  - 628
  - 632
  - 635
  - 637
  oauth2client.contrib.appengine.OAuth2DecoratorFromClientSecrets:
  - 848
  - 828
  oauth2client.contrib.appengine.OAuth2DecoratorFromClientSecrets.__init__:
  - 866
  - 868
  - 873
  - 874
  - 879
  - 880
  - 850
  - 882
  - 885
  oauth2client.contrib.appengine.SiteXsrfSecretKey:
  - 88
  - 83
  oauth2client.contrib.appengine.StorageByKeyName:
  - 297
  - 304
  - 400
  - 377
  - 413
  oauth2client.contrib.appengine.StorageByKeyName.__init__:
  - 320
  - 322
  - 323
  - 326
  - 306
  oauth2client.contrib.appengine.StorageByKeyName._delete_entity:
  - 366
  - 371
  - 372
  - 374
  - 375
  oauth2client.contrib.appengine.StorageByKeyName._get_entity:
  - 352
  - 361
  - 363
  - 360
  oauth2client.contrib.appengine.StorageByKeyName._is_ndb:
  - 345
  - 342
  - 334
  - 343
  oauth2client.contrib.appengine.StorageByKeyName.locked_delete:
  - 417
  - 418
  - 420
  - 415
  oauth2client.contrib.appengine.StorageByKeyName.locked_get:
  - 385
  - 386
  - 387
  - 388
  - 389
  - 390
  - 391
  - 392
  - 393
  - 394
  - 396
  - 397
  - 379
  oauth2client.contrib.appengine.StorageByKeyName.locked_put:
  - 402
  - 407
  - 408
  - 409
  - 410
  - 411
  oauth2client.contrib.appengine._build_state_value:
  - 432
  - 445
  - 446
  oauth2client.contrib.appengine._generate_new_xsrf_secret_key:
  - 92
  - 93
  oauth2client.contrib.appengine._parse_state_value:
  - 451
  - 462
  - 463
  oauth2client.contrib.appengine._safe_html:
  - 79
  - 71
  oauth2client.contrib.appengine.oauth2decorator_from_clientsecrets:
  - 909
  - 894
  oauth2client.contrib.appengine.xsrf_secret_key:
  - 97
  - 105
  - 106
  - 108
  - 109
  - 110
  - 111
  - 113
  - 116
  oauth2client.contrib.devshell:
  - 15
  oauth2client.contrib.devshell.CommunicationError:
  - 34
  oauth2client.contrib.devshell.CredentialInfoResponse:
  - 48
  oauth2client.contrib.devshell.CredentialInfoResponse.__init__:
  - 65
  - 61
  - 62
  - 63
  oauth2client.contrib.devshell.DevshellCredentials:
  - 98
  oauth2client.contrib.devshell.DevshellCredentials.__init__:
  - 119
  - 111
  oauth2client.contrib.devshell.DevshellCredentials._refresh:
  - 130
  - 131
  - 132
  - 122
  - 127
  oauth2client.contrib.devshell.Error:
  - 29
  oauth2client.contrib.devshell.NoDevshellServer:
  - 38
  oauth2client.contrib.devshell._SendRecv:
  - 73
  - 75
  - 76
  - 79
  - 80
  - 83
  - 84
  - 86
  - 87
  - 89
  - 90
  - 91
  - 92
  - 94
  oauth2client.contrib.dictionary_storage:
  - 15
  oauth2client.contrib.dictionary_storage.DictionaryStorage:
  - 21
  oauth2client.contrib.dictionary_storage.DictionaryStorage.__init__:
  - 33
  - 34
  oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_delete:
  - 64
  - 65
  oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_get:
  - 39
  - 43
  - 45
  - 48
  - 49
  oauth2client.contrib.dictionary_storage.DictionaryStorage.locked_put:
  - 60
  - 54
  oauth2client.contrib.django_util:
  - 365
  - 15
  oauth2client.contrib.django_util.OAuth2Settings:
  - 320
  oauth2client.contrib.django_util.OAuth2Settings.__init__:
  - 354
  - 362
  - 336
  - 338
  - 341
  - 345
  - 346
  - 347
  - 349
  oauth2client.contrib.django_util.UserOAuth2:
  - 427
  oauth2client.contrib.django_util.UserOAuth2.__init__:
  - 432
  - 441
  - 442
  - 443
  - 445
  oauth2client.contrib.django_util.UserOAuth2._get_scopes:
  - 464
  - 466
  - 468
  oauth2client.contrib.django_util.UserOAuth2.credentials:
  - 481
  - 482
  oauth2client.contrib.django_util.UserOAuth2.get_authorize_redirect:
  - 448
  - 451
  - 454
  oauth2client.contrib.django_util.UserOAuth2.has_credentials:
  - 457
  - 459
  - 461
  oauth2client.contrib.django_util.UserOAuth2.http:
  - 488
  - 486
  - 487
  oauth2client.contrib.django_util.UserOAuth2.scopes:
  - 474
  - 477
  oauth2client.contrib.django_util._credentials_from_request:
  - 417
  - 419
  - 420
  - 421
  oauth2client.contrib.django_util._get_oauth2_client_id_and_secret:
  - 265
  - 274
  - 276
  - 277
  - 279
  - 281
  - 283
  oauth2client.contrib.django_util._get_storage_model:
  - 309
  - 293
  - 311
  oauth2client.contrib.django_util._load_client_secrets:
  - 257
  - 246
  - 255
  oauth2client.contrib.django_util._redirect_with_params:
  - 411
  - 412
  - 413
  - 399
  oauth2client.contrib.django_util.apps:
  - 26
  - 15
  oauth2client.contrib.django_util.apps.GoogleOAuth2HelperConfig:
  - 30
  oauth2client.contrib.django_util.decorators:
  - 15
  oauth2client.contrib.django_util.decorators.oauth_enabled:
  - 98
  - 142
  - 143
  oauth2client.contrib.django_util.decorators.oauth_enabled.curry_wrapper:
  - 131
  oauth2client.contrib.django_util.decorators.oauth_enabled.curry_wrapper.enabled_wrapper:
  - 133
  - 134
  - 135
  - 136
  - 138
  oauth2client.contrib.django_util.decorators.oauth_required:
  - 91
  - 92
  - 37
  oauth2client.contrib.django_util.decorators.oauth_required.curry_wrapper:
  - 71
  oauth2client.contrib.django_util.decorators.oauth_required.curry_wrapper.required_wrapper:
  - 73
  - 74
  - 75
  - 77
  - 78
  - 80
  - 81
  - 82
  - 83
  - 84
  - 85
  - 87
  oauth2client.contrib.django_util.get_storage:
  - 384
  - 385
  - 386
  - 387
  - 388
  - 394
  - 371
  oauth2client.contrib.django_util.models:
  - 15
  oauth2client.contrib.django_util.models.CredentialsField:
  - 28
  oauth2client.contrib.django_util.models.CredentialsField.__init__:
  - 33
  - 31
  oauth2client.contrib.django_util.models.CredentialsField.from_db_value:
  - 42
  - 39
  oauth2client.contrib.django_util.models.CredentialsField.get_prep_value:
  - 64
  - 67
  - 60
  - 68
  oauth2client.contrib.django_util.models.CredentialsField.to_python:
  - 45
  - 47
  - 49
  - 53
  - 54
  - 56
  - 57
  oauth2client.contrib.django_util.models.CredentialsField.value_to_string:
  - 81
  - 82
  - 71
  oauth2client.contrib.django_util.signals:
  - 27
  - 23
  - 15
  oauth2client.contrib.django_util.site:
  - 23
  - 22
  - 15
  oauth2client.contrib.django_util.storage:
  - 15
  oauth2client.contrib.django_util.storage.DjangoORMStorage:
  - 21
  oauth2client.contrib.django_util.storage.DjangoORMStorage.__init__:
  - 29
  - 39
  oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_delete:
  - 81
  - 79
  oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_get:
  - 46
  - 57
  - 58
  - 59
  - 60
  - 61
  oauth2client.contrib.django_util.storage.DjangoORMStorage.locked_put:
  - 72
  - 75
  - 67
  - 76
  oauth2client.contrib.django_util.views:
  - 15
  oauth2client.contrib.django_util.views._get_flow_for_token:
  - 80
  - 92
  - 93
  oauth2client.contrib.django_util.views._make_flow:
  - 66
  - 71
  - 72
  - 74
  - 75
  - 45
  - 57
  - 61
  oauth2client.contrib.django_util.views.oauth2_authorize:
  - 160
  - 192
  - 193
  - 174
  - 175
  - 176
  - 178
  - 180
  - 181
  - 182
  - 183
  - 187
  - 188
  - 189
  - 191
  oauth2client.contrib.django_util.views.oauth2_callback:
  - 131
  - 135
  - 137
  - 138
  - 140
  - 142
  - 143
  - 146
  - 148
  - 149
  - 151
  - 153
  - 156
  - 97
  - 110
  - 111
  - 112
  - 113
  - 114
  - 115
  - 121
  - 127
  oauth2client.contrib.flask_util:
  - 15
  oauth2client.contrib.flask_util.UserOAuth2:
  - 210
  oauth2client.contrib.flask_util.UserOAuth2.__init__:
  - 232
  - 233
  oauth2client.contrib.flask_util.UserOAuth2._create_blueprint:
  - 357
  - 358
  - 359
  oauth2client.contrib.flask_util.UserOAuth2._load_client_secrets:
  - 315
  - 316
  - 317
  oauth2client.contrib.flask_util.UserOAuth2._load_config:
  - 289
  - 293
  - 294
  - 297
  - 298
  - 277
  oauth2client.contrib.flask_util.UserOAuth2._make_flow:
  - 352
  - 326
  - 328
  - 332
  - 337
  - 338
  - 340
  - 341
  - 343
  - 348
  - 351
  oauth2client.contrib.flask_util.UserOAuth2.authorize_url:
  - 488
  - 496
  oauth2client.contrib.flask_util.UserOAuth2.authorize_view:
  - 364
  - 368
  - 372
  - 374
  - 375
  - 378
  - 379
  - 381
  oauth2client.contrib.flask_util.UserOAuth2.callback_view:
  - 384
  - 420
  - 389
  - 390
  - 391
  - 392
  - 393
  - 422
  - 423
  - 427
  - 429
  - 430
  - 432
  - 404
  - 410
  - 413
  - 415
  oauth2client.contrib.flask_util.UserOAuth2.credentials:
  - 440
  - 436
  - 439
  oauth2client.contrib.flask_util.UserOAuth2.email:
  - 457
  - 468
  - 469
  - 463
  oauth2client.contrib.flask_util.UserOAuth2.has_credentials:
  - 449
  - 445
  - 446
  oauth2client.contrib.flask_util.UserOAuth2.http:
  - 554
  - 556
  - 557
  - 542
  oauth2client.contrib.flask_util.UserOAuth2.init_app:
  - 263
  - 264
  - 268
  - 269
  - 238
  - 272
  - 274
  oauth2client.contrib.flask_util.UserOAuth2.required:
  - 536
  - 537
  - 500
  oauth2client.contrib.flask_util.UserOAuth2.required.curry_wrapper:
  - 508
  oauth2client.contrib.flask_util.UserOAuth2.required.curry_wrapper.required_wrapper:
  - 512
  - 513
  - 514
  - 515
  - 518
  - 522
  - 523
  - 524
  - 527
  - 532
  - 510
  oauth2client.contrib.flask_util.UserOAuth2.user_id:
  - 473
  - 484
  - 485
  - 479
  oauth2client.contrib.flask_util._get_flow_for_token:
  - 198
  - 200
  - 201
  - 203
  - 206
  oauth2client.contrib.gce:
  - 29
  - 15
  oauth2client.contrib.gce.AppAssertionCredentials:
  - 40
  oauth2client.contrib.gce.AppAssertionCredentials.__init__:
  - 65
  - 58
  - 66
  - 71
  oauth2client.contrib.gce.AppAssertionCredentials._refresh:
  - 128
  - 129
  - 117
  oauth2client.contrib.gce.AppAssertionCredentials._retrieve_info:
  - 108
  - 109
  - 103
  oauth2client.contrib.gce.AppAssertionCredentials.retrieve_scopes:
  - 99
  - 87
  oauth2client.contrib.gce.AppAssertionCredentials.sign_blob:
  - 143
  oauth2client.contrib.keyring_storage:
  - 15
  oauth2client.contrib.keyring_storage.Storage:
  - 28
  oauth2client.contrib.keyring_storage.Storage.__init__:
  - 58
  - 51
  oauth2client.contrib.keyring_storage.Storage.locked_delete:
  - 90
  - 95
  oauth2client.contrib.keyring_storage.Storage.locked_get:
  - 69
  - 71
  - 73
  - 74
  - 63
  oauth2client.contrib.keyring_storage.Storage.locked_put:
  - 81
  - 86
  - 87
  oauth2client.contrib.multiprocess_file_storage:
  - 97
  - 95
  - 15
  oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage:
  - 313
  oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage.__init__:
  - 323
  oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage.acquire_lock:
  - 326
  oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage.locked_delete:
  - 354
  - 355
  oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage.locked_get:
  - 337
  - 339
  - 332
  - 340
  oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage.locked_put:
  - 345
  - 351
  oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage.release_lock:
  - 329
  oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend:
  - 190
  oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.__init__:
  - 200
  - 201
  - 202
  oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._load_credentials:
  - 207
  - 208
  - 211
  - 212
  - 214
  oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._refresh_predicate:
  - 257
  - 259
  - 261
  oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend._write_credentials:
  - 217
  - 218
  - 221
  - 222
  oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.acquire_lock:
  - 225
  - 226
  - 228
  - 229
  - 230
  - 234
  - 238
  - 239
  - 244
  oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.locked_delete:
  - 288
  - 289
  - 287
  oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.locked_get:
  - 277
  - 275
  - 268
  - 276
  oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.locked_put:
  - 282
  - 284
  oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend.release_lock:
  - 247
  - 248
  - 251
  - 252
  - 254
  oauth2client.contrib.multiprocess_file_storage._create_file_if_needed:
  - 106
  - 101
  - 110
  - 111
  oauth2client.contrib.multiprocess_file_storage._get_backend:
  - 304
  - 307
  - 308
  - 293
  oauth2client.contrib.multiprocess_file_storage._load_credentials_file:
  - 160
  - 161
  - 138
  - 139
  - 141
  - 146
  - 147
  - 116
  - 154
  - 156
  - 157
  oauth2client.contrib.multiprocess_file_storage._write_credentials_file:
  - 167
  - 178
  - 179
  - 180
  - 181
  - 184
  - 185
  - 186
  oauth2client.contrib.sqlalchemy:
  - 15
  oauth2client.contrib.sqlalchemy.CredentialsType:
  - 101
  oauth2client.contrib.sqlalchemy.Storage:
  - 108
  oauth2client.contrib.sqlalchemy.Storage.__init__:
  - 128
  - 116
  oauth2client.contrib.sqlalchemy.Storage.locked_delete:
  - 171
  - 173
  oauth2client.contrib.sqlalchemy.Storage.locked_get:
  - 137
  - 143
  - 144
  - 146
  - 147
  - 148
  - 149
  oauth2client.contrib.sqlalchemy.Storage.locked_put:
  - 161
  - 162
  - 164
  - 165
  - 167
  - 168
  - 155
  oauth2client.contrib.xsrfutil:
  - 32
  - 60
  - 15
  oauth2client.contrib.xsrfutil.generate_token:
  - 34
  - 47
  - 48
  - 49
  - 50
  - 51
  - 52
  - 53
  - 54
  - 56
  oauth2client.contrib.xsrfutil.validate_token:
  - 99
  - 78
  - 81
  - 82
  - 85
  - 86
  - 88
  - 94
  - 92
  - 62
  oauth2client.crypt:
  - 16
  - 33
  - 66
  - 63
  oauth2client.crypt.AppIdentityError:
  - 37
  oauth2client.crypt._check_audience:
  - 142
  - 145
  - 146
  - 149
  - 127
  oauth2client.crypt._verify_signature:
  - 106
  - 117
  - 118
  - 119
  oauth2client.crypt._verify_time_range:
  - 197
  - 202
  - 178
  - 181
  - 182
  - 185
  - 186
  - 155
  - 191
  oauth2client.crypt.make_signed_jwt:
  - 97
  - 98
  - 100
  - 102
  - 75
  - 88
  - 92
  - 93
  - 95
  oauth2client.crypt.verify_signed_jwt_with_certs:
  - 224
  - 226
  - 230
  - 232
  - 235
  - 237
  - 208
  - 242
  - 245
  - 248
  oauth2client.file:
  - 15
  oauth2client.file.Storage:
  - 29
  oauth2client.file.Storage.__init__:
  - 32
  oauth2client.file.Storage._create_file_if_needed:
  - 67
  - 68
  - 70
  - 72
  - 62
  oauth2client.file.Storage.locked_delete:
  - 90
  - 95
  oauth2client.file.Storage.locked_get:
  - 36
  - 45
  - 47
  - 48
  - 49
  - 54
  - 55
  oauth2client.file.Storage.locked_put:
  - 75
  - 83
  - 84
  - 85
  - 86
  - 87
  oauth2client.service_account:
  - 15
  oauth2client.service_account.ServiceAccountCredentials:
  - 82
  - 43
  - 85
  - 87
  oauth2client.service_account.ServiceAccountCredentials.__init__:
  - 112
  - 106
  oauth2client.service_account.ServiceAccountCredentials._from_p12_keyfile_contents:
  - 288
  - 290
  - 292
  - 261
  - 286
  oauth2client.service_account.ServiceAccountCredentials._from_parsed_json_keyfile:
  - 169
  - 170
  - 146
  - 179
  - 178
  - 181
  - 182
  - 185
  - 186
  oauth2client.service_account.ServiceAccountCredentials._generate_assertion:
  - 384
  - 383
  - 374
  - 375
  oauth2client.service_account.ServiceAccountCredentials._to_json:
  - 135
  - 136
  - 137
  - 138
  - 139
  - 140
  - 119
  oauth2client.service_account.ServiceAccountCredentials.create_delegated:
  - 523
  - 541
  oauth2client.service_account.ServiceAccountCredentials.create_scoped:
  - 481
  oauth2client.service_account.ServiceAccountCredentials.create_with_claims:
  - 496
  - 506
  - 507
  - 508
  oauth2client.service_account.ServiceAccountCredentials.from_json:
  - 448
  - 450
  - 471
  - 452
  - 424
  - 473
  - 461
  - 463
  - 465
  - 435
  - 436
  - 439
  - 472
  - 441
  - 443
  oauth2client.service_account.ServiceAccountCredentials.from_json_keyfile_dict:
  - 251
  - 228
  oauth2client.service_account.ServiceAccountCredentials.from_json_keyfile_name:
  - 221
  - 219
  - 220
  - 197
  oauth2client.service_account.ServiceAccountCredentials.from_p12_keyfile:
  - 304
  - 329
  - 330
  - 331
  oauth2client.service_account.ServiceAccountCredentials.from_p12_keyfile_buffer:
  - 368
  - 341
  - 367
  oauth2client.service_account.ServiceAccountCredentials.service_account_email:
  - 404
  oauth2client.service_account.ServiceAccountCredentials.sign_blob:
  - 400
  - 388
  oauth2client.service_account._JWTAccessCredentials:
  - 560
  - 553
  oauth2client.service_account._JWTAccessCredentials.__init__:
  - 572
  - 574
  oauth2client.service_account._JWTAccessCredentials._create_token:
  - 672
  - 675
  - 676
  - 680
  - 681
  - 682
  - 683
  - 685
  - 671
  oauth2client.service_account._JWTAccessCredentials._refresh:
  - 668
  - 663
  oauth2client.service_account._JWTAccessCredentials.authorize:
  - 585
  - 599
  oauth2client.service_account._JWTAccessCredentials.create_scoped:
  - 634
  - 643
  - 645
  - 647
  oauth2client.service_account._JWTAccessCredentials.get_access_token:
  - 612
  - 613
  - 614
  - 615
  - 616
  - 619
  - 620
  - 603
  oauth2client.service_account._JWTAccessCredentials.refresh:
  - 660
  - 652
  oauth2client.service_account._JWTAccessCredentials.revoke:
  - 624
  oauth2client.service_account._datetime_to_secs:
  - 547
  oauth2client.tools:
  - 99
  - 141
  - 15
  oauth2client.tools.ClientRedirectHandler:
  - 112
  oauth2client.tools.ClientRedirectHandler.do_GET:
  - 128
  - 129
  - 131
  - 133
  - 135
  - 119
  - 125
  - 126
  - 127
  oauth2client.tools.ClientRedirectHandler.log_message:
  - 138
  oauth2client.tools.ClientRedirectServer:
  - 103
  oauth2client.tools._CreateArgumentParser:
  - 82
  - 83
  - 85
  - 87
  - 89
  oauth2client.tools.message_if_missing:
  - 256
  - 255
  oauth2client.tools.run_flow:
  - 143
  - 193
  - 194
  - 195
  - 196
  - 199
  - 202
  - 210
  - 211
  - 213
  - 214
  - 219
  - 221
  - 223
  - 224
  - 226
  - 229
  - 230
  - 231
  - 232
  - 233
  - 236
  - 238
  - 240
  - 243
  - 245
  - 247
  - 248
  - 249
  oauth2client.transport:
  - 24
  - 285
  oauth2client.transport.MemoryCache:
  - 33
  oauth2client.transport.MemoryCache.delete:
  - 45
  oauth2client.transport.MemoryCache.get:
  - 39
  oauth2client.transport._apply_user_agent:
  - 90
  - 101
  - 102
  oauth2client.transport._initialize_headers:
  - 77
  - 86
  oauth2client.transport.clean_headers:
  - 128
  - 129
  - 130
  - 111
  - 125
  - 126
  - 127
  oauth2client.transport.get_cached_http:
  - 49
  oauth2client.transport.get_http_object:
  - 73
  - 62
  oauth2client.transport.request:
  - 280
  - 257
  - 279
  oauth2client.transport.wrap_http_for_auth:
  - 138
  oauth2client.transport.wrap_http_for_auth.new_request:
  - 156
  - 157
  - 159
  - 163
  - 164
  - 165
  - 169
  - 171
  - 173
  - 174
  - 180
  - 181
  - 183
  - 186
  - 187
  - 188
  - 189
  - 191
  - 192
  oauth2client.transport.wrap_http_for_jwt_access:
  - 218
  - 205
  oauth2client.transport.wrap_http_for_jwt_access.new_request:
  - 226
  - 228
  - 230
  - 231
  - 237
  - 238
  - 239
  - 240
  - 243
  - 244
Fuzzer filename: /src/fuzz_helpers.py
Inheritance:
  oauth2client._openssl_crypt.OpenSSLSigner:
  - object
  oauth2client._openssl_crypt.OpenSSLVerifier:
  - object
  oauth2client._pure_python_crypt.RsaSigner:
  - object
  oauth2client._pure_python_crypt.RsaVerifier:
  - object
  oauth2client._pycrypto_crypt.PyCryptoSigner:
  - object
  oauth2client._pycrypto_crypt.PyCryptoVerifier:
  - object
  oauth2client.client.AccessTokenCredentials:
  - OAuth2Credentials
  oauth2client.client.AccessTokenCredentialsError:
  - Error
  oauth2client.client.AccessTokenRefreshError:
  - Error
  oauth2client.client.ApplicationDefaultCredentialsError:
  - Error
  oauth2client.client.AssertionCredentials:
  - GoogleCredentials
  oauth2client.client.Credentials:
  - object
  oauth2client.client.CryptoUnavailableError:
  - Error
  - NotImplementedError
  oauth2client.client.DeviceFlowInfo: []
  oauth2client.client.Error:
  - Exception
  oauth2client.client.Flow:
  - object
  oauth2client.client.FlowExchangeError:
  - Error
  oauth2client.client.GoogleCredentials:
  - OAuth2Credentials
  oauth2client.client.HttpAccessTokenRefreshError:
  - AccessTokenRefreshError
  oauth2client.client.NonAsciiHeaderError:
  - Error
  oauth2client.client.OAuth2Credentials:
  - Credentials
  oauth2client.client.OAuth2DeviceCodeError:
  - Error
  oauth2client.client.OAuth2WebServerFlow:
  - Flow
  oauth2client.client.SETTINGS:
  - object
  oauth2client.client.Storage:
  - object
  oauth2client.client.TokenRevokeError:
  - Error
  oauth2client.client.UnknownClientSecretsFlowError:
  - Error
  oauth2client.client.VerifyJwtTokenError:
  - Error
  oauth2client.clientsecrets.Error:
  - Exception
  oauth2client.clientsecrets.InvalidClientSecretsError:
  - Error
  oauth2client.contrib._appengine_ndb.CredentialsNDBModel: []
  oauth2client.contrib._appengine_ndb.CredentialsNDBProperty: []
  oauth2client.contrib._appengine_ndb.FlowNDBProperty: []
  oauth2client.contrib._appengine_ndb.SiteXsrfSecretKeyNDB: []
  oauth2client.contrib.appengine.AppAssertionCredentials: []
  oauth2client.contrib.appengine.CredentialsModel: []
  oauth2client.contrib.appengine.CredentialsProperty: []
  oauth2client.contrib.appengine.FlowProperty: []
  oauth2client.contrib.appengine.OAuth2Decorator:
  - object
  oauth2client.contrib.appengine.OAuth2Decorator.callback_handler.OAuth2Handler: []
  oauth2client.contrib.appengine.OAuth2DecoratorFromClientSecrets:
  - OAuth2Decorator
  oauth2client.contrib.appengine.SiteXsrfSecretKey: []
  oauth2client.contrib.appengine.StorageByKeyName: []
  oauth2client.contrib.devshell.CommunicationError:
  - Error
  oauth2client.contrib.devshell.CredentialInfoResponse:
  - object
  oauth2client.contrib.devshell.DevshellCredentials: []
  oauth2client.contrib.devshell.Error:
  - Exception
  oauth2client.contrib.devshell.NoDevshellServer:
  - Error
  oauth2client.contrib.dictionary_storage.DictionaryStorage: []
  oauth2client.contrib.django_util.OAuth2Settings:
  - object
  oauth2client.contrib.django_util.UserOAuth2:
  - object
  oauth2client.contrib.django_util.apps.GoogleOAuth2HelperConfig:
  - AppConfig
  oauth2client.contrib.django_util.models.CredentialsField: []
  oauth2client.contrib.django_util.storage.DjangoORMStorage: []
  oauth2client.contrib.flask_util.UserOAuth2:
  - object
  oauth2client.contrib.gce.AppAssertionCredentials: []
  oauth2client.contrib.keyring_storage.Storage: []
  oauth2client.contrib.multiprocess_file_storage.MultiprocessFileStorage: []
  oauth2client.contrib.multiprocess_file_storage._MultiprocessStorageBackend:
  - object
  oauth2client.contrib.sqlalchemy.CredentialsType: []
  oauth2client.contrib.sqlalchemy.Storage: []
  oauth2client.crypt.AppIdentityError:
  - Exception
  oauth2client.file.Storage: []
  oauth2client.service_account.ServiceAccountCredentials: []
  oauth2client.service_account._JWTAccessCredentials:
  - ServiceAccountCredentials
  oauth2client.tools.ClientRedirectHandler: []
  oauth2client.tools.ClientRedirectServer: []
  oauth2client.transport.MemoryCache:
  - object
ep:
  func_name: TestInput
  module: '...fuzz_helpers'
